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

package de.pokerth.protocol;

public final class ProtoBuf {
  private ProtoBuf() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code NetGameMode}
   */
  public enum NetGameMode
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>netGameCreated = 1;</code>
     */
    netGameCreated(0, 1),
    /**
     * <code>netGameStarted = 2;</code>
     */
    netGameStarted(1, 2),
    /**
     * <code>netGameClosed = 3;</code>
     */
    netGameClosed(2, 3),
    ;

    /**
     * <code>netGameCreated = 1;</code>
     */
    public static final int netGameCreated_VALUE = 1;
    /**
     * <code>netGameStarted = 2;</code>
     */
    public static final int netGameStarted_VALUE = 2;
    /**
     * <code>netGameClosed = 3;</code>
     */
    public static final int netGameClosed_VALUE = 3;


    public final int getNumber() { return value; }

    public static NetGameMode valueOf(int value) {
      switch (value) {
        case 1: return netGameCreated;
        case 2: return netGameStarted;
        case 3: return netGameClosed;
        default: return null;
      }
    }

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:NetGameMode)
  }

  /**
   * Protobuf enum {@code NetGameState}
   */
  public enum NetGameState
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>netStatePreflop = 0;</code>
     */
    netStatePreflop(0, 0),
    /**
     * <code>netStateFlop = 1;</code>
     */
    netStateFlop(1, 1),
    /**
     * <code>netStateTurn = 2;</code>
     */
    netStateTurn(2, 2),
    /**
     * <code>netStateRiver = 3;</code>
     */
    netStateRiver(3, 3),
    /**
     * <code>netStatePreflopSmallBlind = 4;</code>
     */
    netStatePreflopSmallBlind(4, 4),
    /**
     * <code>netStatePreflopBigBlind = 5;</code>
     */
    netStatePreflopBigBlind(5, 5),
    ;

    /**
     * <code>netStatePreflop = 0;</code>
     */
    public static final int netStatePreflop_VALUE = 0;
    /**
     * <code>netStateFlop = 1;</code>
     */
    public static final int netStateFlop_VALUE = 1;
    /**
     * <code>netStateTurn = 2;</code>
     */
    public static final int netStateTurn_VALUE = 2;
    /**
     * <code>netStateRiver = 3;</code>
     */
    public static final int netStateRiver_VALUE = 3;
    /**
     * <code>netStatePreflopSmallBlind = 4;</code>
     */
    public static final int netStatePreflopSmallBlind_VALUE = 4;
    /**
     * <code>netStatePreflopBigBlind = 5;</code>
     */
    public static final int netStatePreflopBigBlind_VALUE = 5;


    public final int getNumber() { return value; }

    public static NetGameState valueOf(int value) {
      switch (value) {
        case 0: return netStatePreflop;
        case 1: return netStateFlop;
        case 2: return netStateTurn;
        case 3: return netStateRiver;
        case 4: return netStatePreflopSmallBlind;
        case 5: return netStatePreflopBigBlind;
        default: return null;
      }
    }

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:NetGameState)
  }

  /**
   * Protobuf enum {@code NetPlayerAction}
   */
  public enum NetPlayerAction
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>netActionNone = 0;</code>
     */
    netActionNone(0, 0),
    /**
     * <code>netActionFold = 1;</code>
     */
    netActionFold(1, 1),
    /**
     * <code>netActionCheck = 2;</code>
     */
    netActionCheck(2, 2),
    /**
     * <code>netActionCall = 3;</code>
     */
    netActionCall(3, 3),
    /**
     * <code>netActionBet = 4;</code>
     */
    netActionBet(4, 4),
    /**
     * <code>netActionRaise = 5;</code>
     */
    netActionRaise(5, 5),
    /**
     * <code>netActionAllIn = 6;</code>
     */
    netActionAllIn(6, 6),
    ;

    /**
     * <code>netActionNone = 0;</code>
     */
    public static final int netActionNone_VALUE = 0;
    /**
     * <code>netActionFold = 1;</code>
     */
    public static final int netActionFold_VALUE = 1;
    /**
     * <code>netActionCheck = 2;</code>
     */
    public static final int netActionCheck_VALUE = 2;
    /**
     * <code>netActionCall = 3;</code>
     */
    public static final int netActionCall_VALUE = 3;
    /**
     * <code>netActionBet = 4;</code>
     */
    public static final int netActionBet_VALUE = 4;
    /**
     * <code>netActionRaise = 5;</code>
     */
    public static final int netActionRaise_VALUE = 5;
    /**
     * <code>netActionAllIn = 6;</code>
     */
    public static final int netActionAllIn_VALUE = 6;


    public final int getNumber() { return value; }

    public static NetPlayerAction valueOf(int value) {
      switch (value) {
        case 0: return netActionNone;
        case 1: return netActionFold;
        case 2: return netActionCheck;
        case 3: return netActionCall;
        case 4: return netActionBet;
        case 5: return netActionRaise;
        case 6: return netActionAllIn;
        default: return null;
      }
    }

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:NetPlayerAction)
  }

  /**
   * Protobuf enum {@code NetPlayerState}
   */
  public enum NetPlayerState
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>netPlayerStateNormal = 0;</code>
     */
    netPlayerStateNormal(0, 0),
    /**
     * <code>netPlayerStateSessionInactive = 1;</code>
     */
    netPlayerStateSessionInactive(1, 1),
    /**
     * <code>netPlayerStateNoMoney = 2;</code>
     */
    netPlayerStateNoMoney(2, 2),
    ;

    /**
     * <code>netPlayerStateNormal = 0;</code>
     */
    public static final int netPlayerStateNormal_VALUE = 0;
    /**
     * <code>netPlayerStateSessionInactive = 1;</code>
     */
    public static final int netPlayerStateSessionInactive_VALUE = 1;
    /**
     * <code>netPlayerStateNoMoney = 2;</code>
     */
    public static final int netPlayerStateNoMoney_VALUE = 2;


    public final int getNumber() { return value; }

    public static NetPlayerState valueOf(int value) {
      switch (value) {
        case 0: return netPlayerStateNormal;
        case 1: return netPlayerStateSessionInactive;
        case 2: return netPlayerStateNoMoney;
        default: return null;
      }
    }

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:NetPlayerState)
  }

  /**
   * Protobuf enum {@code NetPlayerInfoRights}
   */
  public enum NetPlayerInfoRights
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>netPlayerRightsGuest = 1;</code>
     */
    netPlayerRightsGuest(0, 1),
    /**
     * <code>netPlayerRightsNormal = 2;</code>
     */
    netPlayerRightsNormal(1, 2),
    /**
     * <code>netPlayerRightsAdmin = 3;</code>
     */
    netPlayerRightsAdmin(2, 3),
    ;

    /**
     * <code>netPlayerRightsGuest = 1;</code>
     */
    public static final int netPlayerRightsGuest_VALUE = 1;
    /**
     * <code>netPlayerRightsNormal = 2;</code>
     */
    public static final int netPlayerRightsNormal_VALUE = 2;
    /**
     * <code>netPlayerRightsAdmin = 3;</code>
     */
    public static final int netPlayerRightsAdmin_VALUE = 3;


    public final int getNumber() { return value; }

    public static NetPlayerInfoRights valueOf(int value) {
      switch (value) {
        case 1: return netPlayerRightsGuest;
        case 2: return netPlayerRightsNormal;
        case 3: return netPlayerRightsAdmin;
        default: return null;
      }
    }

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:NetPlayerInfoRights)
  }

  /**
   * Protobuf enum {@code NetAvatarType}
   */
  public enum NetAvatarType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>netAvatarImagePng = 1;</code>
     */
    netAvatarImagePng(0, 1),
    /**
     * <code>netAvatarImageJpg = 2;</code>
     */
    netAvatarImageJpg(1, 2),
    /**
     * <code>netAvatarImageGif = 3;</code>
     */
    netAvatarImageGif(2, 3),
    ;

    /**
     * <code>netAvatarImagePng = 1;</code>
     */
    public static final int netAvatarImagePng_VALUE = 1;
    /**
     * <code>netAvatarImageJpg = 2;</code>
     */
    public static final int netAvatarImageJpg_VALUE = 2;
    /**
     * <code>netAvatarImageGif = 3;</code>
     */
    public static final int netAvatarImageGif_VALUE = 3;


    public final int getNumber() { return value; }

    public static NetAvatarType valueOf(int value) {
      switch (value) {
        case 1: return netAvatarImagePng;
        case 2: return netAvatarImageJpg;
        case 3: return netAvatarImageGif;
        default: return null;
      }
    }

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:NetAvatarType)
  }

  public interface NetGameInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:NetGameInfo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required string gameName = 1;</code>
     */
    boolean hasGameName();
    /**
     * <code>required string gameName = 1;</code>
     */
    java.lang.String getGameName();
    /**
     * <code>required string gameName = 1;</code>
     */
    com.google.protobuf.ByteString
        getGameNameBytes();

    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     */
    boolean hasNetGameType();
    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType();

    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     */
    boolean hasMaxNumPlayers();
    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     */
    int getMaxNumPlayers();

    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     */
    boolean hasRaiseIntervalMode();
    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode();

    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     */
    boolean hasRaiseEveryHands();
    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     */
    int getRaiseEveryHands();

    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     */
    boolean hasRaiseEveryMinutes();
    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     */
    int getRaiseEveryMinutes();

    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     */
    boolean hasEndRaiseMode();
    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode();

    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     */
    boolean hasEndRaiseSmallBlindValue();
    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     */
    int getEndRaiseSmallBlindValue();

    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     */
    boolean hasProposedGuiSpeed();
    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     */
    int getProposedGuiSpeed();

    /**
     * <code>required uint32 delayBetweenHands = 10;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    boolean hasDelayBetweenHands();
    /**
     * <code>required uint32 delayBetweenHands = 10;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    int getDelayBetweenHands();

    /**
     * <code>required uint32 playerActionTimeout = 11;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    boolean hasPlayerActionTimeout();
    /**
     * <code>required uint32 playerActionTimeout = 11;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    int getPlayerActionTimeout();

    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     */
    boolean hasFirstSmallBlind();
    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     */
    int getFirstSmallBlind();

    /**
     * <code>required uint32 startMoney = 13;</code>
     */
    boolean hasStartMoney();
    /**
     * <code>required uint32 startMoney = 13;</code>
     */
    int getStartMoney();

    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getManualBlindsList();
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     */
    int getManualBlindsCount();
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     */
    int getManualBlinds(int index);

    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     */
    boolean hasAllowSpectators();
    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     */
    boolean getAllowSpectators();
  }
  /**
   * Protobuf type {@code NetGameInfo}
   */
  public static final class NetGameInfo extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:NetGameInfo)
      NetGameInfoOrBuilder {
    // Use NetGameInfo.newBuilder() to construct.
    private NetGameInfo(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private NetGameInfo(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public NetGameInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private NetGameInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              gameName_ = bs;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType value = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                netGameType_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              maxNumPlayers_ = input.readUInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode value = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000008;
                raiseIntervalMode_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              raiseEveryHands_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              raiseEveryMinutes_ = input.readUInt32();
              break;
            }
            case 56: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode value = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000040;
                endRaiseMode_ = value;
              }
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              endRaiseSmallBlindValue_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              proposedGuiSpeed_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              delayBetweenHands_ = input.readUInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              playerActionTimeout_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              firstSmallBlind_ = input.readUInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              startMoney_ = input.readUInt32();
              break;
            }
            case 112: {
              if (!((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
                manualBlinds_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00002000;
              }
              manualBlinds_.add(input.readUInt32());
              break;
            }
            case 114: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00002000) == 0x00002000) && input.getBytesUntilLimit() > 0) {
                manualBlinds_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00002000;
              }
              while (input.getBytesUntilLimit() > 0) {
                manualBlinds_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 120: {
              bitField0_ |= 0x00002000;
              allowSpectators_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
          manualBlinds_ = java.util.Collections.unmodifiableList(manualBlinds_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<NetGameInfo> PARSER =
        new com.google.protobuf.AbstractParser<NetGameInfo>() {
      public NetGameInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new NetGameInfo(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code NetGameInfo.NetGameType}
     */
    public enum NetGameType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>normalGame = 1;</code>
       */
      normalGame(0, 1),
      /**
       * <code>registeredOnlyGame = 2;</code>
       */
      registeredOnlyGame(1, 2),
      /**
       * <code>inviteOnlyGame = 3;</code>
       */
      inviteOnlyGame(2, 3),
      /**
       * <code>rankingGame = 4;</code>
       */
      rankingGame(3, 4),
      ;

      /**
       * <code>normalGame = 1;</code>
       */
      public static final int normalGame_VALUE = 1;
      /**
       * <code>registeredOnlyGame = 2;</code>
       */
      public static final int registeredOnlyGame_VALUE = 2;
      /**
       * <code>inviteOnlyGame = 3;</code>
       */
      public static final int inviteOnlyGame_VALUE = 3;
      /**
       * <code>rankingGame = 4;</code>
       */
      public static final int rankingGame_VALUE = 4;


      public final int getNumber() { return value; }

      public static NetGameType valueOf(int value) {
        switch (value) {
          case 1: return normalGame;
          case 2: return registeredOnlyGame;
          case 3: return inviteOnlyGame;
          case 4: return rankingGame;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:NetGameInfo.NetGameType)
    }

    /**
     * Protobuf enum {@code NetGameInfo.RaiseIntervalMode}
     */
    public enum RaiseIntervalMode
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>raiseOnHandNum = 1;</code>
       */
      raiseOnHandNum(0, 1),
      /**
       * <code>raiseOnMinutes = 2;</code>
       */
      raiseOnMinutes(1, 2),
      ;

      /**
       * <code>raiseOnHandNum = 1;</code>
       */
      public static final int raiseOnHandNum_VALUE = 1;
      /**
       * <code>raiseOnMinutes = 2;</code>
       */
      public static final int raiseOnMinutes_VALUE = 2;


      public final int getNumber() { return value; }

      public static RaiseIntervalMode valueOf(int value) {
        switch (value) {
          case 1: return raiseOnHandNum;
          case 2: return raiseOnMinutes;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:NetGameInfo.RaiseIntervalMode)
    }

    /**
     * Protobuf enum {@code NetGameInfo.EndRaiseMode}
     */
    public enum EndRaiseMode
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>doubleBlinds = 1;</code>
       */
      doubleBlinds(0, 1),
      /**
       * <code>raiseByEndValue = 2;</code>
       */
      raiseByEndValue(1, 2),
      /**
       * <code>keepLastBlind = 3;</code>
       */
      keepLastBlind(2, 3),
      ;

      /**
       * <code>doubleBlinds = 1;</code>
       */
      public static final int doubleBlinds_VALUE = 1;
      /**
       * <code>raiseByEndValue = 2;</code>
       */
      public static final int raiseByEndValue_VALUE = 2;
      /**
       * <code>keepLastBlind = 3;</code>
       */
      public static final int keepLastBlind_VALUE = 3;


      public final int getNumber() { return value; }

      public static EndRaiseMode valueOf(int value) {
        switch (value) {
          case 1: return doubleBlinds;
          case 2: return raiseByEndValue;
          case 3: return keepLastBlind;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:NetGameInfo.EndRaiseMode)
    }

    private int bitField0_;
    public static final int GAMENAME_FIELD_NUMBER = 1;
    private java.lang.Object gameName_;
    /**
     * <code>required string gameName = 1;</code>
     */
    public boolean hasGameName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string gameName = 1;</code>
     */
    public java.lang.String getGameName() {
      java.lang.Object ref = gameName_;
      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()) {
          gameName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string gameName = 1;</code>
     */
    public com.google.protobuf.ByteString
        getGameNameBytes() {
      java.lang.Object ref = gameName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        gameName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NETGAMETYPE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType netGameType_;
    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     */
    public boolean hasNetGameType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType() {
      return netGameType_;
    }

    public static final int MAXNUMPLAYERS_FIELD_NUMBER = 3;
    private int maxNumPlayers_;
    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     */
    public boolean hasMaxNumPlayers() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     */
    public int getMaxNumPlayers() {
      return maxNumPlayers_;
    }

    public static final int RAISEINTERVALMODE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode raiseIntervalMode_;
    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     */
    public boolean hasRaiseIntervalMode() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode() {
      return raiseIntervalMode_;
    }

    public static final int RAISEEVERYHANDS_FIELD_NUMBER = 5;
    private int raiseEveryHands_;
    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     */
    public boolean hasRaiseEveryHands() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     */
    public int getRaiseEveryHands() {
      return raiseEveryHands_;
    }

    public static final int RAISEEVERYMINUTES_FIELD_NUMBER = 6;
    private int raiseEveryMinutes_;
    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     */
    public boolean hasRaiseEveryMinutes() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     */
    public int getRaiseEveryMinutes() {
      return raiseEveryMinutes_;
    }

    public static final int ENDRAISEMODE_FIELD_NUMBER = 7;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode endRaiseMode_;
    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     */
    public boolean hasEndRaiseMode() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode() {
      return endRaiseMode_;
    }

    public static final int ENDRAISESMALLBLINDVALUE_FIELD_NUMBER = 8;
    private int endRaiseSmallBlindValue_;
    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     */
    public boolean hasEndRaiseSmallBlindValue() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     */
    public int getEndRaiseSmallBlindValue() {
      return endRaiseSmallBlindValue_;
    }

    public static final int PROPOSEDGUISPEED_FIELD_NUMBER = 9;
    private int proposedGuiSpeed_;
    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     */
    public boolean hasProposedGuiSpeed() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     */
    public int getProposedGuiSpeed() {
      return proposedGuiSpeed_;
    }

    public static final int DELAYBETWEENHANDS_FIELD_NUMBER = 10;
    private int delayBetweenHands_;
    /**
     * <code>required uint32 delayBetweenHands = 10;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    public boolean hasDelayBetweenHands() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>required uint32 delayBetweenHands = 10;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    public int getDelayBetweenHands() {
      return delayBetweenHands_;
    }

    public static final int PLAYERACTIONTIMEOUT_FIELD_NUMBER = 11;
    private int playerActionTimeout_;
    /**
     * <code>required uint32 playerActionTimeout = 11;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    public boolean hasPlayerActionTimeout() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>required uint32 playerActionTimeout = 11;</code>
     *
     * <pre>
     * These are seconds
     * </pre>
     */
    public int getPlayerActionTimeout() {
      return playerActionTimeout_;
    }

    public static final int FIRSTSMALLBLIND_FIELD_NUMBER = 12;
    private int firstSmallBlind_;
    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     */
    public boolean hasFirstSmallBlind() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     */
    public int getFirstSmallBlind() {
      return firstSmallBlind_;
    }

    public static final int STARTMONEY_FIELD_NUMBER = 13;
    private int startMoney_;
    /**
     * <code>required uint32 startMoney = 13;</code>
     */
    public boolean hasStartMoney() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * <code>required uint32 startMoney = 13;</code>
     */
    public int getStartMoney() {
      return startMoney_;
    }

    public static final int MANUALBLINDS_FIELD_NUMBER = 14;
    private java.util.List<java.lang.Integer> manualBlinds_;
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getManualBlindsList() {
      return manualBlinds_;
    }
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     */
    public int getManualBlindsCount() {
      return manualBlinds_.size();
    }
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     */
    public int getManualBlinds(int index) {
      return manualBlinds_.get(index);
    }
    private int manualBlindsMemoizedSerializedSize = -1;

    public static final int ALLOWSPECTATORS_FIELD_NUMBER = 15;
    private boolean allowSpectators_;
    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     */
    public boolean hasAllowSpectators() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     */
    public boolean getAllowSpectators() {
      return allowSpectators_;
    }

    private void initFields() {
      gameName_ = "";
      netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
      maxNumPlayers_ = 0;
      raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
      raiseEveryHands_ = 0;
      raiseEveryMinutes_ = 0;
      endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
      endRaiseSmallBlindValue_ = 0;
      proposedGuiSpeed_ = 0;
      delayBetweenHands_ = 0;
      playerActionTimeout_ = 0;
      firstSmallBlind_ = 0;
      startMoney_ = 0;
      manualBlinds_ = java.util.Collections.emptyList();
      allowSpectators_ = true;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNetGameType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMaxNumPlayers()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRaiseIntervalMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEndRaiseMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasProposedGuiSpeed()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDelayBetweenHands()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerActionTimeout()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFirstSmallBlind()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartMoney()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getGameNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, netGameType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, maxNumPlayers_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, raiseIntervalMode_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, raiseEveryHands_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, raiseEveryMinutes_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeEnum(7, endRaiseMode_.getNumber());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, endRaiseSmallBlindValue_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(9, proposedGuiSpeed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(10, delayBetweenHands_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(11, playerActionTimeout_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeUInt32(12, firstSmallBlind_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(13, startMoney_);
      }
      if (getManualBlindsList().size() > 0) {
        output.writeRawVarint32(114);
        output.writeRawVarint32(manualBlindsMemoizedSerializedSize);
      }
      for (int i = 0; i < manualBlinds_.size(); i++) {
        output.writeUInt32NoTag(manualBlinds_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeBool(15, allowSpectators_);
      }
      output.writeRawBytes(unknownFields);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getGameNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, netGameType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, maxNumPlayers_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, raiseIntervalMode_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, raiseEveryHands_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, raiseEveryMinutes_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, endRaiseMode_.getNumber());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, endRaiseSmallBlindValue_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, proposedGuiSpeed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, delayBetweenHands_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, playerActionTimeout_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, firstSmallBlind_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, startMoney_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < manualBlinds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(manualBlinds_.get(i));
        }
        size += dataSize;
        if (!getManualBlindsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        manualBlindsMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, allowSpectators_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo 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(de.pokerth.protocol.ProtoBuf.NetGameInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code NetGameInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:NetGameInfo)
        de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
        bitField0_ = (bitField0_ & ~0x00000002);
        maxNumPlayers_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
        bitField0_ = (bitField0_ & ~0x00000008);
        raiseEveryHands_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        raiseEveryMinutes_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
        bitField0_ = (bitField0_ & ~0x00000040);
        endRaiseSmallBlindValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        proposedGuiSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        delayBetweenHands_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        playerActionTimeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        firstSmallBlind_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        startMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        manualBlinds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00002000);
        allowSpectators_ = true;
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.NetGameInfo getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.NetGameInfo build() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.NetGameInfo buildPartial() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = new de.pokerth.protocol.ProtoBuf.NetGameInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameName_ = gameName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.netGameType_ = netGameType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.maxNumPlayers_ = maxNumPlayers_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.raiseIntervalMode_ = raiseIntervalMode_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.raiseEveryHands_ = raiseEveryHands_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.raiseEveryMinutes_ = raiseEveryMinutes_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.endRaiseMode_ = endRaiseMode_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.endRaiseSmallBlindValue_ = endRaiseSmallBlindValue_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.proposedGuiSpeed_ = proposedGuiSpeed_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.delayBetweenHands_ = delayBetweenHands_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.playerActionTimeout_ = playerActionTimeout_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.firstSmallBlind_ = firstSmallBlind_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.startMoney_ = startMoney_;
        if (((bitField0_ & 0x00002000) == 0x00002000)) {
          manualBlinds_ = java.util.Collections.unmodifiableList(manualBlinds_);
          bitField0_ = (bitField0_ & ~0x00002000);
        }
        result.manualBlinds_ = manualBlinds_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.allowSpectators_ = allowSpectators_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.NetGameInfo other) {
        if (other == de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) return this;
        if (other.hasGameName()) {
          bitField0_ |= 0x00000001;
          gameName_ = other.gameName_;
          
        }
        if (other.hasNetGameType()) {
          setNetGameType(other.getNetGameType());
        }
        if (other.hasMaxNumPlayers()) {
          setMaxNumPlayers(other.getMaxNumPlayers());
        }
        if (other.hasRaiseIntervalMode()) {
          setRaiseIntervalMode(other.getRaiseIntervalMode());
        }
        if (other.hasRaiseEveryHands()) {
          setRaiseEveryHands(other.getRaiseEveryHands());
        }
        if (other.hasRaiseEveryMinutes()) {
          setRaiseEveryMinutes(other.getRaiseEveryMinutes());
        }
        if (other.hasEndRaiseMode()) {
          setEndRaiseMode(other.getEndRaiseMode());
        }
        if (other.hasEndRaiseSmallBlindValue()) {
          setEndRaiseSmallBlindValue(other.getEndRaiseSmallBlindValue());
        }
        if (other.hasProposedGuiSpeed()) {
          setProposedGuiSpeed(other.getProposedGuiSpeed());
        }
        if (other.hasDelayBetweenHands()) {
          setDelayBetweenHands(other.getDelayBetweenHands());
        }
        if (other.hasPlayerActionTimeout()) {
          setPlayerActionTimeout(other.getPlayerActionTimeout());
        }
        if (other.hasFirstSmallBlind()) {
          setFirstSmallBlind(other.getFirstSmallBlind());
        }
        if (other.hasStartMoney()) {
          setStartMoney(other.getStartMoney());
        }
        if (!other.manualBlinds_.isEmpty()) {
          if (manualBlinds_.isEmpty()) {
            manualBlinds_ = other.manualBlinds_;
            bitField0_ = (bitField0_ & ~0x00002000);
          } else {
            ensureManualBlindsIsMutable();
            manualBlinds_.addAll(other.manualBlinds_);
          }
          
        }
        if (other.hasAllowSpectators()) {
          setAllowSpectators(other.getAllowSpectators());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameName()) {
          
          return false;
        }
        if (!hasNetGameType()) {
          
          return false;
        }
        if (!hasMaxNumPlayers()) {
          
          return false;
        }
        if (!hasRaiseIntervalMode()) {
          
          return false;
        }
        if (!hasEndRaiseMode()) {
          
          return false;
        }
        if (!hasProposedGuiSpeed()) {
          
          return false;
        }
        if (!hasDelayBetweenHands()) {
          
          return false;
        }
        if (!hasPlayerActionTimeout()) {
          
          return false;
        }
        if (!hasFirstSmallBlind()) {
          
          return false;
        }
        if (!hasStartMoney()) {
          
          return false;
        }
        return true;
      }

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

      private java.lang.Object gameName_ = "";
      /**
       * <code>required string gameName = 1;</code>
       */
      public boolean hasGameName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string gameName = 1;</code>
       */
      public java.lang.String getGameName() {
        java.lang.Object ref = gameName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            gameName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string gameName = 1;</code>
       */
      public com.google.protobuf.ByteString
          getGameNameBytes() {
        java.lang.Object ref = gameName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          gameName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string gameName = 1;</code>
       */
      public Builder setGameName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        gameName_ = value;
        
        return this;
      }
      /**
       * <code>required string gameName = 1;</code>
       */
      public Builder clearGameName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameName_ = getDefaultInstance().getGameName();
        
        return this;
      }
      /**
       * <code>required string gameName = 1;</code>
       */
      public Builder setGameNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        gameName_ = value;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       */
      public boolean hasNetGameType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType() {
        return netGameType_;
      }
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       */
      public Builder setNetGameType(de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        netGameType_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       */
      public Builder clearNetGameType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
        
        return this;
      }

      private int maxNumPlayers_ ;
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       */
      public boolean hasMaxNumPlayers() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       */
      public int getMaxNumPlayers() {
        return maxNumPlayers_;
      }
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       */
      public Builder setMaxNumPlayers(int value) {
        bitField0_ |= 0x00000004;
        maxNumPlayers_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       */
      public Builder clearMaxNumPlayers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maxNumPlayers_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       */
      public boolean hasRaiseIntervalMode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode() {
        return raiseIntervalMode_;
      }
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       */
      public Builder setRaiseIntervalMode(de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        raiseIntervalMode_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       */
      public Builder clearRaiseIntervalMode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
        
        return this;
      }

      private int raiseEveryHands_ ;
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       */
      public boolean hasRaiseEveryHands() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       */
      public int getRaiseEveryHands() {
        return raiseEveryHands_;
      }
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       */
      public Builder setRaiseEveryHands(int value) {
        bitField0_ |= 0x00000010;
        raiseEveryHands_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       */
      public Builder clearRaiseEveryHands() {
        bitField0_ = (bitField0_ & ~0x00000010);
        raiseEveryHands_ = 0;
        
        return this;
      }

      private int raiseEveryMinutes_ ;
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       */
      public boolean hasRaiseEveryMinutes() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       */
      public int getRaiseEveryMinutes() {
        return raiseEveryMinutes_;
      }
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       */
      public Builder setRaiseEveryMinutes(int value) {
        bitField0_ |= 0x00000020;
        raiseEveryMinutes_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       */
      public Builder clearRaiseEveryMinutes() {
        bitField0_ = (bitField0_ & ~0x00000020);
        raiseEveryMinutes_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       */
      public boolean hasEndRaiseMode() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode() {
        return endRaiseMode_;
      }
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       */
      public Builder setEndRaiseMode(de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        endRaiseMode_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       */
      public Builder clearEndRaiseMode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
        
        return this;
      }

      private int endRaiseSmallBlindValue_ ;
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       */
      public boolean hasEndRaiseSmallBlindValue() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       */
      public int getEndRaiseSmallBlindValue() {
        return endRaiseSmallBlindValue_;
      }
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       */
      public Builder setEndRaiseSmallBlindValue(int value) {
        bitField0_ |= 0x00000080;
        endRaiseSmallBlindValue_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       */
      public Builder clearEndRaiseSmallBlindValue() {
        bitField0_ = (bitField0_ & ~0x00000080);
        endRaiseSmallBlindValue_ = 0;
        
        return this;
      }

      private int proposedGuiSpeed_ ;
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       */
      public boolean hasProposedGuiSpeed() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       */
      public int getProposedGuiSpeed() {
        return proposedGuiSpeed_;
      }
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       */
      public Builder setProposedGuiSpeed(int value) {
        bitField0_ |= 0x00000100;
        proposedGuiSpeed_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       */
      public Builder clearProposedGuiSpeed() {
        bitField0_ = (bitField0_ & ~0x00000100);
        proposedGuiSpeed_ = 0;
        
        return this;
      }

      private int delayBetweenHands_ ;
      /**
       * <code>required uint32 delayBetweenHands = 10;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public boolean hasDelayBetweenHands() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>required uint32 delayBetweenHands = 10;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public int getDelayBetweenHands() {
        return delayBetweenHands_;
      }
      /**
       * <code>required uint32 delayBetweenHands = 10;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public Builder setDelayBetweenHands(int value) {
        bitField0_ |= 0x00000200;
        delayBetweenHands_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 delayBetweenHands = 10;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public Builder clearDelayBetweenHands() {
        bitField0_ = (bitField0_ & ~0x00000200);
        delayBetweenHands_ = 0;
        
        return this;
      }

      private int playerActionTimeout_ ;
      /**
       * <code>required uint32 playerActionTimeout = 11;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public boolean hasPlayerActionTimeout() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>required uint32 playerActionTimeout = 11;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public int getPlayerActionTimeout() {
        return playerActionTimeout_;
      }
      /**
       * <code>required uint32 playerActionTimeout = 11;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public Builder setPlayerActionTimeout(int value) {
        bitField0_ |= 0x00000400;
        playerActionTimeout_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerActionTimeout = 11;</code>
       *
       * <pre>
       * These are seconds
       * </pre>
       */
      public Builder clearPlayerActionTimeout() {
        bitField0_ = (bitField0_ & ~0x00000400);
        playerActionTimeout_ = 0;
        
        return this;
      }

      private int firstSmallBlind_ ;
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       */
      public boolean hasFirstSmallBlind() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       */
      public int getFirstSmallBlind() {
        return firstSmallBlind_;
      }
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       */
      public Builder setFirstSmallBlind(int value) {
        bitField0_ |= 0x00000800;
        firstSmallBlind_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       */
      public Builder clearFirstSmallBlind() {
        bitField0_ = (bitField0_ & ~0x00000800);
        firstSmallBlind_ = 0;
        
        return this;
      }

      private int startMoney_ ;
      /**
       * <code>required uint32 startMoney = 13;</code>
       */
      public boolean hasStartMoney() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>required uint32 startMoney = 13;</code>
       */
      public int getStartMoney() {
        return startMoney_;
      }
      /**
       * <code>required uint32 startMoney = 13;</code>
       */
      public Builder setStartMoney(int value) {
        bitField0_ |= 0x00001000;
        startMoney_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 startMoney = 13;</code>
       */
      public Builder clearStartMoney() {
        bitField0_ = (bitField0_ & ~0x00001000);
        startMoney_ = 0;
        
        return this;
      }

      private java.util.List<java.lang.Integer> manualBlinds_ = java.util.Collections.emptyList();
      private void ensureManualBlindsIsMutable() {
        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
          manualBlinds_ = new java.util.ArrayList<java.lang.Integer>(manualBlinds_);
          bitField0_ |= 0x00002000;
         }
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getManualBlindsList() {
        return java.util.Collections.unmodifiableList(manualBlinds_);
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public int getManualBlindsCount() {
        return manualBlinds_.size();
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public int getManualBlinds(int index) {
        return manualBlinds_.get(index);
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public Builder setManualBlinds(
          int index, int value) {
        ensureManualBlindsIsMutable();
        manualBlinds_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public Builder addManualBlinds(int value) {
        ensureManualBlindsIsMutable();
        manualBlinds_.add(value);
        
        return this;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public Builder addAllManualBlinds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureManualBlindsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, manualBlinds_);
        
        return this;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       */
      public Builder clearManualBlinds() {
        manualBlinds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00002000);
        
        return this;
      }

      private boolean allowSpectators_ = true;
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       */
      public boolean hasAllowSpectators() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       */
      public boolean getAllowSpectators() {
        return allowSpectators_;
      }
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       */
      public Builder setAllowSpectators(boolean value) {
        bitField0_ |= 0x00004000;
        allowSpectators_ = value;
        
        return this;
      }
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       */
      public Builder clearAllowSpectators() {
        bitField0_ = (bitField0_ & ~0x00004000);
        allowSpectators_ = true;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:NetGameInfo)
    }

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

    // @@protoc_insertion_point(class_scope:NetGameInfo)
  }

  public interface PlayerResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayerResult)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 playerId = 1;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    int getPlayerId();

    /**
     * <code>required uint32 resultCard1 = 2;</code>
     */
    boolean hasResultCard1();
    /**
     * <code>required uint32 resultCard1 = 2;</code>
     */
    int getResultCard1();

    /**
     * <code>required uint32 resultCard2 = 3;</code>
     */
    boolean hasResultCard2();
    /**
     * <code>required uint32 resultCard2 = 3;</code>
     */
    int getResultCard2();

    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getBestHandPositionList();
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     */
    int getBestHandPositionCount();
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     */
    int getBestHandPosition(int index);

    /**
     * <code>required uint32 moneyWon = 5;</code>
     */
    boolean hasMoneyWon();
    /**
     * <code>required uint32 moneyWon = 5;</code>
     */
    int getMoneyWon();

    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    boolean hasPlayerMoney();
    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    int getPlayerMoney();

    /**
     * <code>optional uint32 cardsValue = 7;</code>
     */
    boolean hasCardsValue();
    /**
     * <code>optional uint32 cardsValue = 7;</code>
     */
    int getCardsValue();
  }
  /**
   * Protobuf type {@code PlayerResult}
   */
  public static final class PlayerResult extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayerResult)
      PlayerResultOrBuilder {
    // Use PlayerResult.newBuilder() to construct.
    private PlayerResult(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayerResult(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayerResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayerResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              resultCard1_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              resultCard2_ = input.readUInt32();
              break;
            }
            case 32: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                bestHandPosition_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000008;
              }
              bestHandPosition_.add(input.readUInt32());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                bestHandPosition_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000008;
              }
              while (input.getBytesUntilLimit() > 0) {
                bestHandPosition_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              moneyWon_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              playerMoney_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              cardsValue_ = input.readUInt32();
              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)) {
          bestHandPosition_ = java.util.Collections.unmodifiableList(bestHandPosition_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayerResult> PARSER =
        new com.google.protobuf.AbstractParser<PlayerResult>() {
      public PlayerResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerResult(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int RESULTCARD1_FIELD_NUMBER = 2;
    private int resultCard1_;
    /**
     * <code>required uint32 resultCard1 = 2;</code>
     */
    public boolean hasResultCard1() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 resultCard1 = 2;</code>
     */
    public int getResultCard1() {
      return resultCard1_;
    }

    public static final int RESULTCARD2_FIELD_NUMBER = 3;
    private int resultCard2_;
    /**
     * <code>required uint32 resultCard2 = 3;</code>
     */
    public boolean hasResultCard2() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 resultCard2 = 3;</code>
     */
    public int getResultCard2() {
      return resultCard2_;
    }

    public static final int BESTHANDPOSITION_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Integer> bestHandPosition_;
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getBestHandPositionList() {
      return bestHandPosition_;
    }
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     */
    public int getBestHandPositionCount() {
      return bestHandPosition_.size();
    }
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     */
    public int getBestHandPosition(int index) {
      return bestHandPosition_.get(index);
    }
    private int bestHandPositionMemoizedSerializedSize = -1;

    public static final int MONEYWON_FIELD_NUMBER = 5;
    private int moneyWon_;
    /**
     * <code>required uint32 moneyWon = 5;</code>
     */
    public boolean hasMoneyWon() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 moneyWon = 5;</code>
     */
    public int getMoneyWon() {
      return moneyWon_;
    }

    public static final int PLAYERMONEY_FIELD_NUMBER = 6;
    private int playerMoney_;
    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    public int getPlayerMoney() {
      return playerMoney_;
    }

    public static final int CARDSVALUE_FIELD_NUMBER = 7;
    private int cardsValue_;
    /**
     * <code>optional uint32 cardsValue = 7;</code>
     */
    public boolean hasCardsValue() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional uint32 cardsValue = 7;</code>
     */
    public int getCardsValue() {
      return cardsValue_;
    }

    private void initFields() {
      playerId_ = 0;
      resultCard1_ = 0;
      resultCard2_ = 0;
      bestHandPosition_ = java.util.Collections.emptyList();
      moneyWon_ = 0;
      playerMoney_ = 0;
      cardsValue_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResultCard1()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResultCard2()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMoneyWon()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerMoney()) {
        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.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, resultCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, resultCard2_);
      }
      if (getBestHandPositionList().size() > 0) {
        output.writeRawVarint32(34);
        output.writeRawVarint32(bestHandPositionMemoizedSerializedSize);
      }
      for (int i = 0; i < bestHandPosition_.size(); i++) {
        output.writeUInt32NoTag(bestHandPosition_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, moneyWon_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(7, cardsValue_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, resultCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, resultCard2_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < bestHandPosition_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(bestHandPosition_.get(i));
        }
        size += dataSize;
        if (!getBestHandPositionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        bestHandPositionMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, moneyWon_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, cardsValue_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult 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(de.pokerth.protocol.ProtoBuf.PlayerResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayerResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerResult, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayerResult)
        de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        resultCard1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        resultCard2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        bestHandPosition_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        moneyWon_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        cardsValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PlayerResult getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayerResult build() {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayerResult buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = new de.pokerth.protocol.ProtoBuf.PlayerResult(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.resultCard1_ = resultCard1_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.resultCard2_ = resultCard2_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          bestHandPosition_ = java.util.Collections.unmodifiableList(bestHandPosition_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.bestHandPosition_ = bestHandPosition_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.moneyWon_ = moneyWon_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.playerMoney_ = playerMoney_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.cardsValue_ = cardsValue_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerResult other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasResultCard1()) {
          setResultCard1(other.getResultCard1());
        }
        if (other.hasResultCard2()) {
          setResultCard2(other.getResultCard2());
        }
        if (!other.bestHandPosition_.isEmpty()) {
          if (bestHandPosition_.isEmpty()) {
            bestHandPosition_ = other.bestHandPosition_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureBestHandPositionIsMutable();
            bestHandPosition_.addAll(other.bestHandPosition_);
          }
          
        }
        if (other.hasMoneyWon()) {
          setMoneyWon(other.getMoneyWon());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        if (other.hasCardsValue()) {
          setCardsValue(other.getCardsValue());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasResultCard1()) {
          
          return false;
        }
        if (!hasResultCard2()) {
          
          return false;
        }
        if (!hasMoneyWon()) {
          
          return false;
        }
        if (!hasPlayerMoney()) {
          
          return false;
        }
        return true;
      }

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

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        
        return this;
      }

      private int resultCard1_ ;
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       */
      public boolean hasResultCard1() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       */
      public int getResultCard1() {
        return resultCard1_;
      }
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       */
      public Builder setResultCard1(int value) {
        bitField0_ |= 0x00000002;
        resultCard1_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       */
      public Builder clearResultCard1() {
        bitField0_ = (bitField0_ & ~0x00000002);
        resultCard1_ = 0;
        
        return this;
      }

      private int resultCard2_ ;
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       */
      public boolean hasResultCard2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       */
      public int getResultCard2() {
        return resultCard2_;
      }
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       */
      public Builder setResultCard2(int value) {
        bitField0_ |= 0x00000004;
        resultCard2_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       */
      public Builder clearResultCard2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        resultCard2_ = 0;
        
        return this;
      }

      private java.util.List<java.lang.Integer> bestHandPosition_ = java.util.Collections.emptyList();
      private void ensureBestHandPositionIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          bestHandPosition_ = new java.util.ArrayList<java.lang.Integer>(bestHandPosition_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getBestHandPositionList() {
        return java.util.Collections.unmodifiableList(bestHandPosition_);
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public int getBestHandPositionCount() {
        return bestHandPosition_.size();
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public int getBestHandPosition(int index) {
        return bestHandPosition_.get(index);
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public Builder setBestHandPosition(
          int index, int value) {
        ensureBestHandPositionIsMutable();
        bestHandPosition_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public Builder addBestHandPosition(int value) {
        ensureBestHandPositionIsMutable();
        bestHandPosition_.add(value);
        
        return this;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public Builder addAllBestHandPosition(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureBestHandPositionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, bestHandPosition_);
        
        return this;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       */
      public Builder clearBestHandPosition() {
        bestHandPosition_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        
        return this;
      }

      private int moneyWon_ ;
      /**
       * <code>required uint32 moneyWon = 5;</code>
       */
      public boolean hasMoneyWon() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 moneyWon = 5;</code>
       */
      public int getMoneyWon() {
        return moneyWon_;
      }
      /**
       * <code>required uint32 moneyWon = 5;</code>
       */
      public Builder setMoneyWon(int value) {
        bitField0_ |= 0x00000010;
        moneyWon_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 moneyWon = 5;</code>
       */
      public Builder clearMoneyWon() {
        bitField0_ = (bitField0_ & ~0x00000010);
        moneyWon_ = 0;
        
        return this;
      }

      private int playerMoney_ ;
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public int getPlayerMoney() {
        return playerMoney_;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public Builder setPlayerMoney(int value) {
        bitField0_ |= 0x00000020;
        playerMoney_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerMoney_ = 0;
        
        return this;
      }

      private int cardsValue_ ;
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       */
      public boolean hasCardsValue() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       */
      public int getCardsValue() {
        return cardsValue_;
      }
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       */
      public Builder setCardsValue(int value) {
        bitField0_ |= 0x00000040;
        cardsValue_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       */
      public Builder clearCardsValue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        cardsValue_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayerResult)
    }

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

    // @@protoc_insertion_point(class_scope:PlayerResult)
  }

  public interface AnnounceMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AnnounceMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     */
    boolean hasProtocolVersion();
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion();

    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     */
    boolean hasLatestGameVersion();
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion();

    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     */
    boolean hasLatestBetaRevision();
    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     */
    int getLatestBetaRevision();

    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     */
    boolean hasServerType();
    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType();

    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     */
    boolean hasNumPlayersOnServer();
    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     */
    int getNumPlayersOnServer();
  }
  /**
   * Protobuf type {@code AnnounceMessage}
   */
  public static final class AnnounceMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AnnounceMessage)
      AnnounceMessageOrBuilder {
    // Use AnnounceMessage.newBuilder() to construct.
    private AnnounceMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AnnounceMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AnnounceMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AnnounceMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = protocolVersion_.toBuilder();
              }
              protocolVersion_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(protocolVersion_);
                protocolVersion_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = latestGameVersion_.toBuilder();
              }
              latestGameVersion_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(latestGameVersion_);
                latestGameVersion_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              latestBetaRevision_ = input.readUInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType value = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000008;
                serverType_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              numPlayersOnServer_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AnnounceMessage> PARSER =
        new com.google.protobuf.AbstractParser<AnnounceMessage>() {
      public AnnounceMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AnnounceMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code AnnounceMessage.ServerType}
     */
    public enum ServerType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>serverTypeLAN = 0;</code>
       */
      serverTypeLAN(0, 0),
      /**
       * <code>serverTypeInternetNoAuth = 1;</code>
       */
      serverTypeInternetNoAuth(1, 1),
      /**
       * <code>serverTypeInternetAuth = 2;</code>
       */
      serverTypeInternetAuth(2, 2),
      ;

      /**
       * <code>serverTypeLAN = 0;</code>
       */
      public static final int serverTypeLAN_VALUE = 0;
      /**
       * <code>serverTypeInternetNoAuth = 1;</code>
       */
      public static final int serverTypeInternetNoAuth_VALUE = 1;
      /**
       * <code>serverTypeInternetAuth = 2;</code>
       */
      public static final int serverTypeInternetAuth_VALUE = 2;


      public final int getNumber() { return value; }

      public static ServerType valueOf(int value) {
        switch (value) {
          case 0: return serverTypeLAN;
          case 1: return serverTypeInternetNoAuth;
          case 2: return serverTypeInternetAuth;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:AnnounceMessage.ServerType)
    }

    public interface VersionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AnnounceMessage.Version)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>required uint32 majorVersion = 1;</code>
       */
      boolean hasMajorVersion();
      /**
       * <code>required uint32 majorVersion = 1;</code>
       */
      int getMajorVersion();

      /**
       * <code>required uint32 minorVersion = 2;</code>
       */
      boolean hasMinorVersion();
      /**
       * <code>required uint32 minorVersion = 2;</code>
       */
      int getMinorVersion();
    }
    /**
     * Protobuf type {@code AnnounceMessage.Version}
     */
    public static final class Version extends
        com.google.protobuf.GeneratedMessageLite implements
        // @@protoc_insertion_point(message_implements:AnnounceMessage.Version)
        VersionOrBuilder {
      // Use Version.newBuilder() to construct.
      private Version(com.google.protobuf.GeneratedMessageLite.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Version(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

      public Version getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.ByteString unknownFields;
      private Version(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.ByteString.Output unknownFieldsOutput =
            com.google.protobuf.ByteString.newOutput();
        com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
            com.google.protobuf.CodedOutputStream.newInstance(
                unknownFieldsOutput);
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                majorVersion_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                minorVersion_ = input.readUInt32();
                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 {
          try {
            unknownFieldsCodedOutput.flush();
          } catch (java.io.IOException e) {
          // Should not happen
          } finally {
            unknownFields = unknownFieldsOutput.toByteString();
          }
          makeExtensionsImmutable();
        }
      }
      public static com.google.protobuf.Parser<Version> PARSER =
          new com.google.protobuf.AbstractParser<Version>() {
        public Version parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Version(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      public static final int MAJORVERSION_FIELD_NUMBER = 1;
      private int majorVersion_;
      /**
       * <code>required uint32 majorVersion = 1;</code>
       */
      public boolean hasMajorVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 majorVersion = 1;</code>
       */
      public int getMajorVersion() {
        return majorVersion_;
      }

      public static final int MINORVERSION_FIELD_NUMBER = 2;
      private int minorVersion_;
      /**
       * <code>required uint32 minorVersion = 2;</code>
       */
      public boolean hasMinorVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 minorVersion = 2;</code>
       */
      public int getMinorVersion() {
        return minorVersion_;
      }

      private void initFields() {
        majorVersion_ = 0;
        minorVersion_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasMajorVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasMinorVersion()) {
          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.writeUInt32(1, majorVersion_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, minorVersion_);
        }
        output.writeRawBytes(unknownFields);
      }

      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
            .computeUInt32Size(1, majorVersion_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, minorVersion_);
        }
        size += unknownFields.size();
        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 de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version 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(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      /**
       * Protobuf type {@code AnnounceMessage.Version}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, Builder>
          implements
          // @@protoc_insertion_point(builder_implements:AnnounceMessage.Version)
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }

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

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

        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        }

        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version build() {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version buildPartial() {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = new de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.majorVersion_ = majorVersion_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.minorVersion_ = minorVersion_;
          result.bitField0_ = to_bitField0_;
          return result;
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version other) {
          if (other == de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) return this;
          if (other.hasMajorVersion()) {
            setMajorVersion(other.getMajorVersion());
          }
          if (other.hasMinorVersion()) {
            setMinorVersion(other.getMinorVersion());
          }
          setUnknownFields(
              getUnknownFields().concat(other.unknownFields));
          return this;
        }

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

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

        private int majorVersion_ ;
        /**
         * <code>required uint32 majorVersion = 1;</code>
         */
        public boolean hasMajorVersion() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required uint32 majorVersion = 1;</code>
         */
        public int getMajorVersion() {
          return majorVersion_;
        }
        /**
         * <code>required uint32 majorVersion = 1;</code>
         */
        public Builder setMajorVersion(int value) {
          bitField0_ |= 0x00000001;
          majorVersion_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 majorVersion = 1;</code>
         */
        public Builder clearMajorVersion() {
          bitField0_ = (bitField0_ & ~0x00000001);
          majorVersion_ = 0;
          
          return this;
        }

        private int minorVersion_ ;
        /**
         * <code>required uint32 minorVersion = 2;</code>
         */
        public boolean hasMinorVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required uint32 minorVersion = 2;</code>
         */
        public int getMinorVersion() {
          return minorVersion_;
        }
        /**
         * <code>required uint32 minorVersion = 2;</code>
         */
        public Builder setMinorVersion(int value) {
          bitField0_ |= 0x00000002;
          minorVersion_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 minorVersion = 2;</code>
         */
        public Builder clearMinorVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          minorVersion_ = 0;
          
          return this;
        }

        // @@protoc_insertion_point(builder_scope:AnnounceMessage.Version)
      }

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

      // @@protoc_insertion_point(class_scope:AnnounceMessage.Version)
    }

    private int bitField0_;
    public static final int PROTOCOLVERSION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version protocolVersion_;
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     */
    public boolean hasProtocolVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion() {
      return protocolVersion_;
    }

    public static final int LATESTGAMEVERSION_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version latestGameVersion_;
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     */
    public boolean hasLatestGameVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion() {
      return latestGameVersion_;
    }

    public static final int LATESTBETAREVISION_FIELD_NUMBER = 3;
    private int latestBetaRevision_;
    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     */
    public boolean hasLatestBetaRevision() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     */
    public int getLatestBetaRevision() {
      return latestBetaRevision_;
    }

    public static final int SERVERTYPE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType serverType_;
    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     */
    public boolean hasServerType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType() {
      return serverType_;
    }

    public static final int NUMPLAYERSONSERVER_FIELD_NUMBER = 5;
    private int numPlayersOnServer_;
    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     */
    public boolean hasNumPlayersOnServer() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     */
    public int getNumPlayersOnServer() {
      return numPlayersOnServer_;
    }

    private void initFields() {
      protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      latestBetaRevision_ = 0;
      serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
      numPlayersOnServer_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasProtocolVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLatestGameVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLatestBetaRevision()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasServerType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumPlayersOnServer()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getProtocolVersion().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getLatestGameVersion().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, protocolVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, latestGameVersion_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, latestBetaRevision_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, serverType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, numPlayersOnServer_);
      }
      output.writeRawBytes(unknownFields);
    }

    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, protocolVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, latestGameVersion_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, latestBetaRevision_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, serverType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, numPlayersOnServer_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage 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(de.pokerth.protocol.ProtoBuf.AnnounceMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AnnounceMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AnnounceMessage)
        de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AnnounceMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        latestBetaRevision_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
        bitField0_ = (bitField0_ & ~0x00000008);
        numPlayersOnServer_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AnnounceMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AnnounceMessage build() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AnnounceMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = new de.pokerth.protocol.ProtoBuf.AnnounceMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.protocolVersion_ = protocolVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.latestGameVersion_ = latestGameVersion_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.latestBetaRevision_ = latestBetaRevision_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.serverType_ = serverType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.numPlayersOnServer_ = numPlayersOnServer_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AnnounceMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance()) return this;
        if (other.hasProtocolVersion()) {
          mergeProtocolVersion(other.getProtocolVersion());
        }
        if (other.hasLatestGameVersion()) {
          mergeLatestGameVersion(other.getLatestGameVersion());
        }
        if (other.hasLatestBetaRevision()) {
          setLatestBetaRevision(other.getLatestBetaRevision());
        }
        if (other.hasServerType()) {
          setServerType(other.getServerType());
        }
        if (other.hasNumPlayersOnServer()) {
          setNumPlayersOnServer(other.getNumPlayersOnServer());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasProtocolVersion()) {
          
          return false;
        }
        if (!hasLatestGameVersion()) {
          
          return false;
        }
        if (!hasLatestBetaRevision()) {
          
          return false;
        }
        if (!hasServerType()) {
          
          return false;
        }
        if (!hasNumPlayersOnServer()) {
          
          return false;
        }
        if (!getProtocolVersion().isInitialized()) {
          
          return false;
        }
        if (!getLatestGameVersion().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public boolean hasProtocolVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion() {
        return protocolVersion_;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder setProtocolVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (value == null) {
          throw new NullPointerException();
        }
        protocolVersion_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder setProtocolVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        protocolVersion_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder mergeProtocolVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            protocolVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
          protocolVersion_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder(protocolVersion_).mergeFrom(value).buildPartial();
        } else {
          protocolVersion_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder clearProtocolVersion() {
        protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public boolean hasLatestGameVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion() {
        return latestGameVersion_;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder setLatestGameVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (value == null) {
          throw new NullPointerException();
        }
        latestGameVersion_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder setLatestGameVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        latestGameVersion_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder mergeLatestGameVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            latestGameVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
          latestGameVersion_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder(latestGameVersion_).mergeFrom(value).buildPartial();
        } else {
          latestGameVersion_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder clearLatestGameVersion() {
        latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private int latestBetaRevision_ ;
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       */
      public boolean hasLatestBetaRevision() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       */
      public int getLatestBetaRevision() {
        return latestBetaRevision_;
      }
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       */
      public Builder setLatestBetaRevision(int value) {
        bitField0_ |= 0x00000004;
        latestBetaRevision_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       */
      public Builder clearLatestBetaRevision() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latestBetaRevision_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       */
      public boolean hasServerType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType() {
        return serverType_;
      }
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       */
      public Builder setServerType(de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        serverType_ = value;
        
        return this;
      }
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       */
      public Builder clearServerType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
        
        return this;
      }

      private int numPlayersOnServer_ ;
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       */
      public boolean hasNumPlayersOnServer() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       */
      public int getNumPlayersOnServer() {
        return numPlayersOnServer_;
      }
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       */
      public Builder setNumPlayersOnServer(int value) {
        bitField0_ |= 0x00000010;
        numPlayersOnServer_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       */
      public Builder clearNumPlayersOnServer() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numPlayersOnServer_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AnnounceMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AnnounceMessage)
  }

  public interface InitMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:InitMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     */
    boolean hasRequestedVersion();
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion();

    /**
     * <code>required uint32 buildId = 2;</code>
     */
    boolean hasBuildId();
    /**
     * <code>required uint32 buildId = 2;</code>
     */
    int getBuildId();

    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     */
    boolean hasMyLastSessionId();
    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     */
    com.google.protobuf.ByteString getMyLastSessionId();

    /**
     * <code>optional string authServerPassword = 4;</code>
     */
    boolean hasAuthServerPassword();
    /**
     * <code>optional string authServerPassword = 4;</code>
     */
    java.lang.String getAuthServerPassword();
    /**
     * <code>optional string authServerPassword = 4;</code>
     */
    com.google.protobuf.ByteString
        getAuthServerPasswordBytes();

    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     */
    boolean hasLogin();
    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     */
    de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin();

    /**
     * <code>optional string nickName = 6;</code>
     *
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     */
    boolean hasNickName();
    /**
     * <code>optional string nickName = 6;</code>
     *
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     */
    java.lang.String getNickName();
    /**
     * <code>optional string nickName = 6;</code>
     *
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     */
    com.google.protobuf.ByteString
        getNickNameBytes();

    /**
     * <code>optional bytes clientUserData = 7;</code>
     *
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     */
    boolean hasClientUserData();
    /**
     * <code>optional bytes clientUserData = 7;</code>
     *
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     */
    com.google.protobuf.ByteString getClientUserData();

    /**
     * <code>optional bytes avatarHash = 8;</code>
     *
     * <pre>
     * Ignored for guest login.
     * </pre>
     */
    boolean hasAvatarHash();
    /**
     * <code>optional bytes avatarHash = 8;</code>
     *
     * <pre>
     * Ignored for guest login.
     * </pre>
     */
    com.google.protobuf.ByteString getAvatarHash();
  }
  /**
   * Protobuf type {@code InitMessage}
   *
   * <pre>
   * buildId contains a constant build id (specific for Windows/Linux/Mac builds)
   * </pre>
   */
  public static final class InitMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:InitMessage)
      InitMessageOrBuilder {
    // Use InitMessage.newBuilder() to construct.
    private InitMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private InitMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public InitMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private InitMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = requestedVersion_.toBuilder();
              }
              requestedVersion_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(requestedVersion_);
                requestedVersion_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              buildId_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              myLastSessionId_ = input.readBytes();
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              authServerPassword_ = bs;
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.InitMessage.LoginType value = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000010;
                login_ = value;
              }
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              nickName_ = bs;
              break;
            }
            case 58: {
              bitField0_ |= 0x00000040;
              clientUserData_ = input.readBytes();
              break;
            }
            case 66: {
              bitField0_ |= 0x00000080;
              avatarHash_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<InitMessage> PARSER =
        new com.google.protobuf.AbstractParser<InitMessage>() {
      public InitMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new InitMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code InitMessage.LoginType}
     */
    public enum LoginType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>guestLogin = 0;</code>
       */
      guestLogin(0, 0),
      /**
       * <code>authenticatedLogin = 1;</code>
       */
      authenticatedLogin(1, 1),
      /**
       * <code>unauthenticatedLogin = 2;</code>
       */
      unauthenticatedLogin(2, 2),
      ;

      /**
       * <code>guestLogin = 0;</code>
       */
      public static final int guestLogin_VALUE = 0;
      /**
       * <code>authenticatedLogin = 1;</code>
       */
      public static final int authenticatedLogin_VALUE = 1;
      /**
       * <code>unauthenticatedLogin = 2;</code>
       */
      public static final int unauthenticatedLogin_VALUE = 2;


      public final int getNumber() { return value; }

      public static LoginType valueOf(int value) {
        switch (value) {
          case 0: return guestLogin;
          case 1: return authenticatedLogin;
          case 2: return unauthenticatedLogin;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:InitMessage.LoginType)
    }

    private int bitField0_;
    public static final int REQUESTEDVERSION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version requestedVersion_;
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     */
    public boolean hasRequestedVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion() {
      return requestedVersion_;
    }

    public static final int BUILDID_FIELD_NUMBER = 2;
    private int buildId_;
    /**
     * <code>required uint32 buildId = 2;</code>
     */
    public boolean hasBuildId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 buildId = 2;</code>
     */
    public int getBuildId() {
      return buildId_;
    }

    public static final int MYLASTSESSIONID_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString myLastSessionId_;
    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     */
    public boolean hasMyLastSessionId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     */
    public com.google.protobuf.ByteString getMyLastSessionId() {
      return myLastSessionId_;
    }

    public static final int AUTHSERVERPASSWORD_FIELD_NUMBER = 4;
    private java.lang.Object authServerPassword_;
    /**
     * <code>optional string authServerPassword = 4;</code>
     */
    public boolean hasAuthServerPassword() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string authServerPassword = 4;</code>
     */
    public java.lang.String getAuthServerPassword() {
      java.lang.Object ref = authServerPassword_;
      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()) {
          authServerPassword_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string authServerPassword = 4;</code>
     */
    public com.google.protobuf.ByteString
        getAuthServerPasswordBytes() {
      java.lang.Object ref = authServerPassword_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        authServerPassword_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGIN_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.InitMessage.LoginType login_;
    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     */
    public boolean hasLogin() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     */
    public de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin() {
      return login_;
    }

    public static final int NICKNAME_FIELD_NUMBER = 6;
    private java.lang.Object nickName_;
    /**
     * <code>optional string nickName = 6;</code>
     *
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     */
    public boolean hasNickName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional string nickName = 6;</code>
     *
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     */
    public java.lang.String getNickName() {
      java.lang.Object ref = nickName_;
      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()) {
          nickName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string nickName = 6;</code>
     *
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     */
    public com.google.protobuf.ByteString
        getNickNameBytes() {
      java.lang.Object ref = nickName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nickName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTUSERDATA_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString clientUserData_;
    /**
     * <code>optional bytes clientUserData = 7;</code>
     *
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     */
    public boolean hasClientUserData() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional bytes clientUserData = 7;</code>
     *
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     */
    public com.google.protobuf.ByteString getClientUserData() {
      return clientUserData_;
    }

    public static final int AVATARHASH_FIELD_NUMBER = 8;
    private com.google.protobuf.ByteString avatarHash_;
    /**
     * <code>optional bytes avatarHash = 8;</code>
     *
     * <pre>
     * Ignored for guest login.
     * </pre>
     */
    public boolean hasAvatarHash() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional bytes avatarHash = 8;</code>
     *
     * <pre>
     * Ignored for guest login.
     * </pre>
     */
    public com.google.protobuf.ByteString getAvatarHash() {
      return avatarHash_;
    }

    private void initFields() {
      requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      buildId_ = 0;
      myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
      authServerPassword_ = "";
      login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
      nickName_ = "";
      clientUserData_ = com.google.protobuf.ByteString.EMPTY;
      avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestedVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasBuildId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getRequestedVersion().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, requestedVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, buildId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, myLastSessionId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getAuthServerPasswordBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeEnum(5, login_.getNumber());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getNickNameBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBytes(7, clientUserData_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(8, avatarHash_);
      }
      output.writeRawBytes(unknownFields);
    }

    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, requestedVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, buildId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, myLastSessionId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getAuthServerPasswordBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, login_.getNumber());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getNickNameBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, clientUserData_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, avatarHash_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage 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(de.pokerth.protocol.ProtoBuf.InitMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code InitMessage}
     *
     * <pre>
     * buildId contains a constant build id (specific for Windows/Linux/Mac builds)
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InitMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:InitMessage)
        de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InitMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        buildId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        authServerPassword_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
        bitField0_ = (bitField0_ & ~0x00000010);
        nickName_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        clientUserData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.InitMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.InitMessage build() {
        de.pokerth.protocol.ProtoBuf.InitMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.InitMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InitMessage result = new de.pokerth.protocol.ProtoBuf.InitMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestedVersion_ = requestedVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.buildId_ = buildId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.myLastSessionId_ = myLastSessionId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.authServerPassword_ = authServerPassword_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.login_ = login_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.nickName_ = nickName_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientUserData_ = clientUserData_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.avatarHash_ = avatarHash_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InitMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance()) return this;
        if (other.hasRequestedVersion()) {
          mergeRequestedVersion(other.getRequestedVersion());
        }
        if (other.hasBuildId()) {
          setBuildId(other.getBuildId());
        }
        if (other.hasMyLastSessionId()) {
          setMyLastSessionId(other.getMyLastSessionId());
        }
        if (other.hasAuthServerPassword()) {
          bitField0_ |= 0x00000008;
          authServerPassword_ = other.authServerPassword_;
          
        }
        if (other.hasLogin()) {
          setLogin(other.getLogin());
        }
        if (other.hasNickName()) {
          bitField0_ |= 0x00000020;
          nickName_ = other.nickName_;
          
        }
        if (other.hasClientUserData()) {
          setClientUserData(other.getClientUserData());
        }
        if (other.hasAvatarHash()) {
          setAvatarHash(other.getAvatarHash());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasRequestedVersion()) {
          
          return false;
        }
        if (!hasBuildId()) {
          
          return false;
        }
        if (!hasLogin()) {
          
          return false;
        }
        if (!getRequestedVersion().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public boolean hasRequestedVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion() {
        return requestedVersion_;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder setRequestedVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (value == null) {
          throw new NullPointerException();
        }
        requestedVersion_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder setRequestedVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        requestedVersion_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder mergeRequestedVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            requestedVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
          requestedVersion_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder(requestedVersion_).mergeFrom(value).buildPartial();
        } else {
          requestedVersion_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder clearRequestedVersion() {
        requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private int buildId_ ;
      /**
       * <code>required uint32 buildId = 2;</code>
       */
      public boolean hasBuildId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 buildId = 2;</code>
       */
      public int getBuildId() {
        return buildId_;
      }
      /**
       * <code>required uint32 buildId = 2;</code>
       */
      public Builder setBuildId(int value) {
        bitField0_ |= 0x00000002;
        buildId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 buildId = 2;</code>
       */
      public Builder clearBuildId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        buildId_ = 0;
        
        return this;
      }

      private com.google.protobuf.ByteString myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       */
      public boolean hasMyLastSessionId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       */
      public com.google.protobuf.ByteString getMyLastSessionId() {
        return myLastSessionId_;
      }
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       */
      public Builder setMyLastSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        myLastSessionId_ = value;
        
        return this;
      }
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       */
      public Builder clearMyLastSessionId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        myLastSessionId_ = getDefaultInstance().getMyLastSessionId();
        
        return this;
      }

      private java.lang.Object authServerPassword_ = "";
      /**
       * <code>optional string authServerPassword = 4;</code>
       */
      public boolean hasAuthServerPassword() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       */
      public java.lang.String getAuthServerPassword() {
        java.lang.Object ref = authServerPassword_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            authServerPassword_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       */
      public com.google.protobuf.ByteString
          getAuthServerPasswordBytes() {
        java.lang.Object ref = authServerPassword_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          authServerPassword_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       */
      public Builder setAuthServerPassword(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        authServerPassword_ = value;
        
        return this;
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       */
      public Builder clearAuthServerPassword() {
        bitField0_ = (bitField0_ & ~0x00000008);
        authServerPassword_ = getDefaultInstance().getAuthServerPassword();
        
        return this;
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       */
      public Builder setAuthServerPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        authServerPassword_ = value;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.InitMessage.LoginType login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       */
      public boolean hasLogin() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin() {
        return login_;
      }
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       */
      public Builder setLogin(de.pokerth.protocol.ProtoBuf.InitMessage.LoginType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        login_ = value;
        
        return this;
      }
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       */
      public Builder clearLogin() {
        bitField0_ = (bitField0_ & ~0x00000010);
        login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
        
        return this;
      }

      private java.lang.Object nickName_ = "";
      /**
       * <code>optional string nickName = 6;</code>
       *
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       */
      public boolean hasNickName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional string nickName = 6;</code>
       *
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       */
      public java.lang.String getNickName() {
        java.lang.Object ref = nickName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nickName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string nickName = 6;</code>
       *
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       */
      public com.google.protobuf.ByteString
          getNickNameBytes() {
        java.lang.Object ref = nickName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nickName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string nickName = 6;</code>
       *
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       */
      public Builder setNickName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        nickName_ = value;
        
        return this;
      }
      /**
       * <code>optional string nickName = 6;</code>
       *
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       */
      public Builder clearNickName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        nickName_ = getDefaultInstance().getNickName();
        
        return this;
      }
      /**
       * <code>optional string nickName = 6;</code>
       *
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       */
      public Builder setNickNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        nickName_ = value;
        
        return this;
      }

      private com.google.protobuf.ByteString clientUserData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes clientUserData = 7;</code>
       *
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       */
      public boolean hasClientUserData() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional bytes clientUserData = 7;</code>
       *
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       */
      public com.google.protobuf.ByteString getClientUserData() {
        return clientUserData_;
      }
      /**
       * <code>optional bytes clientUserData = 7;</code>
       *
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       */
      public Builder setClientUserData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientUserData_ = value;
        
        return this;
      }
      /**
       * <code>optional bytes clientUserData = 7;</code>
       *
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       */
      public Builder clearClientUserData() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientUserData_ = getDefaultInstance().getClientUserData();
        
        return this;
      }

      private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes avatarHash = 8;</code>
       *
       * <pre>
       * Ignored for guest login.
       * </pre>
       */
      public boolean hasAvatarHash() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional bytes avatarHash = 8;</code>
       *
       * <pre>
       * Ignored for guest login.
       * </pre>
       */
      public com.google.protobuf.ByteString getAvatarHash() {
        return avatarHash_;
      }
      /**
       * <code>optional bytes avatarHash = 8;</code>
       *
       * <pre>
       * Ignored for guest login.
       * </pre>
       */
      public Builder setAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        avatarHash_ = value;
        
        return this;
      }
      /**
       * <code>optional bytes avatarHash = 8;</code>
       *
       * <pre>
       * Ignored for guest login.
       * </pre>
       */
      public Builder clearAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000080);
        avatarHash_ = getDefaultInstance().getAvatarHash();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:InitMessage)
    }

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

    // @@protoc_insertion_point(class_scope:InitMessage)
  }

  public interface AuthServerChallengeMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AuthServerChallengeMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required bytes serverChallenge = 1;</code>
     */
    boolean hasServerChallenge();
    /**
     * <code>required bytes serverChallenge = 1;</code>
     */
    com.google.protobuf.ByteString getServerChallenge();
  }
  /**
   * Protobuf type {@code AuthServerChallengeMessage}
   */
  public static final class AuthServerChallengeMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AuthServerChallengeMessage)
      AuthServerChallengeMessageOrBuilder {
    // Use AuthServerChallengeMessage.newBuilder() to construct.
    private AuthServerChallengeMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AuthServerChallengeMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AuthServerChallengeMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AuthServerChallengeMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              serverChallenge_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AuthServerChallengeMessage> PARSER =
        new com.google.protobuf.AbstractParser<AuthServerChallengeMessage>() {
      public AuthServerChallengeMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AuthServerChallengeMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int SERVERCHALLENGE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString serverChallenge_;
    /**
     * <code>required bytes serverChallenge = 1;</code>
     */
    public boolean hasServerChallenge() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes serverChallenge = 1;</code>
     */
    public com.google.protobuf.ByteString getServerChallenge() {
      return serverChallenge_;
    }

    private void initFields() {
      serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, serverChallenge_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage 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(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AuthServerChallengeMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AuthServerChallengeMessage)
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = new de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.serverChallenge_ = serverChallenge_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance()) return this;
        if (other.hasServerChallenge()) {
          setServerChallenge(other.getServerChallenge());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private com.google.protobuf.ByteString serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes serverChallenge = 1;</code>
       */
      public boolean hasServerChallenge() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes serverChallenge = 1;</code>
       */
      public com.google.protobuf.ByteString getServerChallenge() {
        return serverChallenge_;
      }
      /**
       * <code>required bytes serverChallenge = 1;</code>
       */
      public Builder setServerChallenge(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        serverChallenge_ = value;
        
        return this;
      }
      /**
       * <code>required bytes serverChallenge = 1;</code>
       */
      public Builder clearServerChallenge() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverChallenge_ = getDefaultInstance().getServerChallenge();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AuthServerChallengeMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AuthServerChallengeMessage)
  }

  public interface AuthClientResponseMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AuthClientResponseMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required bytes clientResponse = 1;</code>
     */
    boolean hasClientResponse();
    /**
     * <code>required bytes clientResponse = 1;</code>
     */
    com.google.protobuf.ByteString getClientResponse();
  }
  /**
   * Protobuf type {@code AuthClientResponseMessage}
   */
  public static final class AuthClientResponseMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AuthClientResponseMessage)
      AuthClientResponseMessageOrBuilder {
    // Use AuthClientResponseMessage.newBuilder() to construct.
    private AuthClientResponseMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AuthClientResponseMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AuthClientResponseMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AuthClientResponseMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              clientResponse_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AuthClientResponseMessage> PARSER =
        new com.google.protobuf.AbstractParser<AuthClientResponseMessage>() {
      public AuthClientResponseMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AuthClientResponseMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int CLIENTRESPONSE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString clientResponse_;
    /**
     * <code>required bytes clientResponse = 1;</code>
     */
    public boolean hasClientResponse() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes clientResponse = 1;</code>
     */
    public com.google.protobuf.ByteString getClientResponse() {
      return clientResponse_;
    }

    private void initFields() {
      clientResponse_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, clientResponse_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage 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(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AuthClientResponseMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AuthClientResponseMessage)
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        clientResponse_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = new de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clientResponse_ = clientResponse_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance()) return this;
        if (other.hasClientResponse()) {
          setClientResponse(other.getClientResponse());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private com.google.protobuf.ByteString clientResponse_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes clientResponse = 1;</code>
       */
      public boolean hasClientResponse() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes clientResponse = 1;</code>
       */
      public com.google.protobuf.ByteString getClientResponse() {
        return clientResponse_;
      }
      /**
       * <code>required bytes clientResponse = 1;</code>
       */
      public Builder setClientResponse(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        clientResponse_ = value;
        
        return this;
      }
      /**
       * <code>required bytes clientResponse = 1;</code>
       */
      public Builder clearClientResponse() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientResponse_ = getDefaultInstance().getClientResponse();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AuthClientResponseMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AuthClientResponseMessage)
  }

  public interface AuthServerVerificationMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AuthServerVerificationMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required bytes serverVerification = 1;</code>
     */
    boolean hasServerVerification();
    /**
     * <code>required bytes serverVerification = 1;</code>
     */
    com.google.protobuf.ByteString getServerVerification();
  }
  /**
   * Protobuf type {@code AuthServerVerificationMessage}
   */
  public static final class AuthServerVerificationMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AuthServerVerificationMessage)
      AuthServerVerificationMessageOrBuilder {
    // Use AuthServerVerificationMessage.newBuilder() to construct.
    private AuthServerVerificationMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AuthServerVerificationMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AuthServerVerificationMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AuthServerVerificationMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              serverVerification_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AuthServerVerificationMessage> PARSER =
        new com.google.protobuf.AbstractParser<AuthServerVerificationMessage>() {
      public AuthServerVerificationMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AuthServerVerificationMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int SERVERVERIFICATION_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString serverVerification_;
    /**
     * <code>required bytes serverVerification = 1;</code>
     */
    public boolean hasServerVerification() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes serverVerification = 1;</code>
     */
    public com.google.protobuf.ByteString getServerVerification() {
      return serverVerification_;
    }

    private void initFields() {
      serverVerification_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, serverVerification_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage 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(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AuthServerVerificationMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AuthServerVerificationMessage)
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        serverVerification_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = new de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.serverVerification_ = serverVerification_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance()) return this;
        if (other.hasServerVerification()) {
          setServerVerification(other.getServerVerification());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private com.google.protobuf.ByteString serverVerification_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes serverVerification = 1;</code>
       */
      public boolean hasServerVerification() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes serverVerification = 1;</code>
       */
      public com.google.protobuf.ByteString getServerVerification() {
        return serverVerification_;
      }
      /**
       * <code>required bytes serverVerification = 1;</code>
       */
      public Builder setServerVerification(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        serverVerification_ = value;
        
        return this;
      }
      /**
       * <code>required bytes serverVerification = 1;</code>
       */
      public Builder clearServerVerification() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverVerification_ = getDefaultInstance().getServerVerification();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AuthServerVerificationMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AuthServerVerificationMessage)
  }

  public interface InitAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:InitAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required bytes yourSessionId = 1;</code>
     */
    boolean hasYourSessionId();
    /**
     * <code>required bytes yourSessionId = 1;</code>
     */
    com.google.protobuf.ByteString getYourSessionId();

    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     */
    boolean hasYourPlayerId();
    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     */
    int getYourPlayerId();

    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     */
    boolean hasYourAvatarHash();
    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     */
    com.google.protobuf.ByteString getYourAvatarHash();

    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     */
    boolean hasRejoinGameId();
    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     */
    int getRejoinGameId();
  }
  /**
   * Protobuf type {@code InitAckMessage}
   */
  public static final class InitAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:InitAckMessage)
      InitAckMessageOrBuilder {
    // Use InitAckMessage.newBuilder() to construct.
    private InitAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private InitAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public InitAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private InitAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              yourSessionId_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              yourPlayerId_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              yourAvatarHash_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              rejoinGameId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<InitAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<InitAckMessage>() {
      public InitAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new InitAckMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int YOURSESSIONID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString yourSessionId_;
    /**
     * <code>required bytes yourSessionId = 1;</code>
     */
    public boolean hasYourSessionId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes yourSessionId = 1;</code>
     */
    public com.google.protobuf.ByteString getYourSessionId() {
      return yourSessionId_;
    }

    public static final int YOURPLAYERID_FIELD_NUMBER = 2;
    private int yourPlayerId_;
    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     */
    public boolean hasYourPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     */
    public int getYourPlayerId() {
      return yourPlayerId_;
    }

    public static final int YOURAVATARHASH_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString yourAvatarHash_;
    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     */
    public boolean hasYourAvatarHash() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     */
    public com.google.protobuf.ByteString getYourAvatarHash() {
      return yourAvatarHash_;
    }

    public static final int REJOINGAMEID_FIELD_NUMBER = 4;
    private int rejoinGameId_;
    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     */
    public boolean hasRejoinGameId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     */
    public int getRejoinGameId() {
      return rejoinGameId_;
    }

    private void initFields() {
      yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
      yourPlayerId_ = 0;
      yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      rejoinGameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, yourSessionId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, yourPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, yourAvatarHash_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, rejoinGameId_);
      }
      output.writeRawBytes(unknownFields);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, yourSessionId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, yourPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, yourAvatarHash_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rejoinGameId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage 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(de.pokerth.protocol.ProtoBuf.InitAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code InitAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InitAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:InitAckMessage)
        de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InitAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        yourPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        rejoinGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.InitAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.InitAckMessage build() {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.InitAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = new de.pokerth.protocol.ProtoBuf.InitAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.yourSessionId_ = yourSessionId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.yourPlayerId_ = yourPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.yourAvatarHash_ = yourAvatarHash_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.rejoinGameId_ = rejoinGameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InitAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance()) return this;
        if (other.hasYourSessionId()) {
          setYourSessionId(other.getYourSessionId());
        }
        if (other.hasYourPlayerId()) {
          setYourPlayerId(other.getYourPlayerId());
        }
        if (other.hasYourAvatarHash()) {
          setYourAvatarHash(other.getYourAvatarHash());
        }
        if (other.hasRejoinGameId()) {
          setRejoinGameId(other.getRejoinGameId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private com.google.protobuf.ByteString yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes yourSessionId = 1;</code>
       */
      public boolean hasYourSessionId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes yourSessionId = 1;</code>
       */
      public com.google.protobuf.ByteString getYourSessionId() {
        return yourSessionId_;
      }
      /**
       * <code>required bytes yourSessionId = 1;</code>
       */
      public Builder setYourSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        yourSessionId_ = value;
        
        return this;
      }
      /**
       * <code>required bytes yourSessionId = 1;</code>
       */
      public Builder clearYourSessionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        yourSessionId_ = getDefaultInstance().getYourSessionId();
        
        return this;
      }

      private int yourPlayerId_ ;
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       */
      public boolean hasYourPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       */
      public int getYourPlayerId() {
        return yourPlayerId_;
      }
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       */
      public Builder setYourPlayerId(int value) {
        bitField0_ |= 0x00000002;
        yourPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       */
      public Builder clearYourPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        yourPlayerId_ = 0;
        
        return this;
      }

      private com.google.protobuf.ByteString yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       */
      public boolean hasYourAvatarHash() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       */
      public com.google.protobuf.ByteString getYourAvatarHash() {
        return yourAvatarHash_;
      }
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       */
      public Builder setYourAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        yourAvatarHash_ = value;
        
        return this;
      }
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       */
      public Builder clearYourAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000004);
        yourAvatarHash_ = getDefaultInstance().getYourAvatarHash();
        
        return this;
      }

      private int rejoinGameId_ ;
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       */
      public boolean hasRejoinGameId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       */
      public int getRejoinGameId() {
        return rejoinGameId_;
      }
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       */
      public Builder setRejoinGameId(int value) {
        bitField0_ |= 0x00000008;
        rejoinGameId_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       */
      public Builder clearRejoinGameId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        rejoinGameId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:InitAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:InitAckMessage)
  }

  public interface AvatarRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AvatarRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     */
    int getRequestId();

    /**
     * <code>required bytes avatarHash = 2;</code>
     */
    boolean hasAvatarHash();
    /**
     * <code>required bytes avatarHash = 2;</code>
     */
    com.google.protobuf.ByteString getAvatarHash();
  }
  /**
   * Protobuf type {@code AvatarRequestMessage}
   */
  public static final class AvatarRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AvatarRequestMessage)
      AvatarRequestMessageOrBuilder {
    // Use AvatarRequestMessage.newBuilder() to construct.
    private AvatarRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AvatarRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AvatarRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AvatarRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              avatarHash_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AvatarRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<AvatarRequestMessage>() {
      public AvatarRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AvatarRequestMessage(input, extensionRegistry);
      }
    };

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

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

    public static final int AVATARHASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString avatarHash_;
    /**
     * <code>required bytes avatarHash = 2;</code>
     */
    public boolean hasAvatarHash() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bytes avatarHash = 2;</code>
     */
    public com.google.protobuf.ByteString getAvatarHash() {
      return avatarHash_;
    }

    private void initFields() {
      requestId_ = 0;
      avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarHash()) {
        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.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, avatarHash_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, avatarHash_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage 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(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AvatarRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AvatarRequestMessage)
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = new de.pokerth.protocol.ProtoBuf.AvatarRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.avatarHash_ = avatarHash_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasAvatarHash()) {
          setAvatarHash(other.getAvatarHash());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

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

      private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes avatarHash = 2;</code>
       */
      public boolean hasAvatarHash() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bytes avatarHash = 2;</code>
       */
      public com.google.protobuf.ByteString getAvatarHash() {
        return avatarHash_;
      }
      /**
       * <code>required bytes avatarHash = 2;</code>
       */
      public Builder setAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        avatarHash_ = value;
        
        return this;
      }
      /**
       * <code>required bytes avatarHash = 2;</code>
       */
      public Builder clearAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarHash_ = getDefaultInstance().getAvatarHash();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AvatarRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AvatarRequestMessage)
  }

  public interface AvatarHeaderMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AvatarHeaderMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     */
    int getRequestId();

    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     */
    boolean hasAvatarType();
    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType();

    /**
     * <code>required uint32 avatarSize = 3;</code>
     */
    boolean hasAvatarSize();
    /**
     * <code>required uint32 avatarSize = 3;</code>
     */
    int getAvatarSize();
  }
  /**
   * Protobuf type {@code AvatarHeaderMessage}
   */
  public static final class AvatarHeaderMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AvatarHeaderMessage)
      AvatarHeaderMessageOrBuilder {
    // Use AvatarHeaderMessage.newBuilder() to construct.
    private AvatarHeaderMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AvatarHeaderMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AvatarHeaderMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AvatarHeaderMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetAvatarType value = de.pokerth.protocol.ProtoBuf.NetAvatarType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                avatarType_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              avatarSize_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AvatarHeaderMessage> PARSER =
        new com.google.protobuf.AbstractParser<AvatarHeaderMessage>() {
      public AvatarHeaderMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AvatarHeaderMessage(input, extensionRegistry);
      }
    };

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

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

    public static final int AVATARTYPE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_;
    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     */
    public boolean hasAvatarType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
      return avatarType_;
    }

    public static final int AVATARSIZE_FIELD_NUMBER = 3;
    private int avatarSize_;
    /**
     * <code>required uint32 avatarSize = 3;</code>
     */
    public boolean hasAvatarSize() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 avatarSize = 3;</code>
     */
    public int getAvatarSize() {
      return avatarSize_;
    }

    private void initFields() {
      requestId_ = 0;
      avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
      avatarSize_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarSize()) {
        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.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, avatarType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, avatarSize_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, avatarType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, avatarSize_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage 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(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AvatarHeaderMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AvatarHeaderMessage)
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarSize_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = new de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.avatarType_ = avatarType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.avatarSize_ = avatarSize_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasAvatarType()) {
          setAvatarType(other.getAvatarType());
        }
        if (other.hasAvatarSize()) {
          setAvatarSize(other.getAvatarSize());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

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

      private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       */
      public boolean hasAvatarType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
        return avatarType_;
      }
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       */
      public Builder setAvatarType(de.pokerth.protocol.ProtoBuf.NetAvatarType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        avatarType_ = value;
        
        return this;
      }
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       */
      public Builder clearAvatarType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
        
        return this;
      }

      private int avatarSize_ ;
      /**
       * <code>required uint32 avatarSize = 3;</code>
       */
      public boolean hasAvatarSize() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 avatarSize = 3;</code>
       */
      public int getAvatarSize() {
        return avatarSize_;
      }
      /**
       * <code>required uint32 avatarSize = 3;</code>
       */
      public Builder setAvatarSize(int value) {
        bitField0_ |= 0x00000004;
        avatarSize_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 avatarSize = 3;</code>
       */
      public Builder clearAvatarSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        avatarSize_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AvatarHeaderMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AvatarHeaderMessage)
  }

  public interface AvatarDataMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AvatarDataMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     */
    int getRequestId();

    /**
     * <code>required bytes avatarBlock = 2;</code>
     */
    boolean hasAvatarBlock();
    /**
     * <code>required bytes avatarBlock = 2;</code>
     */
    com.google.protobuf.ByteString getAvatarBlock();
  }
  /**
   * Protobuf type {@code AvatarDataMessage}
   */
  public static final class AvatarDataMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AvatarDataMessage)
      AvatarDataMessageOrBuilder {
    // Use AvatarDataMessage.newBuilder() to construct.
    private AvatarDataMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AvatarDataMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AvatarDataMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AvatarDataMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              avatarBlock_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AvatarDataMessage> PARSER =
        new com.google.protobuf.AbstractParser<AvatarDataMessage>() {
      public AvatarDataMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AvatarDataMessage(input, extensionRegistry);
      }
    };

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

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

    public static final int AVATARBLOCK_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString avatarBlock_;
    /**
     * <code>required bytes avatarBlock = 2;</code>
     */
    public boolean hasAvatarBlock() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bytes avatarBlock = 2;</code>
     */
    public com.google.protobuf.ByteString getAvatarBlock() {
      return avatarBlock_;
    }

    private void initFields() {
      requestId_ = 0;
      avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarBlock()) {
        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.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, avatarBlock_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, avatarBlock_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage 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(de.pokerth.protocol.ProtoBuf.AvatarDataMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AvatarDataMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AvatarDataMessage)
        de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarDataMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = new de.pokerth.protocol.ProtoBuf.AvatarDataMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.avatarBlock_ = avatarBlock_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarDataMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasAvatarBlock()) {
          setAvatarBlock(other.getAvatarBlock());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

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

      private com.google.protobuf.ByteString avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes avatarBlock = 2;</code>
       */
      public boolean hasAvatarBlock() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bytes avatarBlock = 2;</code>
       */
      public com.google.protobuf.ByteString getAvatarBlock() {
        return avatarBlock_;
      }
      /**
       * <code>required bytes avatarBlock = 2;</code>
       */
      public Builder setAvatarBlock(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        avatarBlock_ = value;
        
        return this;
      }
      /**
       * <code>required bytes avatarBlock = 2;</code>
       */
      public Builder clearAvatarBlock() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarBlock_ = getDefaultInstance().getAvatarBlock();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AvatarDataMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AvatarDataMessage)
  }

  public interface AvatarEndMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AvatarEndMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code AvatarEndMessage}
   */
  public static final class AvatarEndMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AvatarEndMessage)
      AvatarEndMessageOrBuilder {
    // Use AvatarEndMessage.newBuilder() to construct.
    private AvatarEndMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AvatarEndMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AvatarEndMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AvatarEndMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AvatarEndMessage> PARSER =
        new com.google.protobuf.AbstractParser<AvatarEndMessage>() {
      public AvatarEndMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AvatarEndMessage(input, extensionRegistry);
      }
    };

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

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

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

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

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

    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
          .computeUInt32Size(1, requestId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage 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(de.pokerth.protocol.ProtoBuf.AvatarEndMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AvatarEndMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AvatarEndMessage)
        de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarEndMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = new de.pokerth.protocol.ProtoBuf.AvatarEndMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarEndMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

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

      // @@protoc_insertion_point(builder_scope:AvatarEndMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AvatarEndMessage)
  }

  public interface UnknownAvatarMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:UnknownAvatarMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 requestId = 1;</code>
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code UnknownAvatarMessage}
   */
  public static final class UnknownAvatarMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:UnknownAvatarMessage)
      UnknownAvatarMessageOrBuilder {
    // Use UnknownAvatarMessage.newBuilder() to construct.
    private UnknownAvatarMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private UnknownAvatarMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public UnknownAvatarMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private UnknownAvatarMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<UnknownAvatarMessage> PARSER =
        new com.google.protobuf.AbstractParser<UnknownAvatarMessage>() {
      public UnknownAvatarMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UnknownAvatarMessage(input, extensionRegistry);
      }
    };

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

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

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

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

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

    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
          .computeUInt32Size(1, requestId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage 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(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code UnknownAvatarMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:UnknownAvatarMessage)
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage build() {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = new de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

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

      // @@protoc_insertion_point(builder_scope:UnknownAvatarMessage)
    }

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

    // @@protoc_insertion_point(class_scope:UnknownAvatarMessage)
  }

  public interface PlayerListMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayerListMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 playerId = 1;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    int getPlayerId();

    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     */
    boolean hasPlayerListNotification();
    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification();
  }
  /**
   * Protobuf type {@code PlayerListMessage}
   */
  public static final class PlayerListMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayerListMessage)
      PlayerListMessageOrBuilder {
    // Use PlayerListMessage.newBuilder() to construct.
    private PlayerListMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayerListMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayerListMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayerListMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification value = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                playerListNotification_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayerListMessage> PARSER =
        new com.google.protobuf.AbstractParser<PlayerListMessage>() {
      public PlayerListMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerListMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code PlayerListMessage.PlayerListNotification}
     */
    public enum PlayerListNotification
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>playerListNew = 0;</code>
       */
      playerListNew(0, 0),
      /**
       * <code>playerListLeft = 1;</code>
       */
      playerListLeft(1, 1),
      ;

      /**
       * <code>playerListNew = 0;</code>
       */
      public static final int playerListNew_VALUE = 0;
      /**
       * <code>playerListLeft = 1;</code>
       */
      public static final int playerListLeft_VALUE = 1;


      public final int getNumber() { return value; }

      public static PlayerListNotification valueOf(int value) {
        switch (value) {
          case 0: return playerListNew;
          case 1: return playerListLeft;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:PlayerListMessage.PlayerListNotification)
    }

    private int bitField0_;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int PLAYERLISTNOTIFICATION_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification playerListNotification_;
    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     */
    public boolean hasPlayerListNotification() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification() {
      return playerListNotification_;
    }

    private void initFields() {
      playerId_ = 0;
      playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerListNotification()) {
        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.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, playerListNotification_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, playerListNotification_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage 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(de.pokerth.protocol.ProtoBuf.PlayerListMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayerListMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerListMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayerListMessage)
        de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerListMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PlayerListMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayerListMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayerListMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = new de.pokerth.protocol.ProtoBuf.PlayerListMessage(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.playerListNotification_ = playerListNotification_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerListMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPlayerListNotification()) {
          setPlayerListNotification(other.getPlayerListNotification());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       */
      public boolean hasPlayerListNotification() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification() {
        return playerListNotification_;
      }
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       */
      public Builder setPlayerListNotification(de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        playerListNotification_ = value;
        
        return this;
      }
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       */
      public Builder clearPlayerListNotification() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayerListMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PlayerListMessage)
  }

  public interface GameListNewMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListNewMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    boolean hasGameMode();
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode();

    /**
     * <code>required bool isPrivate = 3;</code>
     */
    boolean hasIsPrivate();
    /**
     * <code>required bool isPrivate = 3;</code>
     */
    boolean getIsPrivate();

    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getPlayerIdsList();
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     */
    int getPlayerIdsCount();
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     */
    int getPlayerIds(int index);

    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     */
    boolean hasAdminPlayerId();
    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     */
    int getAdminPlayerId();

    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     */
    boolean hasGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();

    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getSpectatorIdsList();
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     */
    int getSpectatorIdsCount();
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     */
    int getSpectatorIds(int index);
  }
  /**
   * Protobuf type {@code GameListNewMessage}
   */
  public static final class GameListNewMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListNewMessage)
      GameListNewMessageOrBuilder {
    // Use GameListNewMessage.newBuilder() to construct.
    private GameListNewMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListNewMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListNewMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListNewMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameMode value = de.pokerth.protocol.ProtoBuf.NetGameMode.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                gameMode_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              isPrivate_ = input.readBool();
              break;
            }
            case 32: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                playerIds_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000008;
              }
              playerIds_.add(input.readUInt32());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                playerIds_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000008;
              }
              while (input.getBytesUntilLimit() > 0) {
                playerIds_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              adminPlayerId_ = input.readUInt32();
              break;
            }
            case 50: {
              de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = gameInfo_.toBuilder();
              }
              gameInfo_ = input.readMessage(de.pokerth.protocol.ProtoBuf.NetGameInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameInfo_);
                gameInfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 56: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                spectatorIds_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000040;
              }
              spectatorIds_.add(input.readUInt32());
              break;
            }
            case 58: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040) && input.getBytesUntilLimit() > 0) {
                spectatorIds_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000040;
              }
              while (input.getBytesUntilLimit() > 0) {
                spectatorIds_.add(input.readUInt32());
              }
              input.popLimit(limit);
              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)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          spectatorIds_ = java.util.Collections.unmodifiableList(spectatorIds_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListNewMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListNewMessage>() {
      public GameListNewMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListNewMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int GAMEMODE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_;
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    public boolean hasGameMode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
      return gameMode_;
    }

    public static final int ISPRIVATE_FIELD_NUMBER = 3;
    private boolean isPrivate_;
    /**
     * <code>required bool isPrivate = 3;</code>
     */
    public boolean hasIsPrivate() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required bool isPrivate = 3;</code>
     */
    public boolean getIsPrivate() {
      return isPrivate_;
    }

    public static final int PLAYERIDS_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Integer> playerIds_;
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getPlayerIdsList() {
      return playerIds_;
    }
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     */
    public int getPlayerIdsCount() {
      return playerIds_.size();
    }
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     */
    public int getPlayerIds(int index) {
      return playerIds_.get(index);
    }
    private int playerIdsMemoizedSerializedSize = -1;

    public static final int ADMINPLAYERID_FIELD_NUMBER = 5;
    private int adminPlayerId_;
    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     */
    public boolean hasAdminPlayerId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     */
    public int getAdminPlayerId() {
      return adminPlayerId_;
    }

    public static final int GAMEINFO_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     */
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_;
    }

    public static final int SPECTATORIDS_FIELD_NUMBER = 7;
    private java.util.List<java.lang.Integer> spectatorIds_;
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getSpectatorIdsList() {
      return spectatorIds_;
    }
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     */
    public int getSpectatorIdsCount() {
      return spectatorIds_.size();
    }
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     */
    public int getSpectatorIds(int index) {
      return spectatorIds_.get(index);
    }
    private int spectatorIdsMemoizedSerializedSize = -1;

    private void initFields() {
      gameId_ = 0;
      gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
      isPrivate_ = false;
      playerIds_ = java.util.Collections.emptyList();
      adminPlayerId_ = 0;
      gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      spectatorIds_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsPrivate()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAdminPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, gameMode_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, isPrivate_);
      }
      if (getPlayerIdsList().size() > 0) {
        output.writeRawVarint32(34);
        output.writeRawVarint32(playerIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < playerIds_.size(); i++) {
        output.writeUInt32NoTag(playerIds_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, adminPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, gameInfo_);
      }
      if (getSpectatorIdsList().size() > 0) {
        output.writeRawVarint32(58);
        output.writeRawVarint32(spectatorIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < spectatorIds_.size(); i++) {
        output.writeUInt32NoTag(spectatorIds_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameMode_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isPrivate_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerIds_.get(i));
        }
        size += dataSize;
        if (!getPlayerIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerIdsMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, adminPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, gameInfo_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < spectatorIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(spectatorIds_.get(i));
        }
        size += dataSize;
        if (!getSpectatorIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        spectatorIdsMemoizedSerializedSize = dataSize;
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage 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(de.pokerth.protocol.ProtoBuf.GameListNewMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListNewMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListNewMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListNewMessage)
        de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListNewMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        bitField0_ = (bitField0_ & ~0x00000002);
        isPrivate_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        adminPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000020);
        spectatorIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GameListNewMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListNewMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListNewMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = new de.pokerth.protocol.ProtoBuf.GameListNewMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gameMode_ = gameMode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.isPrivate_ = isPrivate_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.playerIds_ = playerIds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.adminPlayerId_ = adminPlayerId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.gameInfo_ = gameInfo_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          spectatorIds_ = java.util.Collections.unmodifiableList(spectatorIds_);
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.spectatorIds_ = spectatorIds_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListNewMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasGameMode()) {
          setGameMode(other.getGameMode());
        }
        if (other.hasIsPrivate()) {
          setIsPrivate(other.getIsPrivate());
        }
        if (!other.playerIds_.isEmpty()) {
          if (playerIds_.isEmpty()) {
            playerIds_ = other.playerIds_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensurePlayerIdsIsMutable();
            playerIds_.addAll(other.playerIds_);
          }
          
        }
        if (other.hasAdminPlayerId()) {
          setAdminPlayerId(other.getAdminPlayerId());
        }
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        if (!other.spectatorIds_.isEmpty()) {
          if (spectatorIds_.isEmpty()) {
            spectatorIds_ = other.spectatorIds_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureSpectatorIdsIsMutable();
            spectatorIds_.addAll(other.spectatorIds_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasGameMode()) {
          
          return false;
        }
        if (!hasIsPrivate()) {
          
          return false;
        }
        if (!hasAdminPlayerId()) {
          
          return false;
        }
        if (!hasGameInfo()) {
          
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
        return gameMode_;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public Builder setGameMode(de.pokerth.protocol.ProtoBuf.NetGameMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameMode_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public Builder clearGameMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        
        return this;
      }

      private boolean isPrivate_ ;
      /**
       * <code>required bool isPrivate = 3;</code>
       */
      public boolean hasIsPrivate() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required bool isPrivate = 3;</code>
       */
      public boolean getIsPrivate() {
        return isPrivate_;
      }
      /**
       * <code>required bool isPrivate = 3;</code>
       */
      public Builder setIsPrivate(boolean value) {
        bitField0_ |= 0x00000004;
        isPrivate_ = value;
        
        return this;
      }
      /**
       * <code>required bool isPrivate = 3;</code>
       */
      public Builder clearIsPrivate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isPrivate_ = false;
        
        return this;
      }

      private java.util.List<java.lang.Integer> playerIds_ = java.util.Collections.emptyList();
      private void ensurePlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          playerIds_ = new java.util.ArrayList<java.lang.Integer>(playerIds_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getPlayerIdsList() {
        return java.util.Collections.unmodifiableList(playerIds_);
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public int getPlayerIdsCount() {
        return playerIds_.size();
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public int getPlayerIds(int index) {
        return playerIds_.get(index);
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public Builder setPlayerIds(
          int index, int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public Builder addPlayerIds(int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.add(value);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public Builder addAllPlayerIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerIds_);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       */
      public Builder clearPlayerIds() {
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        
        return this;
      }

      private int adminPlayerId_ ;
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       */
      public boolean hasAdminPlayerId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       */
      public int getAdminPlayerId() {
        return adminPlayerId_;
      }
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       */
      public Builder setAdminPlayerId(int value) {
        bitField0_ |= 0x00000010;
        adminPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       */
      public Builder clearAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        adminPlayerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        return gameInfo_;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameInfo_ = value;

        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        gameInfo_ = builderForValue.build();

        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (((bitField0_ & 0x00000020) == 0x00000020) &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
          gameInfo_ =
            de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
        } else {
          gameInfo_ = value;
        }

        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder clearGameInfo() {
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      private java.util.List<java.lang.Integer> spectatorIds_ = java.util.Collections.emptyList();
      private void ensureSpectatorIdsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          spectatorIds_ = new java.util.ArrayList<java.lang.Integer>(spectatorIds_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getSpectatorIdsList() {
        return java.util.Collections.unmodifiableList(spectatorIds_);
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public int getSpectatorIdsCount() {
        return spectatorIds_.size();
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public int getSpectatorIds(int index) {
        return spectatorIds_.get(index);
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public Builder setSpectatorIds(
          int index, int value) {
        ensureSpectatorIdsIsMutable();
        spectatorIds_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public Builder addSpectatorIds(int value) {
        ensureSpectatorIdsIsMutable();
        spectatorIds_.add(value);
        
        return this;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public Builder addAllSpectatorIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSpectatorIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, spectatorIds_);
        
        return this;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       */
      public Builder clearSpectatorIds() {
        spectatorIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListNewMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListNewMessage)
  }

  public interface GameListUpdateMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListUpdateMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    boolean hasGameMode();
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode();
  }
  /**
   * Protobuf type {@code GameListUpdateMessage}
   */
  public static final class GameListUpdateMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListUpdateMessage)
      GameListUpdateMessageOrBuilder {
    // Use GameListUpdateMessage.newBuilder() to construct.
    private GameListUpdateMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListUpdateMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListUpdateMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListUpdateMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameMode value = de.pokerth.protocol.ProtoBuf.NetGameMode.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                gameMode_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListUpdateMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListUpdateMessage>() {
      public GameListUpdateMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListUpdateMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int GAMEMODE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_;
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    public boolean hasGameMode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
      return gameMode_;
    }

    private void initFields() {
      gameId_ = 0;
      gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameMode()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, gameMode_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameMode_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage 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(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListUpdateMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListUpdateMessage)
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = new de.pokerth.protocol.ProtoBuf.GameListUpdateMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gameMode_ = gameMode_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasGameMode()) {
          setGameMode(other.getGameMode());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
        return gameMode_;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public Builder setGameMode(de.pokerth.protocol.ProtoBuf.NetGameMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameMode_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       */
      public Builder clearGameMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListUpdateMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListUpdateMessage)
  }

  public interface GameListPlayerJoinedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListPlayerJoinedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListPlayerJoinedMessage}
   */
  public static final class GameListPlayerJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListPlayerJoinedMessage)
      GameListPlayerJoinedMessageOrBuilder {
    // Use GameListPlayerJoinedMessage.newBuilder() to construct.
    private GameListPlayerJoinedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListPlayerJoinedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListPlayerJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListPlayerJoinedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListPlayerJoinedMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListPlayerJoinedMessage>() {
      public GameListPlayerJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListPlayerJoinedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage 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(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListPlayerJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListPlayerJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListPlayerJoinedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListPlayerJoinedMessage)
  }

  public interface GameListPlayerLeftMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListPlayerLeftMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListPlayerLeftMessage}
   */
  public static final class GameListPlayerLeftMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListPlayerLeftMessage)
      GameListPlayerLeftMessageOrBuilder {
    // Use GameListPlayerLeftMessage.newBuilder() to construct.
    private GameListPlayerLeftMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListPlayerLeftMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListPlayerLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListPlayerLeftMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListPlayerLeftMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListPlayerLeftMessage>() {
      public GameListPlayerLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListPlayerLeftMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage 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(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListPlayerLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListPlayerLeftMessage)
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListPlayerLeftMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListPlayerLeftMessage)
  }

  public interface GameListSpectatorJoinedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListSpectatorJoinedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListSpectatorJoinedMessage}
   */
  public static final class GameListSpectatorJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListSpectatorJoinedMessage)
      GameListSpectatorJoinedMessageOrBuilder {
    // Use GameListSpectatorJoinedMessage.newBuilder() to construct.
    private GameListSpectatorJoinedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListSpectatorJoinedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListSpectatorJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListSpectatorJoinedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListSpectatorJoinedMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListSpectatorJoinedMessage>() {
      public GameListSpectatorJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListSpectatorJoinedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage 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(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListSpectatorJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListSpectatorJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListSpectatorJoinedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListSpectatorJoinedMessage)
  }

  public interface GameListSpectatorLeftMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListSpectatorLeftMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListSpectatorLeftMessage}
   */
  public static final class GameListSpectatorLeftMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListSpectatorLeftMessage)
      GameListSpectatorLeftMessageOrBuilder {
    // Use GameListSpectatorLeftMessage.newBuilder() to construct.
    private GameListSpectatorLeftMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListSpectatorLeftMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListSpectatorLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListSpectatorLeftMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListSpectatorLeftMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListSpectatorLeftMessage>() {
      public GameListSpectatorLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListSpectatorLeftMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage 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(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListSpectatorLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListSpectatorLeftMessage)
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListSpectatorLeftMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListSpectatorLeftMessage)
  }

  public interface GameListAdminChangedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameListAdminChangedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    boolean hasNewAdminPlayerId();
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    int getNewAdminPlayerId();
  }
  /**
   * Protobuf type {@code GameListAdminChangedMessage}
   */
  public static final class GameListAdminChangedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameListAdminChangedMessage)
      GameListAdminChangedMessageOrBuilder {
    // Use GameListAdminChangedMessage.newBuilder() to construct.
    private GameListAdminChangedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameListAdminChangedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameListAdminChangedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameListAdminChangedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              newAdminPlayerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameListAdminChangedMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameListAdminChangedMessage>() {
      public GameListAdminChangedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameListAdminChangedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int NEWADMINPLAYERID_FIELD_NUMBER = 2;
    private int newAdminPlayerId_;
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    public boolean hasNewAdminPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    public int getNewAdminPlayerId() {
      return newAdminPlayerId_;
    }

    private void initFields() {
      gameId_ = 0;
      newAdminPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNewAdminPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, newAdminPlayerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newAdminPlayerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage 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(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameListAdminChangedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameListAdminChangedMessage)
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = new de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.newAdminPlayerId_ = newAdminPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasNewAdminPlayerId()) {
          setNewAdminPlayerId(other.getNewAdminPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int newAdminPlayerId_ ;
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public boolean hasNewAdminPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public int getNewAdminPlayerId() {
        return newAdminPlayerId_;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public Builder setNewAdminPlayerId(int value) {
        bitField0_ |= 0x00000002;
        newAdminPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public Builder clearNewAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newAdminPlayerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameListAdminChangedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameListAdminChangedMessage)
  }

  public interface PlayerInfoRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayerInfoRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getPlayerIdList();
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     */
    int getPlayerIdCount();
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     */
    int getPlayerId(int index);
  }
  /**
   * Protobuf type {@code PlayerInfoRequestMessage}
   */
  public static final class PlayerInfoRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayerInfoRequestMessage)
      PlayerInfoRequestMessageOrBuilder {
    // Use PlayerInfoRequestMessage.newBuilder() to construct.
    private PlayerInfoRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayerInfoRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayerInfoRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayerInfoRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                playerId_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000001;
              }
              playerId_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                playerId_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                playerId_.add(input.readUInt32());
              }
              input.popLimit(limit);
              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)) {
          playerId_ = java.util.Collections.unmodifiableList(playerId_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayerInfoRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<PlayerInfoRequestMessage>() {
      public PlayerInfoRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerInfoRequestMessage(input, extensionRegistry);
      }
    };

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

    public static final int PLAYERID_FIELD_NUMBER = 1;
    private java.util.List<java.lang.Integer> playerId_;
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getPlayerIdList() {
      return playerId_;
    }
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     */
    public int getPlayerIdCount() {
      return playerId_.size();
    }
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     */
    public int getPlayerId(int index) {
      return playerId_.get(index);
    }
    private int playerIdMemoizedSerializedSize = -1;

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getPlayerIdList().size() > 0) {
        output.writeRawVarint32(10);
        output.writeRawVarint32(playerIdMemoizedSerializedSize);
      }
      for (int i = 0; i < playerId_.size(); i++) {
        output.writeUInt32NoTag(playerId_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < playerId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerId_.get(i));
        }
        size += dataSize;
        if (!getPlayerIdList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerIdMemoizedSerializedSize = dataSize;
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage 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(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayerInfoRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayerInfoRequestMessage)
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = new de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          playerId_ = java.util.Collections.unmodifiableList(playerId_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.playerId_ = playerId_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance()) return this;
        if (!other.playerId_.isEmpty()) {
          if (playerId_.isEmpty()) {
            playerId_ = other.playerId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePlayerIdIsMutable();
            playerId_.addAll(other.playerId_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<java.lang.Integer> playerId_ = java.util.Collections.emptyList();
      private void ensurePlayerIdIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          playerId_ = new java.util.ArrayList<java.lang.Integer>(playerId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getPlayerIdList() {
        return java.util.Collections.unmodifiableList(playerId_);
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public int getPlayerIdCount() {
        return playerId_.size();
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public int getPlayerId(int index) {
        return playerId_.get(index);
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public Builder setPlayerId(
          int index, int value) {
        ensurePlayerIdIsMutable();
        playerId_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public Builder addPlayerId(int value) {
        ensurePlayerIdIsMutable();
        playerId_.add(value);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public Builder addAllPlayerId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerId_);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       */
      public Builder clearPlayerId() {
        playerId_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayerInfoRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PlayerInfoRequestMessage)
  }

  public interface PlayerInfoReplyMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayerInfoReplyMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 playerId = 1;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    int getPlayerId();

    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     */
    boolean hasPlayerInfoData();
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData();
  }
  /**
   * Protobuf type {@code PlayerInfoReplyMessage}
   */
  public static final class PlayerInfoReplyMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayerInfoReplyMessage)
      PlayerInfoReplyMessageOrBuilder {
    // Use PlayerInfoReplyMessage.newBuilder() to construct.
    private PlayerInfoReplyMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayerInfoReplyMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayerInfoReplyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayerInfoReplyMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = playerInfoData_.toBuilder();
              }
              playerInfoData_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playerInfoData_);
                playerInfoData_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayerInfoReplyMessage> PARSER =
        new com.google.protobuf.AbstractParser<PlayerInfoReplyMessage>() {
      public PlayerInfoReplyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerInfoReplyMessage(input, extensionRegistry);
      }
    };

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

    public interface PlayerInfoDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PlayerInfoReplyMessage.PlayerInfoData)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>required string playerName = 1;</code>
       */
      boolean hasPlayerName();
      /**
       * <code>required string playerName = 1;</code>
       */
      java.lang.String getPlayerName();
      /**
       * <code>required string playerName = 1;</code>
       */
      com.google.protobuf.ByteString
          getPlayerNameBytes();

      /**
       * <code>required bool isHuman = 2;</code>
       */
      boolean hasIsHuman();
      /**
       * <code>required bool isHuman = 2;</code>
       */
      boolean getIsHuman();

      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       */
      boolean hasPlayerRights();
      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       */
      de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights();

      /**
       * <code>optional string countryCode = 4;</code>
       */
      boolean hasCountryCode();
      /**
       * <code>optional string countryCode = 4;</code>
       */
      java.lang.String getCountryCode();
      /**
       * <code>optional string countryCode = 4;</code>
       */
      com.google.protobuf.ByteString
          getCountryCodeBytes();

      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       */
      boolean hasAvatarData();
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       */
      de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData();
    }
    /**
     * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData}
     */
    public static final class PlayerInfoData extends
        com.google.protobuf.GeneratedMessageLite implements
        // @@protoc_insertion_point(message_implements:PlayerInfoReplyMessage.PlayerInfoData)
        PlayerInfoDataOrBuilder {
      // Use PlayerInfoData.newBuilder() to construct.
      private PlayerInfoData(com.google.protobuf.GeneratedMessageLite.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlayerInfoData(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

      public PlayerInfoData getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.ByteString unknownFields;
      private PlayerInfoData(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.ByteString.Output unknownFieldsOutput =
            com.google.protobuf.ByteString.newOutput();
        com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
            com.google.protobuf.CodedOutputStream.newInstance(
                unknownFieldsOutput);
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                playerName_ = bs;
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                isHuman_ = input.readBool();
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights value = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.valueOf(rawValue);
                if (value == null) {
                  unknownFieldsCodedOutput.writeRawVarint32(tag);
                  unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                } else {
                  bitField0_ |= 0x00000004;
                  playerRights_ = value;
                }
                break;
              }
              case 34: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                countryCode_ = bs;
                break;
              }
              case 42: {
                de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = avatarData_.toBuilder();
                }
                avatarData_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(avatarData_);
                  avatarData_ = 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 {
          try {
            unknownFieldsCodedOutput.flush();
          } catch (java.io.IOException e) {
          // Should not happen
          } finally {
            unknownFields = unknownFieldsOutput.toByteString();
          }
          makeExtensionsImmutable();
        }
      }
      public static com.google.protobuf.Parser<PlayerInfoData> PARSER =
          new com.google.protobuf.AbstractParser<PlayerInfoData>() {
        public PlayerInfoData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlayerInfoData(input, extensionRegistry);
        }
      };

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

      public interface AvatarDataOrBuilder extends
          // @@protoc_insertion_point(interface_extends:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
          com.google.protobuf.MessageLiteOrBuilder {

        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         */
        boolean hasAvatarType();
        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         */
        de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType();

        /**
         * <code>required bytes avatarHash = 2;</code>
         */
        boolean hasAvatarHash();
        /**
         * <code>required bytes avatarHash = 2;</code>
         */
        com.google.protobuf.ByteString getAvatarHash();
      }
      /**
       * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData.AvatarData}
       */
      public static final class AvatarData extends
          com.google.protobuf.GeneratedMessageLite implements
          // @@protoc_insertion_point(message_implements:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
          AvatarDataOrBuilder {
        // Use AvatarData.newBuilder() to construct.
        private AvatarData(com.google.protobuf.GeneratedMessageLite.Builder builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private AvatarData(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

        public AvatarData getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.ByteString unknownFields;
        private AvatarData(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.ByteString.Output unknownFieldsOutput =
              com.google.protobuf.ByteString.newOutput();
          com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
              com.google.protobuf.CodedOutputStream.newInstance(
                  unknownFieldsOutput);
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  int rawValue = input.readEnum();
                  de.pokerth.protocol.ProtoBuf.NetAvatarType value = de.pokerth.protocol.ProtoBuf.NetAvatarType.valueOf(rawValue);
                  if (value == null) {
                    unknownFieldsCodedOutput.writeRawVarint32(tag);
                    unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                  } else {
                    bitField0_ |= 0x00000001;
                    avatarType_ = value;
                  }
                  break;
                }
                case 18: {
                  bitField0_ |= 0x00000002;
                  avatarHash_ = 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 {
            try {
              unknownFieldsCodedOutput.flush();
            } catch (java.io.IOException e) {
            // Should not happen
            } finally {
              unknownFields = unknownFieldsOutput.toByteString();
            }
            makeExtensionsImmutable();
          }
        }
        public static com.google.protobuf.Parser<AvatarData> PARSER =
            new com.google.protobuf.AbstractParser<AvatarData>() {
          public AvatarData parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AvatarData(input, extensionRegistry);
          }
        };

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

        private int bitField0_;
        public static final int AVATARTYPE_FIELD_NUMBER = 1;
        private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_;
        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         */
        public boolean hasAvatarType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         */
        public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
          return avatarType_;
        }

        public static final int AVATARHASH_FIELD_NUMBER = 2;
        private com.google.protobuf.ByteString avatarHash_;
        /**
         * <code>required bytes avatarHash = 2;</code>
         */
        public boolean hasAvatarHash() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required bytes avatarHash = 2;</code>
         */
        public com.google.protobuf.ByteString getAvatarHash() {
          return avatarHash_;
        }

        private void initFields() {
          avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
          avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          if (!hasAvatarType()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasAvatarHash()) {
            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, avatarType_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, avatarHash_);
          }
          output.writeRawBytes(unknownFields);
        }

        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, avatarType_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, avatarHash_);
          }
          size += unknownFields.size();
          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 de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData 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(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        /**
         * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData.AvatarData}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData, Builder>
            implements
            // @@protoc_insertion_point(builder_implements:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder {
          // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
            bitField0_ = (bitField0_ & ~0x00000001);
            avatarHash_ = com.google.protobuf.ByteString.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

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

          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getDefaultInstanceForType() {
            return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
          }

          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData build() {
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData buildPartial() {
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.avatarType_ = avatarType_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.avatarHash_ = avatarHash_;
            result.bitField0_ = to_bitField0_;
            return result;
          }

          public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData other) {
            if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance()) return this;
            if (other.hasAvatarType()) {
              setAvatarType(other.getAvatarType());
            }
            if (other.hasAvatarHash()) {
              setAvatarHash(other.getAvatarHash());
            }
            setUnknownFields(
                getUnknownFields().concat(other.unknownFields));
            return this;
          }

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

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

          private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           */
          public boolean hasAvatarType() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           */
          public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
            return avatarType_;
          }
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           */
          public Builder setAvatarType(de.pokerth.protocol.ProtoBuf.NetAvatarType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            avatarType_ = value;
            
            return this;
          }
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           */
          public Builder clearAvatarType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
            
            return this;
          }

          private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
          /**
           * <code>required bytes avatarHash = 2;</code>
           */
          public boolean hasAvatarHash() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <code>required bytes avatarHash = 2;</code>
           */
          public com.google.protobuf.ByteString getAvatarHash() {
            return avatarHash_;
          }
          /**
           * <code>required bytes avatarHash = 2;</code>
           */
          public Builder setAvatarHash(com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
            avatarHash_ = value;
            
            return this;
          }
          /**
           * <code>required bytes avatarHash = 2;</code>
           */
          public Builder clearAvatarHash() {
            bitField0_ = (bitField0_ & ~0x00000002);
            avatarHash_ = getDefaultInstance().getAvatarHash();
            
            return this;
          }

          // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
        }

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

        // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
      }

      private int bitField0_;
      public static final int PLAYERNAME_FIELD_NUMBER = 1;
      private java.lang.Object playerName_;
      /**
       * <code>required string playerName = 1;</code>
       */
      public boolean hasPlayerName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string playerName = 1;</code>
       */
      public java.lang.String getPlayerName() {
        java.lang.Object ref = playerName_;
        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()) {
            playerName_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string playerName = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPlayerNameBytes() {
        java.lang.Object ref = playerName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          playerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int ISHUMAN_FIELD_NUMBER = 2;
      private boolean isHuman_;
      /**
       * <code>required bool isHuman = 2;</code>
       */
      public boolean hasIsHuman() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bool isHuman = 2;</code>
       */
      public boolean getIsHuman() {
        return isHuman_;
      }

      public static final int PLAYERRIGHTS_FIELD_NUMBER = 3;
      private de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights playerRights_;
      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       */
      public boolean hasPlayerRights() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights() {
        return playerRights_;
      }

      public static final int COUNTRYCODE_FIELD_NUMBER = 4;
      private java.lang.Object countryCode_;
      /**
       * <code>optional string countryCode = 4;</code>
       */
      public boolean hasCountryCode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string countryCode = 4;</code>
       */
      public java.lang.String getCountryCode() {
        java.lang.Object ref = countryCode_;
        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()) {
            countryCode_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string countryCode = 4;</code>
       */
      public com.google.protobuf.ByteString
          getCountryCodeBytes() {
        java.lang.Object ref = countryCode_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          countryCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int AVATARDATA_FIELD_NUMBER = 5;
      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData_;
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       */
      public boolean hasAvatarData() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData() {
        return avatarData_;
      }

      private void initFields() {
        playerName_ = "";
        isHuman_ = false;
        playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
        countryCode_ = "";
        avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasPlayerName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasIsHuman()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPlayerRights()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasAvatarData()) {
          if (!getAvatarData().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getPlayerNameBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBool(2, isHuman_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeEnum(3, playerRights_.getNumber());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getCountryCodeBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, avatarData_);
        }
        output.writeRawBytes(unknownFields);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getPlayerNameBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, isHuman_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, playerRights_.getNumber());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getCountryCodeBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, avatarData_);
        }
        size += unknownFields.size();
        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 de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData 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(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      /**
       * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData, Builder>
          implements
          // @@protoc_insertion_point(builder_implements:PlayerInfoReplyMessage.PlayerInfoData)
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          playerName_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          isHuman_ = false;
          bitField0_ = (bitField0_ & ~0x00000002);
          playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
          bitField0_ = (bitField0_ & ~0x00000004);
          countryCode_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

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

        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
        }

        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData build() {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData buildPartial() {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerName_ = playerName_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.isHuman_ = isHuman_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.playerRights_ = playerRights_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.countryCode_ = countryCode_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.avatarData_ = avatarData_;
          result.bitField0_ = to_bitField0_;
          return result;
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData other) {
          if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance()) return this;
          if (other.hasPlayerName()) {
            bitField0_ |= 0x00000001;
            playerName_ = other.playerName_;
            
          }
          if (other.hasIsHuman()) {
            setIsHuman(other.getIsHuman());
          }
          if (other.hasPlayerRights()) {
            setPlayerRights(other.getPlayerRights());
          }
          if (other.hasCountryCode()) {
            bitField0_ |= 0x00000008;
            countryCode_ = other.countryCode_;
            
          }
          if (other.hasAvatarData()) {
            mergeAvatarData(other.getAvatarData());
          }
          setUnknownFields(
              getUnknownFields().concat(other.unknownFields));
          return this;
        }

        public final boolean isInitialized() {
          if (!hasPlayerName()) {
            
            return false;
          }
          if (!hasIsHuman()) {
            
            return false;
          }
          if (!hasPlayerRights()) {
            
            return false;
          }
          if (hasAvatarData()) {
            if (!getAvatarData().isInitialized()) {
              
              return false;
            }
          }
          return true;
        }

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

        private java.lang.Object playerName_ = "";
        /**
         * <code>required string playerName = 1;</code>
         */
        public boolean hasPlayerName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required string playerName = 1;</code>
         */
        public java.lang.String getPlayerName() {
          java.lang.Object ref = playerName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              playerName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string playerName = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPlayerNameBytes() {
          java.lang.Object ref = playerName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            playerName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string playerName = 1;</code>
         */
        public Builder setPlayerName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          playerName_ = value;
          
          return this;
        }
        /**
         * <code>required string playerName = 1;</code>
         */
        public Builder clearPlayerName() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerName_ = getDefaultInstance().getPlayerName();
          
          return this;
        }
        /**
         * <code>required string playerName = 1;</code>
         */
        public Builder setPlayerNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          playerName_ = value;
          
          return this;
        }

        private boolean isHuman_ ;
        /**
         * <code>required bool isHuman = 2;</code>
         */
        public boolean hasIsHuman() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required bool isHuman = 2;</code>
         */
        public boolean getIsHuman() {
          return isHuman_;
        }
        /**
         * <code>required bool isHuman = 2;</code>
         */
        public Builder setIsHuman(boolean value) {
          bitField0_ |= 0x00000002;
          isHuman_ = value;
          
          return this;
        }
        /**
         * <code>required bool isHuman = 2;</code>
         */
        public Builder clearIsHuman() {
          bitField0_ = (bitField0_ & ~0x00000002);
          isHuman_ = false;
          
          return this;
        }

        private de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         */
        public boolean hasPlayerRights() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         */
        public de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights() {
          return playerRights_;
        }
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         */
        public Builder setPlayerRights(de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          playerRights_ = value;
          
          return this;
        }
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         */
        public Builder clearPlayerRights() {
          bitField0_ = (bitField0_ & ~0x00000004);
          playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
          
          return this;
        }

        private java.lang.Object countryCode_ = "";
        /**
         * <code>optional string countryCode = 4;</code>
         */
        public boolean hasCountryCode() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional string countryCode = 4;</code>
         */
        public java.lang.String getCountryCode() {
          java.lang.Object ref = countryCode_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              countryCode_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string countryCode = 4;</code>
         */
        public com.google.protobuf.ByteString
            getCountryCodeBytes() {
          java.lang.Object ref = countryCode_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            countryCode_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string countryCode = 4;</code>
         */
        public Builder setCountryCode(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          countryCode_ = value;
          
          return this;
        }
        /**
         * <code>optional string countryCode = 4;</code>
         */
        public Builder clearCountryCode() {
          bitField0_ = (bitField0_ & ~0x00000008);
          countryCode_ = getDefaultInstance().getCountryCode();
          
          return this;
        }
        /**
         * <code>optional string countryCode = 4;</code>
         */
        public Builder setCountryCodeBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          countryCode_ = value;
          
          return this;
        }

        private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public boolean hasAvatarData() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData() {
          return avatarData_;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder setAvatarData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData value) {
          if (value == null) {
            throw new NullPointerException();
          }
          avatarData_ = value;

          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder setAvatarData(
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder builderForValue) {
          avatarData_ = builderForValue.build();

          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder mergeAvatarData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData value) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              avatarData_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance()) {
            avatarData_ =
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.newBuilder(avatarData_).mergeFrom(value).buildPartial();
          } else {
            avatarData_ = value;
          }

          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder clearAvatarData() {
          avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();

          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage.PlayerInfoData)
      }

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

      // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage.PlayerInfoData)
    }

    private int bitField0_;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 playerId = 1;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int PLAYERINFODATA_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData playerInfoData_;
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     */
    public boolean hasPlayerInfoData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData() {
      return playerInfoData_;
    }

    private void initFields() {
      playerId_ = 0;
      playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPlayerInfoData()) {
        if (!getPlayerInfoData().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.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, playerInfoData_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerInfoData_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage 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(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayerInfoReplyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayerInfoReplyMessage)
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage(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.playerInfoData_ = playerInfoData_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPlayerInfoData()) {
          mergePlayerInfoData(other.getPlayerInfoData());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        if (hasPlayerInfoData()) {
          if (!getPlayerInfoData().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public boolean hasPlayerInfoData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData() {
        return playerInfoData_;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder setPlayerInfoData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerInfoData_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder setPlayerInfoData(
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder builderForValue) {
        playerInfoData_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder mergePlayerInfoData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            playerInfoData_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance()) {
          playerInfoData_ =
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.newBuilder(playerInfoData_).mergeFrom(value).buildPartial();
        } else {
          playerInfoData_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder clearPlayerInfoData() {
        playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage)
  }

  public interface SubscriptionRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SubscriptionRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     */
    boolean hasSubscriptionAction();
    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction();
  }
  /**
   * Protobuf type {@code SubscriptionRequestMessage}
   *
   * <pre>
   * The following request will not be confirmed by the server. It is used,
   * optionally, to reduce server traffic. The server might ignore it.
   * </pre>
   */
  public static final class SubscriptionRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:SubscriptionRequestMessage)
      SubscriptionRequestMessageOrBuilder {
    // Use SubscriptionRequestMessage.newBuilder() to construct.
    private SubscriptionRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SubscriptionRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public SubscriptionRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private SubscriptionRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction value = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000001;
                subscriptionAction_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<SubscriptionRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<SubscriptionRequestMessage>() {
      public SubscriptionRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SubscriptionRequestMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code SubscriptionRequestMessage.SubscriptionAction}
     */
    public enum SubscriptionAction
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>unsubscribeGameList = 1;</code>
       */
      unsubscribeGameList(0, 1),
      /**
       * <code>resubscribeGameList = 2;</code>
       */
      resubscribeGameList(1, 2),
      ;

      /**
       * <code>unsubscribeGameList = 1;</code>
       */
      public static final int unsubscribeGameList_VALUE = 1;
      /**
       * <code>resubscribeGameList = 2;</code>
       */
      public static final int resubscribeGameList_VALUE = 2;


      public final int getNumber() { return value; }

      public static SubscriptionAction valueOf(int value) {
        switch (value) {
          case 1: return unsubscribeGameList;
          case 2: return resubscribeGameList;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:SubscriptionRequestMessage.SubscriptionAction)
    }

    private int bitField0_;
    public static final int SUBSCRIPTIONACTION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction subscriptionAction_;
    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     */
    public boolean hasSubscriptionAction() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction() {
      return subscriptionAction_;
    }

    private void initFields() {
      subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasSubscriptionAction()) {
        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, subscriptionAction_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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, subscriptionAction_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage 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(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code SubscriptionRequestMessage}
     *
     * <pre>
     * The following request will not be confirmed by the server. It is used,
     * optionally, to reduce server traffic. The server might ignore it.
     * </pre>
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:SubscriptionRequestMessage)
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = new de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.subscriptionAction_ = subscriptionAction_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance()) return this;
        if (other.hasSubscriptionAction()) {
          setSubscriptionAction(other.getSubscriptionAction());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       */
      public boolean hasSubscriptionAction() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction() {
        return subscriptionAction_;
      }
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       */
      public Builder setSubscriptionAction(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        subscriptionAction_ = value;
        
        return this;
      }
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       */
      public Builder clearSubscriptionAction() {
        bitField0_ = (bitField0_ & ~0x00000001);
        subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:SubscriptionRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:SubscriptionRequestMessage)
  }

  public interface JoinExistingGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:JoinExistingGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>optional string password = 2;</code>
     */
    boolean hasPassword();
    /**
     * <code>optional string password = 2;</code>
     */
    java.lang.String getPassword();
    /**
     * <code>optional string password = 2;</code>
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     */
    boolean hasAutoLeave();
    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     */
    boolean getAutoLeave();

    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     */
    boolean hasSpectateOnly();
    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     */
    boolean getSpectateOnly();
  }
  /**
   * Protobuf type {@code JoinExistingGameMessage}
   */
  public static final class JoinExistingGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:JoinExistingGameMessage)
      JoinExistingGameMessageOrBuilder {
    // Use JoinExistingGameMessage.newBuilder() to construct.
    private JoinExistingGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private JoinExistingGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public JoinExistingGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private JoinExistingGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              password_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              autoLeave_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              spectateOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<JoinExistingGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<JoinExistingGameMessage>() {
      public JoinExistingGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new JoinExistingGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    private java.lang.Object password_;
    /**
     * <code>optional string password = 2;</code>
     */
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string password = 2;</code>
     */
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      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()) {
          password_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string password = 2;</code>
     */
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTOLEAVE_FIELD_NUMBER = 3;
    private boolean autoLeave_;
    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     */
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     */
    public boolean getAutoLeave() {
      return autoLeave_;
    }

    public static final int SPECTATEONLY_FIELD_NUMBER = 4;
    private boolean spectateOnly_;
    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     */
    public boolean hasSpectateOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     */
    public boolean getSpectateOnly() {
      return spectateOnly_;
    }

    private void initFields() {
      gameId_ = 0;
      password_ = "";
      autoLeave_ = false;
      spectateOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, autoLeave_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, spectateOnly_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoLeave_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, spectateOnly_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage 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(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code JoinExistingGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:JoinExistingGameMessage)
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        password_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        spectateOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = new de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.password_ = password_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.autoLeave_ = autoLeave_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.spectateOnly_ = spectateOnly_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPassword()) {
          bitField0_ |= 0x00000002;
          password_ = other.password_;
          
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        if (other.hasSpectateOnly()) {
          setSpectateOnly(other.getSpectateOnly());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <code>optional string password = 2;</code>
       */
      public boolean hasPassword() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            password_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        password_ = value;
        
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public Builder clearPassword() {
        bitField0_ = (bitField0_ & ~0x00000002);
        password_ = getDefaultInstance().getPassword();
        
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        password_ = value;
        
        return this;
      }

      private boolean autoLeave_ ;
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       */
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       */
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       */
      public Builder setAutoLeave(boolean value) {
        bitField0_ |= 0x00000004;
        autoLeave_ = value;
        
        return this;
      }
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       */
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoLeave_ = false;
        
        return this;
      }

      private boolean spectateOnly_ ;
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       */
      public boolean hasSpectateOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       */
      public boolean getSpectateOnly() {
        return spectateOnly_;
      }
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       */
      public Builder setSpectateOnly(boolean value) {
        bitField0_ |= 0x00000008;
        spectateOnly_ = value;
        
        return this;
      }
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       */
      public Builder clearSpectateOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        spectateOnly_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:JoinExistingGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:JoinExistingGameMessage)
  }

  public interface JoinNewGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:JoinNewGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     */
    boolean hasGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();

    /**
     * <code>optional string password = 2;</code>
     */
    boolean hasPassword();
    /**
     * <code>optional string password = 2;</code>
     */
    java.lang.String getPassword();
    /**
     * <code>optional string password = 2;</code>
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <code>optional bool autoLeave = 3;</code>
     */
    boolean hasAutoLeave();
    /**
     * <code>optional bool autoLeave = 3;</code>
     */
    boolean getAutoLeave();
  }
  /**
   * Protobuf type {@code JoinNewGameMessage}
   */
  public static final class JoinNewGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:JoinNewGameMessage)
      JoinNewGameMessageOrBuilder {
    // Use JoinNewGameMessage.newBuilder() to construct.
    private JoinNewGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private JoinNewGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public JoinNewGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private JoinNewGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = gameInfo_.toBuilder();
              }
              gameInfo_ = input.readMessage(de.pokerth.protocol.ProtoBuf.NetGameInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameInfo_);
                gameInfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              password_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              autoLeave_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<JoinNewGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<JoinNewGameMessage>() {
      public JoinNewGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new JoinNewGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEINFO_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     */
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_;
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    private java.lang.Object password_;
    /**
     * <code>optional string password = 2;</code>
     */
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string password = 2;</code>
     */
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      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()) {
          password_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string password = 2;</code>
     */
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTOLEAVE_FIELD_NUMBER = 3;
    private boolean autoLeave_;
    /**
     * <code>optional bool autoLeave = 3;</code>
     */
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bool autoLeave = 3;</code>
     */
    public boolean getAutoLeave() {
      return autoLeave_;
    }

    private void initFields() {
      gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      password_ = "";
      autoLeave_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().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, gameInfo_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, autoLeave_);
      }
      output.writeRawBytes(unknownFields);
    }

    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, gameInfo_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoLeave_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage 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(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code JoinNewGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:JoinNewGameMessage)
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        password_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = new de.pokerth.protocol.ProtoBuf.JoinNewGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameInfo_ = gameInfo_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.password_ = password_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.autoLeave_ = autoLeave_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance()) return this;
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        if (other.hasPassword()) {
          bitField0_ |= 0x00000002;
          password_ = other.password_;
          
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameInfo()) {
          
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        return gameInfo_;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameInfo_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        gameInfo_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
          gameInfo_ =
            de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
        } else {
          gameInfo_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder clearGameInfo() {
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <code>optional string password = 2;</code>
       */
      public boolean hasPassword() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            password_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        password_ = value;
        
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public Builder clearPassword() {
        bitField0_ = (bitField0_ & ~0x00000002);
        password_ = getDefaultInstance().getPassword();
        
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        password_ = value;
        
        return this;
      }

      private boolean autoLeave_ ;
      /**
       * <code>optional bool autoLeave = 3;</code>
       */
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool autoLeave = 3;</code>
       */
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      /**
       * <code>optional bool autoLeave = 3;</code>
       */
      public Builder setAutoLeave(boolean value) {
        bitField0_ |= 0x00000004;
        autoLeave_ = value;
        
        return this;
      }
      /**
       * <code>optional bool autoLeave = 3;</code>
       */
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoLeave_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:JoinNewGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:JoinNewGameMessage)
  }

  public interface RejoinExistingGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:RejoinExistingGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>optional bool autoLeave = 2;</code>
     */
    boolean hasAutoLeave();
    /**
     * <code>optional bool autoLeave = 2;</code>
     */
    boolean getAutoLeave();
  }
  /**
   * Protobuf type {@code RejoinExistingGameMessage}
   */
  public static final class RejoinExistingGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:RejoinExistingGameMessage)
      RejoinExistingGameMessageOrBuilder {
    // Use RejoinExistingGameMessage.newBuilder() to construct.
    private RejoinExistingGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RejoinExistingGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public RejoinExistingGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private RejoinExistingGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              autoLeave_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<RejoinExistingGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<RejoinExistingGameMessage>() {
      public RejoinExistingGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RejoinExistingGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int AUTOLEAVE_FIELD_NUMBER = 2;
    private boolean autoLeave_;
    /**
     * <code>optional bool autoLeave = 2;</code>
     */
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool autoLeave = 2;</code>
     */
    public boolean getAutoLeave() {
      return autoLeave_;
    }

    private void initFields() {
      gameId_ = 0;
      autoLeave_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, autoLeave_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, autoLeave_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage 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(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code RejoinExistingGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:RejoinExistingGameMessage)
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        autoLeave_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage build() {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = new de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.autoLeave_ = autoLeave_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private boolean autoLeave_ ;
      /**
       * <code>optional bool autoLeave = 2;</code>
       */
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool autoLeave = 2;</code>
       */
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      /**
       * <code>optional bool autoLeave = 2;</code>
       */
      public Builder setAutoLeave(boolean value) {
        bitField0_ |= 0x00000002;
        autoLeave_ = value;
        
        return this;
      }
      /**
       * <code>optional bool autoLeave = 2;</code>
       */
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:RejoinExistingGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:RejoinExistingGameMessage)
  }

  public interface JoinGameAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:JoinGameAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     */
    boolean hasAreYouGameAdmin();
    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     */
    boolean getAreYouGameAdmin();

    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     */
    boolean hasGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();

    /**
     * <code>optional bool spectateOnly = 4;</code>
     */
    boolean hasSpectateOnly();
    /**
     * <code>optional bool spectateOnly = 4;</code>
     */
    boolean getSpectateOnly();
  }
  /**
   * Protobuf type {@code JoinGameAckMessage}
   */
  public static final class JoinGameAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:JoinGameAckMessage)
      JoinGameAckMessageOrBuilder {
    // Use JoinGameAckMessage.newBuilder() to construct.
    private JoinGameAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private JoinGameAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public JoinGameAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private JoinGameAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              areYouGameAdmin_ = input.readBool();
              break;
            }
            case 26: {
              de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = gameInfo_.toBuilder();
              }
              gameInfo_ = input.readMessage(de.pokerth.protocol.ProtoBuf.NetGameInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameInfo_);
                gameInfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              spectateOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<JoinGameAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<JoinGameAckMessage>() {
      public JoinGameAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new JoinGameAckMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int AREYOUGAMEADMIN_FIELD_NUMBER = 2;
    private boolean areYouGameAdmin_;
    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     */
    public boolean hasAreYouGameAdmin() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     */
    public boolean getAreYouGameAdmin() {
      return areYouGameAdmin_;
    }

    public static final int GAMEINFO_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     */
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_;
    }

    public static final int SPECTATEONLY_FIELD_NUMBER = 4;
    private boolean spectateOnly_;
    /**
     * <code>optional bool spectateOnly = 4;</code>
     */
    public boolean hasSpectateOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional bool spectateOnly = 4;</code>
     */
    public boolean getSpectateOnly() {
      return spectateOnly_;
    }

    private void initFields() {
      gameId_ = 0;
      areYouGameAdmin_ = false;
      gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      spectateOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAreYouGameAdmin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, areYouGameAdmin_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, gameInfo_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, spectateOnly_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, areYouGameAdmin_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, gameInfo_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, spectateOnly_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage 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(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code JoinGameAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:JoinGameAckMessage)
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        areYouGameAdmin_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        spectateOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = new de.pokerth.protocol.ProtoBuf.JoinGameAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.areYouGameAdmin_ = areYouGameAdmin_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameInfo_ = gameInfo_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.spectateOnly_ = spectateOnly_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasAreYouGameAdmin()) {
          setAreYouGameAdmin(other.getAreYouGameAdmin());
        }
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        if (other.hasSpectateOnly()) {
          setSpectateOnly(other.getSpectateOnly());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasAreYouGameAdmin()) {
          
          return false;
        }
        if (!hasGameInfo()) {
          
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private boolean areYouGameAdmin_ ;
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       */
      public boolean hasAreYouGameAdmin() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       */
      public boolean getAreYouGameAdmin() {
        return areYouGameAdmin_;
      }
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       */
      public Builder setAreYouGameAdmin(boolean value) {
        bitField0_ |= 0x00000002;
        areYouGameAdmin_ = value;
        
        return this;
      }
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       */
      public Builder clearAreYouGameAdmin() {
        bitField0_ = (bitField0_ & ~0x00000002);
        areYouGameAdmin_ = false;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        return gameInfo_;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameInfo_ = value;

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        gameInfo_ = builderForValue.build();

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
          gameInfo_ =
            de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
        } else {
          gameInfo_ = value;
        }

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder clearGameInfo() {
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      private boolean spectateOnly_ ;
      /**
       * <code>optional bool spectateOnly = 4;</code>
       */
      public boolean hasSpectateOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional bool spectateOnly = 4;</code>
       */
      public boolean getSpectateOnly() {
        return spectateOnly_;
      }
      /**
       * <code>optional bool spectateOnly = 4;</code>
       */
      public Builder setSpectateOnly(boolean value) {
        bitField0_ |= 0x00000008;
        spectateOnly_ = value;
        
        return this;
      }
      /**
       * <code>optional bool spectateOnly = 4;</code>
       */
      public Builder clearSpectateOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        spectateOnly_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:JoinGameAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:JoinGameAckMessage)
  }

  public interface JoinGameFailedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:JoinGameFailedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     */
    boolean hasJoinGameFailureReason();
    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason();
  }
  /**
   * Protobuf type {@code JoinGameFailedMessage}
   */
  public static final class JoinGameFailedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:JoinGameFailedMessage)
      JoinGameFailedMessageOrBuilder {
    // Use JoinGameFailedMessage.newBuilder() to construct.
    private JoinGameFailedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private JoinGameFailedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public JoinGameFailedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private JoinGameFailedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason value = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                joinGameFailureReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<JoinGameFailedMessage> PARSER =
        new com.google.protobuf.AbstractParser<JoinGameFailedMessage>() {
      public JoinGameFailedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new JoinGameFailedMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code JoinGameFailedMessage.JoinGameFailureReason}
     */
    public enum JoinGameFailureReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>invalidGame = 1;</code>
       */
      invalidGame(0, 1),
      /**
       * <code>gameIsFull = 2;</code>
       */
      gameIsFull(1, 2),
      /**
       * <code>gameIsRunning = 3;</code>
       */
      gameIsRunning(2, 3),
      /**
       * <code>invalidPassword = 4;</code>
       */
      invalidPassword(3, 4),
      /**
       * <code>notAllowedAsGuest = 5;</code>
       */
      notAllowedAsGuest(4, 5),
      /**
       * <code>notInvited = 6;</code>
       */
      notInvited(5, 6),
      /**
       * <code>gameNameInUse = 7;</code>
       */
      gameNameInUse(6, 7),
      /**
       * <code>badGameName = 8;</code>
       */
      badGameName(7, 8),
      /**
       * <code>invalidSettings = 9;</code>
       */
      invalidSettings(8, 9),
      /**
       * <code>ipAddressBlocked = 10;</code>
       */
      ipAddressBlocked(9, 10),
      /**
       * <code>rejoinFailed = 11;</code>
       */
      rejoinFailed(10, 11),
      /**
       * <code>noSpectatorsAllowed = 12;</code>
       */
      noSpectatorsAllowed(11, 12),
      ;

      /**
       * <code>invalidGame = 1;</code>
       */
      public static final int invalidGame_VALUE = 1;
      /**
       * <code>gameIsFull = 2;</code>
       */
      public static final int gameIsFull_VALUE = 2;
      /**
       * <code>gameIsRunning = 3;</code>
       */
      public static final int gameIsRunning_VALUE = 3;
      /**
       * <code>invalidPassword = 4;</code>
       */
      public static final int invalidPassword_VALUE = 4;
      /**
       * <code>notAllowedAsGuest = 5;</code>
       */
      public static final int notAllowedAsGuest_VALUE = 5;
      /**
       * <code>notInvited = 6;</code>
       */
      public static final int notInvited_VALUE = 6;
      /**
       * <code>gameNameInUse = 7;</code>
       */
      public static final int gameNameInUse_VALUE = 7;
      /**
       * <code>badGameName = 8;</code>
       */
      public static final int badGameName_VALUE = 8;
      /**
       * <code>invalidSettings = 9;</code>
       */
      public static final int invalidSettings_VALUE = 9;
      /**
       * <code>ipAddressBlocked = 10;</code>
       */
      public static final int ipAddressBlocked_VALUE = 10;
      /**
       * <code>rejoinFailed = 11;</code>
       */
      public static final int rejoinFailed_VALUE = 11;
      /**
       * <code>noSpectatorsAllowed = 12;</code>
       */
      public static final int noSpectatorsAllowed_VALUE = 12;


      public final int getNumber() { return value; }

      public static JoinGameFailureReason valueOf(int value) {
        switch (value) {
          case 1: return invalidGame;
          case 2: return gameIsFull;
          case 3: return gameIsRunning;
          case 4: return invalidPassword;
          case 5: return notAllowedAsGuest;
          case 6: return notInvited;
          case 7: return gameNameInUse;
          case 8: return badGameName;
          case 9: return invalidSettings;
          case 10: return ipAddressBlocked;
          case 11: return rejoinFailed;
          case 12: return noSpectatorsAllowed;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:JoinGameFailedMessage.JoinGameFailureReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int JOINGAMEFAILUREREASON_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason_;
    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     */
    public boolean hasJoinGameFailureReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason() {
      return joinGameFailureReason_;
    }

    private void initFields() {
      gameId_ = 0;
      joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasJoinGameFailureReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, joinGameFailureReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, joinGameFailureReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage 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(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code JoinGameFailedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:JoinGameFailedMessage)
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = new de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.joinGameFailureReason_ = joinGameFailureReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasJoinGameFailureReason()) {
          setJoinGameFailureReason(other.getJoinGameFailureReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       */
      public boolean hasJoinGameFailureReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason() {
        return joinGameFailureReason_;
      }
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       */
      public Builder setJoinGameFailureReason(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        joinGameFailureReason_ = value;
        
        return this;
      }
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       */
      public Builder clearJoinGameFailureReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:JoinGameFailedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:JoinGameFailedMessage)
  }

  public interface GamePlayerJoinedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GamePlayerJoinedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required bool isGameAdmin = 3;</code>
     */
    boolean hasIsGameAdmin();
    /**
     * <code>required bool isGameAdmin = 3;</code>
     */
    boolean getIsGameAdmin();
  }
  /**
   * Protobuf type {@code GamePlayerJoinedMessage}
   */
  public static final class GamePlayerJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GamePlayerJoinedMessage)
      GamePlayerJoinedMessageOrBuilder {
    // Use GamePlayerJoinedMessage.newBuilder() to construct.
    private GamePlayerJoinedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GamePlayerJoinedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GamePlayerJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GamePlayerJoinedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              isGameAdmin_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GamePlayerJoinedMessage> PARSER =
        new com.google.protobuf.AbstractParser<GamePlayerJoinedMessage>() {
      public GamePlayerJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GamePlayerJoinedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ISGAMEADMIN_FIELD_NUMBER = 3;
    private boolean isGameAdmin_;
    /**
     * <code>required bool isGameAdmin = 3;</code>
     */
    public boolean hasIsGameAdmin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required bool isGameAdmin = 3;</code>
     */
    public boolean getIsGameAdmin() {
      return isGameAdmin_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      isGameAdmin_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsGameAdmin()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, isGameAdmin_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isGameAdmin_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage 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(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GamePlayerJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GamePlayerJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        isGameAdmin_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.isGameAdmin_ = isGameAdmin_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasIsGameAdmin()) {
          setIsGameAdmin(other.getIsGameAdmin());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasIsGameAdmin()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private boolean isGameAdmin_ ;
      /**
       * <code>required bool isGameAdmin = 3;</code>
       */
      public boolean hasIsGameAdmin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required bool isGameAdmin = 3;</code>
       */
      public boolean getIsGameAdmin() {
        return isGameAdmin_;
      }
      /**
       * <code>required bool isGameAdmin = 3;</code>
       */
      public Builder setIsGameAdmin(boolean value) {
        bitField0_ |= 0x00000004;
        isGameAdmin_ = value;
        
        return this;
      }
      /**
       * <code>required bool isGameAdmin = 3;</code>
       */
      public Builder clearIsGameAdmin() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isGameAdmin_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GamePlayerJoinedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GamePlayerJoinedMessage)
  }

  public interface GamePlayerLeftMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GamePlayerLeftMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     */
    boolean hasGamePlayerLeftReason();
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason();
  }
  /**
   * Protobuf type {@code GamePlayerLeftMessage}
   */
  public static final class GamePlayerLeftMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GamePlayerLeftMessage)
      GamePlayerLeftMessageOrBuilder {
    // Use GamePlayerLeftMessage.newBuilder() to construct.
    private GamePlayerLeftMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GamePlayerLeftMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GamePlayerLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GamePlayerLeftMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                gamePlayerLeftReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GamePlayerLeftMessage> PARSER =
        new com.google.protobuf.AbstractParser<GamePlayerLeftMessage>() {
      public GamePlayerLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GamePlayerLeftMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code GamePlayerLeftMessage.GamePlayerLeftReason}
     */
    public enum GamePlayerLeftReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>leftOnRequest = 0;</code>
       */
      leftOnRequest(0, 0),
      /**
       * <code>leftKicked = 1;</code>
       */
      leftKicked(1, 1),
      /**
       * <code>leftError = 2;</code>
       */
      leftError(2, 2),
      ;

      /**
       * <code>leftOnRequest = 0;</code>
       */
      public static final int leftOnRequest_VALUE = 0;
      /**
       * <code>leftKicked = 1;</code>
       */
      public static final int leftKicked_VALUE = 1;
      /**
       * <code>leftError = 2;</code>
       */
      public static final int leftError_VALUE = 2;


      public final int getNumber() { return value; }

      public static GamePlayerLeftReason valueOf(int value) {
        switch (value) {
          case 0: return leftOnRequest;
          case 1: return leftKicked;
          case 2: return leftError;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:GamePlayerLeftMessage.GamePlayerLeftReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMEPLAYERLEFTREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason_;
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     */
    public boolean hasGamePlayerLeftReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason() {
      return gamePlayerLeftReason_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGamePlayerLeftReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gamePlayerLeftReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gamePlayerLeftReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage 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(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GamePlayerLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GamePlayerLeftMessage)
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = new de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gamePlayerLeftReason_ = gamePlayerLeftReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGamePlayerLeftReason()) {
          setGamePlayerLeftReason(other.getGamePlayerLeftReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGamePlayerLeftReason()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       */
      public boolean hasGamePlayerLeftReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason() {
        return gamePlayerLeftReason_;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       */
      public Builder setGamePlayerLeftReason(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gamePlayerLeftReason_ = value;
        
        return this;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       */
      public Builder clearGamePlayerLeftReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GamePlayerLeftMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GamePlayerLeftMessage)
  }

  public interface GameSpectatorJoinedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameSpectatorJoinedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameSpectatorJoinedMessage}
   */
  public static final class GameSpectatorJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameSpectatorJoinedMessage)
      GameSpectatorJoinedMessageOrBuilder {
    // Use GameSpectatorJoinedMessage.newBuilder() to construct.
    private GameSpectatorJoinedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameSpectatorJoinedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameSpectatorJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameSpectatorJoinedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameSpectatorJoinedMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameSpectatorJoinedMessage>() {
      public GameSpectatorJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameSpectatorJoinedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage 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(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameSpectatorJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameSpectatorJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameSpectatorJoinedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameSpectatorJoinedMessage)
  }

  public interface GameSpectatorLeftMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameSpectatorLeftMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     */
    boolean hasGameSpectatorLeftReason();
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason();
  }
  /**
   * Protobuf type {@code GameSpectatorLeftMessage}
   */
  public static final class GameSpectatorLeftMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameSpectatorLeftMessage)
      GameSpectatorLeftMessageOrBuilder {
    // Use GameSpectatorLeftMessage.newBuilder() to construct.
    private GameSpectatorLeftMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameSpectatorLeftMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameSpectatorLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameSpectatorLeftMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                gameSpectatorLeftReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameSpectatorLeftMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameSpectatorLeftMessage>() {
      public GameSpectatorLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameSpectatorLeftMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMESPECTATORLEFTREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason_;
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     */
    public boolean hasGameSpectatorLeftReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason() {
      return gameSpectatorLeftReason_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameSpectatorLeftReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameSpectatorLeftReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameSpectatorLeftReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage 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(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameSpectatorLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameSpectatorLeftMessage)
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameSpectatorLeftReason_ = gameSpectatorLeftReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGameSpectatorLeftReason()) {
          setGameSpectatorLeftReason(other.getGameSpectatorLeftReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGameSpectatorLeftReason()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       */
      public boolean hasGameSpectatorLeftReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason() {
        return gameSpectatorLeftReason_;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       */
      public Builder setGameSpectatorLeftReason(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameSpectatorLeftReason_ = value;
        
        return this;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       */
      public Builder clearGameSpectatorLeftReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameSpectatorLeftMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameSpectatorLeftMessage)
  }

  public interface GameAdminChangedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameAdminChangedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    boolean hasNewAdminPlayerId();
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    int getNewAdminPlayerId();
  }
  /**
   * Protobuf type {@code GameAdminChangedMessage}
   */
  public static final class GameAdminChangedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameAdminChangedMessage)
      GameAdminChangedMessageOrBuilder {
    // Use GameAdminChangedMessage.newBuilder() to construct.
    private GameAdminChangedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameAdminChangedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameAdminChangedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameAdminChangedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              newAdminPlayerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameAdminChangedMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameAdminChangedMessage>() {
      public GameAdminChangedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameAdminChangedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int NEWADMINPLAYERID_FIELD_NUMBER = 2;
    private int newAdminPlayerId_;
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    public boolean hasNewAdminPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     */
    public int getNewAdminPlayerId() {
      return newAdminPlayerId_;
    }

    private void initFields() {
      gameId_ = 0;
      newAdminPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNewAdminPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, newAdminPlayerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newAdminPlayerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage 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(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameAdminChangedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameAdminChangedMessage)
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = new de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.newAdminPlayerId_ = newAdminPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasNewAdminPlayerId()) {
          setNewAdminPlayerId(other.getNewAdminPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int newAdminPlayerId_ ;
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public boolean hasNewAdminPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public int getNewAdminPlayerId() {
        return newAdminPlayerId_;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public Builder setNewAdminPlayerId(int value) {
        bitField0_ |= 0x00000002;
        newAdminPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       */
      public Builder clearNewAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newAdminPlayerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameAdminChangedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameAdminChangedMessage)
  }

  public interface RemovedFromGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:RemovedFromGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     */
    boolean hasRemovedFromGameReason();
    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason();
  }
  /**
   * Protobuf type {@code RemovedFromGameMessage}
   */
  public static final class RemovedFromGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:RemovedFromGameMessage)
      RemovedFromGameMessageOrBuilder {
    // Use RemovedFromGameMessage.newBuilder() to construct.
    private RemovedFromGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RemovedFromGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public RemovedFromGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private RemovedFromGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason value = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                removedFromGameReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<RemovedFromGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<RemovedFromGameMessage>() {
      public RemovedFromGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RemovedFromGameMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code RemovedFromGameMessage.RemovedFromGameReason}
     */
    public enum RemovedFromGameReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>removedOnRequest = 0;</code>
       *
       * <pre>
       * No error, client wished to leave.
       * </pre>
       */
      removedOnRequest(0, 0),
      /**
       * <code>kickedFromGame = 1;</code>
       */
      kickedFromGame(1, 1),
      /**
       * <code>gameIsFull = 2;</code>
       */
      gameIsFull(2, 2),
      /**
       * <code>gameIsRunning = 3;</code>
       */
      gameIsRunning(3, 3),
      /**
       * <code>gameTimeout = 4;</code>
       */
      gameTimeout(4, 4),
      /**
       * <code>removedStartFailed = 5;</code>
       */
      removedStartFailed(5, 5),
      /**
       * <code>gameClosed = 6;</code>
       */
      gameClosed(6, 6),
      ;

      /**
       * <code>removedOnRequest = 0;</code>
       *
       * <pre>
       * No error, client wished to leave.
       * </pre>
       */
      public static final int removedOnRequest_VALUE = 0;
      /**
       * <code>kickedFromGame = 1;</code>
       */
      public static final int kickedFromGame_VALUE = 1;
      /**
       * <code>gameIsFull = 2;</code>
       */
      public static final int gameIsFull_VALUE = 2;
      /**
       * <code>gameIsRunning = 3;</code>
       */
      public static final int gameIsRunning_VALUE = 3;
      /**
       * <code>gameTimeout = 4;</code>
       */
      public static final int gameTimeout_VALUE = 4;
      /**
       * <code>removedStartFailed = 5;</code>
       */
      public static final int removedStartFailed_VALUE = 5;
      /**
       * <code>gameClosed = 6;</code>
       */
      public static final int gameClosed_VALUE = 6;


      public final int getNumber() { return value; }

      public static RemovedFromGameReason valueOf(int value) {
        switch (value) {
          case 0: return removedOnRequest;
          case 1: return kickedFromGame;
          case 2: return gameIsFull;
          case 3: return gameIsRunning;
          case 4: return gameTimeout;
          case 5: return removedStartFailed;
          case 6: return gameClosed;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:RemovedFromGameMessage.RemovedFromGameReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int REMOVEDFROMGAMEREASON_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason_;
    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     */
    public boolean hasRemovedFromGameReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason() {
      return removedFromGameReason_;
    }

    private void initFields() {
      gameId_ = 0;
      removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRemovedFromGameReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, removedFromGameReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, removedFromGameReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage 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(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code RemovedFromGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:RemovedFromGameMessage)
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage build() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = new de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.removedFromGameReason_ = removedFromGameReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasRemovedFromGameReason()) {
          setRemovedFromGameReason(other.getRemovedFromGameReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       */
      public boolean hasRemovedFromGameReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason() {
        return removedFromGameReason_;
      }
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       */
      public Builder setRemovedFromGameReason(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        removedFromGameReason_ = value;
        
        return this;
      }
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       */
      public Builder clearRemovedFromGameReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:RemovedFromGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:RemovedFromGameMessage)
  }

  public interface KickPlayerRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:KickPlayerRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code KickPlayerRequestMessage}
   */
  public static final class KickPlayerRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:KickPlayerRequestMessage)
      KickPlayerRequestMessageOrBuilder {
    // Use KickPlayerRequestMessage.newBuilder() to construct.
    private KickPlayerRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private KickPlayerRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public KickPlayerRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private KickPlayerRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<KickPlayerRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<KickPlayerRequestMessage>() {
      public KickPlayerRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new KickPlayerRequestMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage 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(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code KickPlayerRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:KickPlayerRequestMessage)
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = new de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:KickPlayerRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:KickPlayerRequestMessage)
  }

  public interface LeaveGameRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:LeaveGameRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();
  }
  /**
   * Protobuf type {@code LeaveGameRequestMessage}
   */
  public static final class LeaveGameRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:LeaveGameRequestMessage)
      LeaveGameRequestMessageOrBuilder {
    // Use LeaveGameRequestMessage.newBuilder() to construct.
    private LeaveGameRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LeaveGameRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public LeaveGameRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private LeaveGameRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<LeaveGameRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<LeaveGameRequestMessage>() {
      public LeaveGameRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LeaveGameRequestMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

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

      if (!hasGameId()) {
        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.writeUInt32(1, gameId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage 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(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code LeaveGameRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:LeaveGameRequestMessage)
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = new de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LeaveGameRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:LeaveGameRequestMessage)
  }

  public interface InvitePlayerToGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:InvitePlayerToGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code InvitePlayerToGameMessage}
   */
  public static final class InvitePlayerToGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:InvitePlayerToGameMessage)
      InvitePlayerToGameMessageOrBuilder {
    // Use InvitePlayerToGameMessage.newBuilder() to construct.
    private InvitePlayerToGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private InvitePlayerToGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public InvitePlayerToGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private InvitePlayerToGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<InvitePlayerToGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<InvitePlayerToGameMessage>() {
      public InvitePlayerToGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new InvitePlayerToGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage 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(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code InvitePlayerToGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:InvitePlayerToGameMessage)
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage build() {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = new de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:InvitePlayerToGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:InvitePlayerToGameMessage)
  }

  public interface InviteNotifyMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:InviteNotifyMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerIdWho = 2;</code>
     */
    boolean hasPlayerIdWho();
    /**
     * <code>required uint32 playerIdWho = 2;</code>
     */
    int getPlayerIdWho();

    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     */
    boolean hasPlayerIdByWhom();
    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     */
    int getPlayerIdByWhom();
  }
  /**
   * Protobuf type {@code InviteNotifyMessage}
   */
  public static final class InviteNotifyMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:InviteNotifyMessage)
      InviteNotifyMessageOrBuilder {
    // Use InviteNotifyMessage.newBuilder() to construct.
    private InviteNotifyMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private InviteNotifyMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public InviteNotifyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private InviteNotifyMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerIdWho_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playerIdByWhom_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<InviteNotifyMessage> PARSER =
        new com.google.protobuf.AbstractParser<InviteNotifyMessage>() {
      public InviteNotifyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new InviteNotifyMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERIDWHO_FIELD_NUMBER = 2;
    private int playerIdWho_;
    /**
     * <code>required uint32 playerIdWho = 2;</code>
     */
    public boolean hasPlayerIdWho() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerIdWho = 2;</code>
     */
    public int getPlayerIdWho() {
      return playerIdWho_;
    }

    public static final int PLAYERIDBYWHOM_FIELD_NUMBER = 3;
    private int playerIdByWhom_;
    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     */
    public boolean hasPlayerIdByWhom() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     */
    public int getPlayerIdByWhom() {
      return playerIdByWhom_;
    }

    private void initFields() {
      gameId_ = 0;
      playerIdWho_ = 0;
      playerIdByWhom_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdWho()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdByWhom()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerIdWho_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, playerIdByWhom_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerIdWho_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, playerIdByWhom_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage 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(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code InviteNotifyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:InviteNotifyMessage)
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdWho_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdByWhom_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage build() {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = new de.pokerth.protocol.ProtoBuf.InviteNotifyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerIdWho_ = playerIdWho_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerIdByWhom_ = playerIdByWhom_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerIdWho()) {
          setPlayerIdWho(other.getPlayerIdWho());
        }
        if (other.hasPlayerIdByWhom()) {
          setPlayerIdByWhom(other.getPlayerIdByWhom());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerIdWho()) {
          
          return false;
        }
        if (!hasPlayerIdByWhom()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerIdWho_ ;
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       */
      public boolean hasPlayerIdWho() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       */
      public int getPlayerIdWho() {
        return playerIdWho_;
      }
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       */
      public Builder setPlayerIdWho(int value) {
        bitField0_ |= 0x00000002;
        playerIdWho_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       */
      public Builder clearPlayerIdWho() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdWho_ = 0;
        
        return this;
      }

      private int playerIdByWhom_ ;
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       */
      public boolean hasPlayerIdByWhom() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       */
      public int getPlayerIdByWhom() {
        return playerIdByWhom_;
      }
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       */
      public Builder setPlayerIdByWhom(int value) {
        bitField0_ |= 0x00000004;
        playerIdByWhom_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       */
      public Builder clearPlayerIdByWhom() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerIdByWhom_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:InviteNotifyMessage)
    }

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

    // @@protoc_insertion_point(class_scope:InviteNotifyMessage)
  }

  public interface RejectGameInvitationMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:RejectGameInvitationMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     */
    boolean hasMyRejectReason();
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason();
  }
  /**
   * Protobuf type {@code RejectGameInvitationMessage}
   */
  public static final class RejectGameInvitationMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:RejectGameInvitationMessage)
      RejectGameInvitationMessageOrBuilder {
    // Use RejectGameInvitationMessage.newBuilder() to construct.
    private RejectGameInvitationMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RejectGameInvitationMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public RejectGameInvitationMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private RejectGameInvitationMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                myRejectReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<RejectGameInvitationMessage> PARSER =
        new com.google.protobuf.AbstractParser<RejectGameInvitationMessage>() {
      public RejectGameInvitationMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RejectGameInvitationMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code RejectGameInvitationMessage.RejectGameInvReason}
     */
    public enum RejectGameInvReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>rejectReasonNo = 0;</code>
       */
      rejectReasonNo(0, 0),
      /**
       * <code>rejectReasonBusy = 1;</code>
       */
      rejectReasonBusy(1, 1),
      ;

      /**
       * <code>rejectReasonNo = 0;</code>
       */
      public static final int rejectReasonNo_VALUE = 0;
      /**
       * <code>rejectReasonBusy = 1;</code>
       */
      public static final int rejectReasonBusy_VALUE = 1;


      public final int getNumber() { return value; }

      public static RejectGameInvReason valueOf(int value) {
        switch (value) {
          case 0: return rejectReasonNo;
          case 1: return rejectReasonBusy;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:RejectGameInvitationMessage.RejectGameInvReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int MYREJECTREASON_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason myRejectReason_;
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     */
    public boolean hasMyRejectReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason() {
      return myRejectReason_;
    }

    private void initFields() {
      gameId_ = 0;
      myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyRejectReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, myRejectReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, myRejectReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage 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(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code RejectGameInvitationMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:RejectGameInvitationMessage)
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage build() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = new de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.myRejectReason_ = myRejectReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasMyRejectReason()) {
          setMyRejectReason(other.getMyRejectReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       */
      public boolean hasMyRejectReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason() {
        return myRejectReason_;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       */
      public Builder setMyRejectReason(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        myRejectReason_ = value;
        
        return this;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       */
      public Builder clearMyRejectReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:RejectGameInvitationMessage)
    }

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

    // @@protoc_insertion_point(class_scope:RejectGameInvitationMessage)
  }

  public interface RejectInvNotifyMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:RejectInvNotifyMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     */
    boolean hasPlayerRejectReason();
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason();
  }
  /**
   * Protobuf type {@code RejectInvNotifyMessage}
   */
  public static final class RejectInvNotifyMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:RejectInvNotifyMessage)
      RejectInvNotifyMessageOrBuilder {
    // Use RejectInvNotifyMessage.newBuilder() to construct.
    private RejectInvNotifyMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RejectInvNotifyMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public RejectInvNotifyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private RejectInvNotifyMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                playerRejectReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<RejectInvNotifyMessage> PARSER =
        new com.google.protobuf.AbstractParser<RejectInvNotifyMessage>() {
      public RejectInvNotifyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RejectInvNotifyMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int PLAYERREJECTREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason playerRejectReason_;
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     */
    public boolean hasPlayerRejectReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason() {
      return playerRejectReason_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerRejectReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, playerRejectReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, playerRejectReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage 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(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code RejectInvNotifyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:RejectInvNotifyMessage)
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage build() {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = new de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerRejectReason_ = playerRejectReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPlayerRejectReason()) {
          setPlayerRejectReason(other.getPlayerRejectReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasPlayerRejectReason()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       */
      public boolean hasPlayerRejectReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason() {
        return playerRejectReason_;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       */
      public Builder setPlayerRejectReason(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        playerRejectReason_ = value;
        
        return this;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       */
      public Builder clearPlayerRejectReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:RejectInvNotifyMessage)
    }

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

    // @@protoc_insertion_point(class_scope:RejectInvNotifyMessage)
  }

  public interface StartEventMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:StartEventMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     */
    boolean hasStartEventType();
    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType();

    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     */
    boolean hasFillWithComputerPlayers();
    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     */
    boolean getFillWithComputerPlayers();
  }
  /**
   * Protobuf type {@code StartEventMessage}
   */
  public static final class StartEventMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:StartEventMessage)
      StartEventMessageOrBuilder {
    // Use StartEventMessage.newBuilder() to construct.
    private StartEventMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartEventMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public StartEventMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private StartEventMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType value = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                startEventType_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              fillWithComputerPlayers_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<StartEventMessage> PARSER =
        new com.google.protobuf.AbstractParser<StartEventMessage>() {
      public StartEventMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartEventMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code StartEventMessage.StartEventType}
     */
    public enum StartEventType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>startEvent = 0;</code>
       */
      startEvent(0, 0),
      /**
       * <code>rejoinEvent = 1;</code>
       */
      rejoinEvent(1, 1),
      ;

      /**
       * <code>startEvent = 0;</code>
       */
      public static final int startEvent_VALUE = 0;
      /**
       * <code>rejoinEvent = 1;</code>
       */
      public static final int rejoinEvent_VALUE = 1;


      public final int getNumber() { return value; }

      public static StartEventType valueOf(int value) {
        switch (value) {
          case 0: return startEvent;
          case 1: return rejoinEvent;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:StartEventMessage.StartEventType)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int STARTEVENTTYPE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType startEventType_;
    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     */
    public boolean hasStartEventType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType() {
      return startEventType_;
    }

    public static final int FILLWITHCOMPUTERPLAYERS_FIELD_NUMBER = 3;
    private boolean fillWithComputerPlayers_;
    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     */
    public boolean hasFillWithComputerPlayers() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     */
    public boolean getFillWithComputerPlayers() {
      return fillWithComputerPlayers_;
    }

    private void initFields() {
      gameId_ = 0;
      startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
      fillWithComputerPlayers_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartEventType()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, startEventType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, fillWithComputerPlayers_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, startEventType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, fillWithComputerPlayers_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage 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(de.pokerth.protocol.ProtoBuf.StartEventMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code StartEventMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StartEventMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:StartEventMessage)
        de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StartEventMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
        bitField0_ = (bitField0_ & ~0x00000002);
        fillWithComputerPlayers_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.StartEventMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.StartEventMessage build() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.StartEventMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = new de.pokerth.protocol.ProtoBuf.StartEventMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startEventType_ = startEventType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.fillWithComputerPlayers_ = fillWithComputerPlayers_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StartEventMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasStartEventType()) {
          setStartEventType(other.getStartEventType());
        }
        if (other.hasFillWithComputerPlayers()) {
          setFillWithComputerPlayers(other.getFillWithComputerPlayers());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       */
      public boolean hasStartEventType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType() {
        return startEventType_;
      }
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       */
      public Builder setStartEventType(de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        startEventType_ = value;
        
        return this;
      }
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       */
      public Builder clearStartEventType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
        
        return this;
      }

      private boolean fillWithComputerPlayers_ ;
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       */
      public boolean hasFillWithComputerPlayers() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       */
      public boolean getFillWithComputerPlayers() {
        return fillWithComputerPlayers_;
      }
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       */
      public Builder setFillWithComputerPlayers(boolean value) {
        bitField0_ |= 0x00000004;
        fillWithComputerPlayers_ = value;
        
        return this;
      }
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       */
      public Builder clearFillWithComputerPlayers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fillWithComputerPlayers_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartEventMessage)
    }

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

    // @@protoc_insertion_point(class_scope:StartEventMessage)
  }

  public interface StartEventAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:StartEventAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();
  }
  /**
   * Protobuf type {@code StartEventAckMessage}
   */
  public static final class StartEventAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:StartEventAckMessage)
      StartEventAckMessageOrBuilder {
    // Use StartEventAckMessage.newBuilder() to construct.
    private StartEventAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartEventAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public StartEventAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private StartEventAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<StartEventAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<StartEventAckMessage>() {
      public StartEventAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartEventAckMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

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

      if (!hasGameId()) {
        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.writeUInt32(1, gameId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage 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(de.pokerth.protocol.ProtoBuf.StartEventAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code StartEventAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:StartEventAckMessage)
        de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StartEventAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage build() {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = new de.pokerth.protocol.ProtoBuf.StartEventAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StartEventAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartEventAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:StartEventAckMessage)
  }

  public interface GameStartInitialMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameStartInitialMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    boolean hasStartDealerPlayerId();
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    int getStartDealerPlayerId();

    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     */
    java.util.List<java.lang.Integer> getPlayerSeatsList();
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     */
    int getPlayerSeatsCount();
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     */
    int getPlayerSeats(int index);
  }
  /**
   * Protobuf type {@code GameStartInitialMessage}
   */
  public static final class GameStartInitialMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameStartInitialMessage)
      GameStartInitialMessageOrBuilder {
    // Use GameStartInitialMessage.newBuilder() to construct.
    private GameStartInitialMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameStartInitialMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameStartInitialMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameStartInitialMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              startDealerPlayerId_ = input.readUInt32();
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                playerSeats_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000004;
              }
              playerSeats_.add(input.readUInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                playerSeats_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                playerSeats_.add(input.readUInt32());
              }
              input.popLimit(limit);
              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)) {
          playerSeats_ = java.util.Collections.unmodifiableList(playerSeats_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameStartInitialMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameStartInitialMessage>() {
      public GameStartInitialMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameStartInitialMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int STARTDEALERPLAYERID_FIELD_NUMBER = 2;
    private int startDealerPlayerId_;
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    public boolean hasStartDealerPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    public int getStartDealerPlayerId() {
      return startDealerPlayerId_;
    }

    public static final int PLAYERSEATS_FIELD_NUMBER = 3;
    private java.util.List<java.lang.Integer> playerSeats_;
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     */
    public java.util.List<java.lang.Integer>
        getPlayerSeatsList() {
      return playerSeats_;
    }
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     */
    public int getPlayerSeatsCount() {
      return playerSeats_.size();
    }
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     */
    public int getPlayerSeats(int index) {
      return playerSeats_.get(index);
    }
    private int playerSeatsMemoizedSerializedSize = -1;

    private void initFields() {
      gameId_ = 0;
      startDealerPlayerId_ = 0;
      playerSeats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartDealerPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, startDealerPlayerId_);
      }
      if (getPlayerSeatsList().size() > 0) {
        output.writeRawVarint32(26);
        output.writeRawVarint32(playerSeatsMemoizedSerializedSize);
      }
      for (int i = 0; i < playerSeats_.size(); i++) {
        output.writeUInt32NoTag(playerSeats_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, startDealerPlayerId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerSeats_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerSeats_.get(i));
        }
        size += dataSize;
        if (!getPlayerSeatsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerSeatsMemoizedSerializedSize = dataSize;
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage 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(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameStartInitialMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameStartInitialMessage)
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startDealerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerSeats_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage build() {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = new de.pokerth.protocol.ProtoBuf.GameStartInitialMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startDealerPlayerId_ = startDealerPlayerId_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          playerSeats_ = java.util.Collections.unmodifiableList(playerSeats_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.playerSeats_ = playerSeats_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasStartDealerPlayerId()) {
          setStartDealerPlayerId(other.getStartDealerPlayerId());
        }
        if (!other.playerSeats_.isEmpty()) {
          if (playerSeats_.isEmpty()) {
            playerSeats_ = other.playerSeats_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensurePlayerSeatsIsMutable();
            playerSeats_.addAll(other.playerSeats_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int startDealerPlayerId_ ;
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public boolean hasStartDealerPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public int getStartDealerPlayerId() {
        return startDealerPlayerId_;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public Builder setStartDealerPlayerId(int value) {
        bitField0_ |= 0x00000002;
        startDealerPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public Builder clearStartDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startDealerPlayerId_ = 0;
        
        return this;
      }

      private java.util.List<java.lang.Integer> playerSeats_ = java.util.Collections.emptyList();
      private void ensurePlayerSeatsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          playerSeats_ = new java.util.ArrayList<java.lang.Integer>(playerSeats_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public java.util.List<java.lang.Integer>
          getPlayerSeatsList() {
        return java.util.Collections.unmodifiableList(playerSeats_);
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public int getPlayerSeatsCount() {
        return playerSeats_.size();
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public int getPlayerSeats(int index) {
        return playerSeats_.get(index);
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public Builder setPlayerSeats(
          int index, int value) {
        ensurePlayerSeatsIsMutable();
        playerSeats_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public Builder addPlayerSeats(int value) {
        ensurePlayerSeatsIsMutable();
        playerSeats_.add(value);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public Builder addAllPlayerSeats(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerSeatsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerSeats_);
        
        return this;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       */
      public Builder clearPlayerSeats() {
        playerSeats_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameStartInitialMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameStartInitialMessage)
  }

  public interface GameStartRejoinMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GameStartRejoinMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    boolean hasStartDealerPlayerId();
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    int getStartDealerPlayerId();

    /**
     * <code>required uint32 handNum = 3;</code>
     */
    boolean hasHandNum();
    /**
     * <code>required uint32 handNum = 3;</code>
     */
    int getHandNum();

    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> 
        getRejoinPlayerDataList();
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index);
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    int getRejoinPlayerDataCount();
  }
  /**
   * Protobuf type {@code GameStartRejoinMessage}
   */
  public static final class GameStartRejoinMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:GameStartRejoinMessage)
      GameStartRejoinMessageOrBuilder {
    // Use GameStartRejoinMessage.newBuilder() to construct.
    private GameStartRejoinMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GameStartRejoinMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public GameStartRejoinMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private GameStartRejoinMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              startDealerPlayerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              handNum_ = input.readUInt32();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                rejoinPlayerData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData>();
                mutable_bitField0_ |= 0x00000008;
              }
              rejoinPlayerData_.add(input.readMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.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)) {
          rejoinPlayerData_ = java.util.Collections.unmodifiableList(rejoinPlayerData_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<GameStartRejoinMessage> PARSER =
        new com.google.protobuf.AbstractParser<GameStartRejoinMessage>() {
      public GameStartRejoinMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GameStartRejoinMessage(input, extensionRegistry);
      }
    };

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

    public interface RejoinPlayerDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:GameStartRejoinMessage.RejoinPlayerData)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>required uint32 playerId = 1;</code>
       */
      boolean hasPlayerId();
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      int getPlayerId();

      /**
       * <code>required uint32 playerMoney = 2;</code>
       */
      boolean hasPlayerMoney();
      /**
       * <code>required uint32 playerMoney = 2;</code>
       */
      int getPlayerMoney();
    }
    /**
     * Protobuf type {@code GameStartRejoinMessage.RejoinPlayerData}
     */
    public static final class RejoinPlayerData extends
        com.google.protobuf.GeneratedMessageLite implements
        // @@protoc_insertion_point(message_implements:GameStartRejoinMessage.RejoinPlayerData)
        RejoinPlayerDataOrBuilder {
      // Use RejoinPlayerData.newBuilder() to construct.
      private RejoinPlayerData(com.google.protobuf.GeneratedMessageLite.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private RejoinPlayerData(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

      public RejoinPlayerData getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.ByteString unknownFields;
      private RejoinPlayerData(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.ByteString.Output unknownFieldsOutput =
            com.google.protobuf.ByteString.newOutput();
        com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
            com.google.protobuf.CodedOutputStream.newInstance(
                unknownFieldsOutput);
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                playerMoney_ = input.readUInt32();
                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 {
          try {
            unknownFieldsCodedOutput.flush();
          } catch (java.io.IOException e) {
          // Should not happen
          } finally {
            unknownFields = unknownFieldsOutput.toByteString();
          }
          makeExtensionsImmutable();
        }
      }
      public static com.google.protobuf.Parser<RejoinPlayerData> PARSER =
          new com.google.protobuf.AbstractParser<RejoinPlayerData>() {
        public RejoinPlayerData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new RejoinPlayerData(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      public static final int PLAYERID_FIELD_NUMBER = 1;
      private int playerId_;
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }

      public static final int PLAYERMONEY_FIELD_NUMBER = 2;
      private int playerMoney_;
      /**
       * <code>required uint32 playerMoney = 2;</code>
       */
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerMoney = 2;</code>
       */
      public int getPlayerMoney() {
        return playerMoney_;
      }

      private void initFields() {
        playerId_ = 0;
        playerMoney_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasPlayerId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPlayerMoney()) {
          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.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, playerMoney_);
        }
        output.writeRawBytes(unknownFields);
      }

      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
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, playerMoney_);
        }
        size += unknownFields.size();
        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 de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData 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(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      /**
       * Protobuf type {@code GameStartRejoinMessage.RejoinPlayerData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData, Builder>
          implements
          // @@protoc_insertion_point(builder_implements:GameStartRejoinMessage.RejoinPlayerData)
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }

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

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

        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance();
        }

        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData build() {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData buildPartial() {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData(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.playerMoney_ = playerMoney_;
          result.bitField0_ = to_bitField0_;
          return result;
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData other) {
          if (other == de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasPlayerMoney()) {
            setPlayerMoney(other.getPlayerMoney());
          }
          setUnknownFields(
              getUnknownFields().concat(other.unknownFields));
          return this;
        }

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

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

        private int playerId_ ;
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          
          return this;
        }

        private int playerMoney_ ;
        /**
         * <code>required uint32 playerMoney = 2;</code>
         */
        public boolean hasPlayerMoney() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required uint32 playerMoney = 2;</code>
         */
        public int getPlayerMoney() {
          return playerMoney_;
        }
        /**
         * <code>required uint32 playerMoney = 2;</code>
         */
        public Builder setPlayerMoney(int value) {
          bitField0_ |= 0x00000002;
          playerMoney_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 playerMoney = 2;</code>
         */
        public Builder clearPlayerMoney() {
          bitField0_ = (bitField0_ & ~0x00000002);
          playerMoney_ = 0;
          
          return this;
        }

        // @@protoc_insertion_point(builder_scope:GameStartRejoinMessage.RejoinPlayerData)
      }

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

      // @@protoc_insertion_point(class_scope:GameStartRejoinMessage.RejoinPlayerData)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int STARTDEALERPLAYERID_FIELD_NUMBER = 2;
    private int startDealerPlayerId_;
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    public boolean hasStartDealerPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     */
    public int getStartDealerPlayerId() {
      return startDealerPlayerId_;
    }

    public static final int HANDNUM_FIELD_NUMBER = 3;
    private int handNum_;
    /**
     * <code>required uint32 handNum = 3;</code>
     */
    public boolean hasHandNum() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 handNum = 3;</code>
     */
    public int getHandNum() {
      return handNum_;
    }

    public static final int REJOINPLAYERDATA_FIELD_NUMBER = 4;
    private java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> rejoinPlayerData_;
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> getRejoinPlayerDataList() {
      return rejoinPlayerData_;
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> 
        getRejoinPlayerDataOrBuilderList() {
      return rejoinPlayerData_;
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    public int getRejoinPlayerDataCount() {
      return rejoinPlayerData_.size();
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index) {
      return rejoinPlayerData_.get(index);
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder getRejoinPlayerDataOrBuilder(
        int index) {
      return rejoinPlayerData_.get(index);
    }

    private void initFields() {
      gameId_ = 0;
      startDealerPlayerId_ = 0;
      handNum_ = 0;
      rejoinPlayerData_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartDealerPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHandNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getRejoinPlayerDataCount(); i++) {
        if (!getRejoinPlayerData(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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, startDealerPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, handNum_);
      }
      for (int i = 0; i < rejoinPlayerData_.size(); i++) {
        output.writeMessage(4, rejoinPlayerData_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, startDealerPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, handNum_);
      }
      for (int i = 0; i < rejoinPlayerData_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, rejoinPlayerData_.get(i));
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage 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(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code GameStartRejoinMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:GameStartRejoinMessage)
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startDealerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        handNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        rejoinPlayerData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage build() {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startDealerPlayerId_ = startDealerPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.handNum_ = handNum_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          rejoinPlayerData_ = java.util.Collections.unmodifiableList(rejoinPlayerData_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.rejoinPlayerData_ = rejoinPlayerData_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasStartDealerPlayerId()) {
          setStartDealerPlayerId(other.getStartDealerPlayerId());
        }
        if (other.hasHandNum()) {
          setHandNum(other.getHandNum());
        }
        if (!other.rejoinPlayerData_.isEmpty()) {
          if (rejoinPlayerData_.isEmpty()) {
            rejoinPlayerData_ = other.rejoinPlayerData_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureRejoinPlayerDataIsMutable();
            rejoinPlayerData_.addAll(other.rejoinPlayerData_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasStartDealerPlayerId()) {
          
          return false;
        }
        if (!hasHandNum()) {
          
          return false;
        }
        for (int i = 0; i < getRejoinPlayerDataCount(); i++) {
          if (!getRejoinPlayerData(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int startDealerPlayerId_ ;
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public boolean hasStartDealerPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public int getStartDealerPlayerId() {
        return startDealerPlayerId_;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public Builder setStartDealerPlayerId(int value) {
        bitField0_ |= 0x00000002;
        startDealerPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       */
      public Builder clearStartDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startDealerPlayerId_ = 0;
        
        return this;
      }

      private int handNum_ ;
      /**
       * <code>required uint32 handNum = 3;</code>
       */
      public boolean hasHandNum() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 handNum = 3;</code>
       */
      public int getHandNum() {
        return handNum_;
      }
      /**
       * <code>required uint32 handNum = 3;</code>
       */
      public Builder setHandNum(int value) {
        bitField0_ |= 0x00000004;
        handNum_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 handNum = 3;</code>
       */
      public Builder clearHandNum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        handNum_ = 0;
        
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> rejoinPlayerData_ =
        java.util.Collections.emptyList();
      private void ensureRejoinPlayerDataIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          rejoinPlayerData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData>(rejoinPlayerData_);
          bitField0_ |= 0x00000008;
         }
      }

      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> getRejoinPlayerDataList() {
        return java.util.Collections.unmodifiableList(rejoinPlayerData_);
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public int getRejoinPlayerDataCount() {
        return rejoinPlayerData_.size();
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index) {
        return rejoinPlayerData_.get(index);
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder setRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.set(index, value);

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder setRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.set(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(value);

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(index, value);

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addAllRejoinPlayerData(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> values) {
        ensureRejoinPlayerDataIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rejoinPlayerData_);

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder clearRejoinPlayerData() {
        rejoinPlayerData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);

        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder removeRejoinPlayerData(int index) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:GameStartRejoinMessage)
    }

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

    // @@protoc_insertion_point(class_scope:GameStartRejoinMessage)
  }

  public interface HandStartMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:HandStartMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     */
    boolean hasPlainCards();
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards();

    /**
     * <code>optional bytes encryptedCards = 3;</code>
     */
    boolean hasEncryptedCards();
    /**
     * <code>optional bytes encryptedCards = 3;</code>
     */
    com.google.protobuf.ByteString getEncryptedCards();

    /**
     * <code>required uint32 smallBlind = 4;</code>
     */
    boolean hasSmallBlind();
    /**
     * <code>required uint32 smallBlind = 4;</code>
     */
    int getSmallBlind();

    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList();
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     */
    int getSeatStatesCount();
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index);

    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     */
    boolean hasDealerPlayerId();
    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     */
    int getDealerPlayerId();
  }
  /**
   * Protobuf type {@code HandStartMessage}
   */
  public static final class HandStartMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:HandStartMessage)
      HandStartMessageOrBuilder {
    // Use HandStartMessage.newBuilder() to construct.
    private HandStartMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private HandStartMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public HandStartMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private HandStartMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = plainCards_.toBuilder();
              }
              plainCards_ = input.readMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(plainCards_);
                plainCards_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              encryptedCards_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              smallBlind_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerState value = de.pokerth.protocol.ProtoBuf.NetPlayerState.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                } else {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  seatStates_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.NetPlayerState>();
                  mutable_bitField0_ |= 0x00000010;
                }
                seatStates_.add(value);
              }
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int oldLimit = input.pushLimit(length);
              while(input.getBytesUntilLimit() > 0) {
                int rawValue = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerState value = de.pokerth.protocol.ProtoBuf.NetPlayerState.valueOf(rawValue);
                if (value == null) {
                  unknownFieldsCodedOutput.writeRawVarint32(tag);
                  unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                  } else {
                  if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                    seatStates_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.NetPlayerState>();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  seatStates_.add(value);
                }
              }
              input.popLimit(oldLimit);
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              dealerPlayerId_ = input.readUInt32();
              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)) {
          seatStates_ = java.util.Collections.unmodifiableList(seatStates_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<HandStartMessage> PARSER =
        new com.google.protobuf.AbstractParser<HandStartMessage>() {
      public HandStartMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HandStartMessage(input, extensionRegistry);
      }
    };

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

    public interface PlainCardsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:HandStartMessage.PlainCards)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>required uint32 plainCard1 = 1;</code>
       */
      boolean hasPlainCard1();
      /**
       * <code>required uint32 plainCard1 = 1;</code>
       */
      int getPlainCard1();

      /**
       * <code>required uint32 plainCard2 = 2;</code>
       */
      boolean hasPlainCard2();
      /**
       * <code>required uint32 plainCard2 = 2;</code>
       */
      int getPlainCard2();
    }
    /**
     * Protobuf type {@code HandStartMessage.PlainCards}
     */
    public static final class PlainCards extends
        com.google.protobuf.GeneratedMessageLite implements
        // @@protoc_insertion_point(message_implements:HandStartMessage.PlainCards)
        PlainCardsOrBuilder {
      // Use PlainCards.newBuilder() to construct.
      private PlainCards(com.google.protobuf.GeneratedMessageLite.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlainCards(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

      public PlainCards getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.ByteString unknownFields;
      private PlainCards(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.ByteString.Output unknownFieldsOutput =
            com.google.protobuf.ByteString.newOutput();
        com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
            com.google.protobuf.CodedOutputStream.newInstance(
                unknownFieldsOutput);
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                plainCard1_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                plainCard2_ = input.readUInt32();
                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 {
          try {
            unknownFieldsCodedOutput.flush();
          } catch (java.io.IOException e) {
          // Should not happen
          } finally {
            unknownFields = unknownFieldsOutput.toByteString();
          }
          makeExtensionsImmutable();
        }
      }
      public static com.google.protobuf.Parser<PlainCards> PARSER =
          new com.google.protobuf.AbstractParser<PlainCards>() {
        public PlainCards parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlainCards(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      public static final int PLAINCARD1_FIELD_NUMBER = 1;
      private int plainCard1_;
      /**
       * <code>required uint32 plainCard1 = 1;</code>
       */
      public boolean hasPlainCard1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 plainCard1 = 1;</code>
       */
      public int getPlainCard1() {
        return plainCard1_;
      }

      public static final int PLAINCARD2_FIELD_NUMBER = 2;
      private int plainCard2_;
      /**
       * <code>required uint32 plainCard2 = 2;</code>
       */
      public boolean hasPlainCard2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 plainCard2 = 2;</code>
       */
      public int getPlainCard2() {
        return plainCard2_;
      }

      private void initFields() {
        plainCard1_ = 0;
        plainCard2_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasPlainCard1()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPlainCard2()) {
          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.writeUInt32(1, plainCard1_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, plainCard2_);
        }
        output.writeRawBytes(unknownFields);
      }

      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
            .computeUInt32Size(1, plainCard1_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, plainCard2_);
        }
        size += unknownFields.size();
        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 de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards 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(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      /**
       * Protobuf type {@code HandStartMessage.PlainCards}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards, Builder>
          implements
          // @@protoc_insertion_point(builder_implements:HandStartMessage.PlainCards)
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }

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

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

        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
        }

        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards build() {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards buildPartial() {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = new de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.plainCard1_ = plainCard1_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.plainCard2_ = plainCard2_;
          result.bitField0_ = to_bitField0_;
          return result;
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards other) {
          if (other == de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance()) return this;
          if (other.hasPlainCard1()) {
            setPlainCard1(other.getPlainCard1());
          }
          if (other.hasPlainCard2()) {
            setPlainCard2(other.getPlainCard2());
          }
          setUnknownFields(
              getUnknownFields().concat(other.unknownFields));
          return this;
        }

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

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

        private int plainCard1_ ;
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         */
        public boolean hasPlainCard1() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         */
        public int getPlainCard1() {
          return plainCard1_;
        }
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         */
        public Builder setPlainCard1(int value) {
          bitField0_ |= 0x00000001;
          plainCard1_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         */
        public Builder clearPlainCard1() {
          bitField0_ = (bitField0_ & ~0x00000001);
          plainCard1_ = 0;
          
          return this;
        }

        private int plainCard2_ ;
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         */
        public boolean hasPlainCard2() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         */
        public int getPlainCard2() {
          return plainCard2_;
        }
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         */
        public Builder setPlainCard2(int value) {
          bitField0_ |= 0x00000002;
          plainCard2_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         */
        public Builder clearPlainCard2() {
          bitField0_ = (bitField0_ & ~0x00000002);
          plainCard2_ = 0;
          
          return this;
        }

        // @@protoc_insertion_point(builder_scope:HandStartMessage.PlainCards)
      }

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

      // @@protoc_insertion_point(class_scope:HandStartMessage.PlainCards)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAINCARDS_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards plainCards_;
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     */
    public boolean hasPlainCards() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards() {
      return plainCards_;
    }

    public static final int ENCRYPTEDCARDS_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString encryptedCards_;
    /**
     * <code>optional bytes encryptedCards = 3;</code>
     */
    public boolean hasEncryptedCards() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes encryptedCards = 3;</code>
     */
    public com.google.protobuf.ByteString getEncryptedCards() {
      return encryptedCards_;
    }

    public static final int SMALLBLIND_FIELD_NUMBER = 4;
    private int smallBlind_;
    /**
     * <code>required uint32 smallBlind = 4;</code>
     */
    public boolean hasSmallBlind() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 smallBlind = 4;</code>
     */
    public int getSmallBlind() {
      return smallBlind_;
    }

    public static final int SEATSTATES_FIELD_NUMBER = 5;
    private java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> seatStates_;
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     */
    public java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList() {
      return seatStates_;
    }
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     */
    public int getSeatStatesCount() {
      return seatStates_.size();
    }
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index) {
      return seatStates_.get(index);
    }

    public static final int DEALERPLAYERID_FIELD_NUMBER = 6;
    private int dealerPlayerId_;
    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     */
    public boolean hasDealerPlayerId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     */
    public int getDealerPlayerId() {
      return dealerPlayerId_;
    }

    private void initFields() {
      gameId_ = 0;
      plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
      encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
      smallBlind_ = 0;
      seatStates_ = java.util.Collections.emptyList();
      dealerPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSmallBlind()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPlainCards()) {
        if (!getPlainCards().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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, plainCards_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, encryptedCards_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, smallBlind_);
      }
      for (int i = 0; i < seatStates_.size(); i++) {
        output.writeEnum(5, seatStates_.get(i).getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, dealerPlayerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, plainCards_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, encryptedCards_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, smallBlind_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < seatStates_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(seatStates_.get(i).getNumber());
        }
        size += dataSize;
        size += 1 * seatStates_.size();
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, dealerPlayerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage 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(de.pokerth.protocol.ProtoBuf.HandStartMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code HandStartMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.HandStartMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:HandStartMessage)
        de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.HandStartMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        smallBlind_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        seatStates_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        dealerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.HandStartMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.HandStartMessage build() {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.HandStartMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = new de.pokerth.protocol.ProtoBuf.HandStartMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.plainCards_ = plainCards_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.encryptedCards_ = encryptedCards_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.smallBlind_ = smallBlind_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          seatStates_ = java.util.Collections.unmodifiableList(seatStates_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.seatStates_ = seatStates_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.dealerPlayerId_ = dealerPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.HandStartMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlainCards()) {
          mergePlainCards(other.getPlainCards());
        }
        if (other.hasEncryptedCards()) {
          setEncryptedCards(other.getEncryptedCards());
        }
        if (other.hasSmallBlind()) {
          setSmallBlind(other.getSmallBlind());
        }
        if (!other.seatStates_.isEmpty()) {
          if (seatStates_.isEmpty()) {
            seatStates_ = other.seatStates_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureSeatStatesIsMutable();
            seatStates_.addAll(other.seatStates_);
          }
          
        }
        if (other.hasDealerPlayerId()) {
          setDealerPlayerId(other.getDealerPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasSmallBlind()) {
          
          return false;
        }
        if (hasPlainCards()) {
          if (!getPlainCards().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public boolean hasPlainCards() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards() {
        return plainCards_;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder setPlainCards(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards value) {
        if (value == null) {
          throw new NullPointerException();
        }
        plainCards_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder setPlainCards(
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder builderForValue) {
        plainCards_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder mergePlainCards(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            plainCards_ != de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance()) {
          plainCards_ =
            de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.newBuilder(plainCards_).mergeFrom(value).buildPartial();
        } else {
          plainCards_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder clearPlainCards() {
        plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private com.google.protobuf.ByteString encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       */
      public boolean hasEncryptedCards() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       */
      public com.google.protobuf.ByteString getEncryptedCards() {
        return encryptedCards_;
      }
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       */
      public Builder setEncryptedCards(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        encryptedCards_ = value;
        
        return this;
      }
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       */
      public Builder clearEncryptedCards() {
        bitField0_ = (bitField0_ & ~0x00000004);
        encryptedCards_ = getDefaultInstance().getEncryptedCards();
        
        return this;
      }

      private int smallBlind_ ;
      /**
       * <code>required uint32 smallBlind = 4;</code>
       */
      public boolean hasSmallBlind() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 smallBlind = 4;</code>
       */
      public int getSmallBlind() {
        return smallBlind_;
      }
      /**
       * <code>required uint32 smallBlind = 4;</code>
       */
      public Builder setSmallBlind(int value) {
        bitField0_ |= 0x00000008;
        smallBlind_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 smallBlind = 4;</code>
       */
      public Builder clearSmallBlind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        smallBlind_ = 0;
        
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> seatStates_ =
        java.util.Collections.emptyList();
      private void ensureSeatStatesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          seatStates_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.NetPlayerState>(seatStates_);
          bitField0_ |= 0x00000010;
        }
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList() {
        return java.util.Collections.unmodifiableList(seatStates_);
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public int getSeatStatesCount() {
        return seatStates_.size();
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index) {
        return seatStates_.get(index);
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public Builder setSeatStates(
          int index, de.pokerth.protocol.ProtoBuf.NetPlayerState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSeatStatesIsMutable();
        seatStates_.set(index, value);
        
        return this;
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public Builder addSeatStates(de.pokerth.protocol.ProtoBuf.NetPlayerState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSeatStatesIsMutable();
        seatStates_.add(value);
        
        return this;
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public Builder addAllSeatStates(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.NetPlayerState> values) {
        ensureSeatStatesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, seatStates_);
        
        return this;
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       */
      public Builder clearSeatStates() {
        seatStates_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        
        return this;
      }

      private int dealerPlayerId_ ;
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       */
      public boolean hasDealerPlayerId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       */
      public int getDealerPlayerId() {
        return dealerPlayerId_;
      }
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       */
      public Builder setDealerPlayerId(int value) {
        bitField0_ |= 0x00000020;
        dealerPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       */
      public Builder clearDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        dealerPlayerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:HandStartMessage)
    }

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

    // @@protoc_insertion_point(class_scope:HandStartMessage)
  }

  public interface PlayersTurnMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayersTurnMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();
  }
  /**
   * Protobuf type {@code PlayersTurnMessage}
   */
  public static final class PlayersTurnMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayersTurnMessage)
      PlayersTurnMessageOrBuilder {
    // Use PlayersTurnMessage.newBuilder() to construct.
    private PlayersTurnMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayersTurnMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayersTurnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayersTurnMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                gameState_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayersTurnMessage> PARSER =
        new com.google.protobuf.AbstractParser<PlayersTurnMessage>() {
      public PlayersTurnMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayersTurnMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameState_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage 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(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayersTurnMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayersTurnMessage)
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = new de.pokerth.protocol.ProtoBuf.PlayersTurnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameState_ = gameState_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGameState()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayersTurnMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PlayersTurnMessage)
  }

  public interface MyActionRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MyActionRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 handNum = 2;</code>
     */
    boolean hasHandNum();
    /**
     * <code>required uint32 handNum = 2;</code>
     */
    int getHandNum();

    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();

    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     */
    boolean hasMyAction();
    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction();

    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     */
    boolean hasMyRelativeBet();
    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     */
    int getMyRelativeBet();
  }
  /**
   * Protobuf type {@code MyActionRequestMessage}
   */
  public static final class MyActionRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:MyActionRequestMessage)
      MyActionRequestMessageOrBuilder {
    // Use MyActionRequestMessage.newBuilder() to construct.
    private MyActionRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private MyActionRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public MyActionRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private MyActionRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              handNum_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                gameState_ = value;
              }
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerAction value = de.pokerth.protocol.ProtoBuf.NetPlayerAction.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000008;
                myAction_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              myRelativeBet_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<MyActionRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<MyActionRequestMessage>() {
      public MyActionRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MyActionRequestMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int HANDNUM_FIELD_NUMBER = 2;
    private int handNum_;
    /**
     * <code>required uint32 handNum = 2;</code>
     */
    public boolean hasHandNum() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 handNum = 2;</code>
     */
    public int getHandNum() {
      return handNum_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }

    public static final int MYACTION_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.NetPlayerAction myAction_;
    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     */
    public boolean hasMyAction() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction() {
      return myAction_;
    }

    public static final int MYRELATIVEBET_FIELD_NUMBER = 5;
    private int myRelativeBet_;
    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     */
    public boolean hasMyRelativeBet() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     */
    public int getMyRelativeBet() {
      return myRelativeBet_;
    }

    private void initFields() {
      gameId_ = 0;
      handNum_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      myRelativeBet_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHandNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyRelativeBet()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, handNum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, myAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, myRelativeBet_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, handNum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, myAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, myRelativeBet_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage 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(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code MyActionRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:MyActionRequestMessage)
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        handNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000004);
        myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        bitField0_ = (bitField0_ & ~0x00000008);
        myRelativeBet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = new de.pokerth.protocol.ProtoBuf.MyActionRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.handNum_ = handNum_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameState_ = gameState_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.myAction_ = myAction_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.myRelativeBet_ = myRelativeBet_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasHandNum()) {
          setHandNum(other.getHandNum());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        if (other.hasMyAction()) {
          setMyAction(other.getMyAction());
        }
        if (other.hasMyRelativeBet()) {
          setMyRelativeBet(other.getMyRelativeBet());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasHandNum()) {
          
          return false;
        }
        if (!hasGameState()) {
          
          return false;
        }
        if (!hasMyAction()) {
          
          return false;
        }
        if (!hasMyRelativeBet()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int handNum_ ;
      /**
       * <code>required uint32 handNum = 2;</code>
       */
      public boolean hasHandNum() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 handNum = 2;</code>
       */
      public int getHandNum() {
        return handNum_;
      }
      /**
       * <code>required uint32 handNum = 2;</code>
       */
      public Builder setHandNum(int value) {
        bitField0_ |= 0x00000002;
        handNum_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 handNum = 2;</code>
       */
      public Builder clearHandNum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        handNum_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetPlayerAction myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       */
      public boolean hasMyAction() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction() {
        return myAction_;
      }
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       */
      public Builder setMyAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        myAction_ = value;
        
        return this;
      }
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       */
      public Builder clearMyAction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        
        return this;
      }

      private int myRelativeBet_ ;
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       */
      public boolean hasMyRelativeBet() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       */
      public int getMyRelativeBet() {
        return myRelativeBet_;
      }
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       */
      public Builder setMyRelativeBet(int value) {
        bitField0_ |= 0x00000010;
        myRelativeBet_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       */
      public Builder clearMyRelativeBet() {
        bitField0_ = (bitField0_ & ~0x00000010);
        myRelativeBet_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:MyActionRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:MyActionRequestMessage)
  }

  public interface YourActionRejectedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:YourActionRejectedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required .NetGameState gameState = 2;</code>
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();

    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     */
    boolean hasYourAction();
    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction();

    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     */
    boolean hasYourRelativeBet();
    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     */
    int getYourRelativeBet();

    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     */
    boolean hasRejectionReason();
    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     */
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason();
  }
  /**
   * Protobuf type {@code YourActionRejectedMessage}
   */
  public static final class YourActionRejectedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:YourActionRejectedMessage)
      YourActionRejectedMessageOrBuilder {
    // Use YourActionRejectedMessage.newBuilder() to construct.
    private YourActionRejectedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private YourActionRejectedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public YourActionRejectedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private YourActionRejectedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                gameState_ = value;
              }
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerAction value = de.pokerth.protocol.ProtoBuf.NetPlayerAction.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                yourAction_ = value;
              }
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              yourRelativeBet_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason value = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000010;
                rejectionReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<YourActionRejectedMessage> PARSER =
        new com.google.protobuf.AbstractParser<YourActionRejectedMessage>() {
      public YourActionRejectedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new YourActionRejectedMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code YourActionRejectedMessage.RejectionReason}
     */
    public enum RejectionReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>rejectedInvalidGameState = 1;</code>
       */
      rejectedInvalidGameState(0, 1),
      /**
       * <code>rejectedNotYourTurn = 2;</code>
       */
      rejectedNotYourTurn(1, 2),
      /**
       * <code>rejectedActionNotAllowed = 3;</code>
       */
      rejectedActionNotAllowed(2, 3),
      ;

      /**
       * <code>rejectedInvalidGameState = 1;</code>
       */
      public static final int rejectedInvalidGameState_VALUE = 1;
      /**
       * <code>rejectedNotYourTurn = 2;</code>
       */
      public static final int rejectedNotYourTurn_VALUE = 2;
      /**
       * <code>rejectedActionNotAllowed = 3;</code>
       */
      public static final int rejectedActionNotAllowed_VALUE = 3;


      public final int getNumber() { return value; }

      public static RejectionReason valueOf(int value) {
        switch (value) {
          case 1: return rejectedInvalidGameState;
          case 2: return rejectedNotYourTurn;
          case 3: return rejectedActionNotAllowed;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:YourActionRejectedMessage.RejectionReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    /**
     * <code>required .NetGameState gameState = 2;</code>
     */
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .NetGameState gameState = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }

    public static final int YOURACTION_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetPlayerAction yourAction_;
    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     */
    public boolean hasYourAction() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction() {
      return yourAction_;
    }

    public static final int YOURRELATIVEBET_FIELD_NUMBER = 4;
    private int yourRelativeBet_;
    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     */
    public boolean hasYourRelativeBet() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     */
    public int getYourRelativeBet() {
      return yourRelativeBet_;
    }

    public static final int REJECTIONREASON_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason rejectionReason_;
    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     */
    public boolean hasRejectionReason() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     */
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason() {
      return rejectionReason_;
    }

    private void initFields() {
      gameId_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      yourRelativeBet_ = 0;
      rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasYourAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasYourRelativeBet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRejectionReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, yourAction_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, yourRelativeBet_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeEnum(5, rejectionReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, yourAction_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, yourRelativeBet_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, rejectionReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage 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(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code YourActionRejectedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:YourActionRejectedMessage)
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000002);
        yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        bitField0_ = (bitField0_ & ~0x00000004);
        yourRelativeBet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage build() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = new de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gameState_ = gameState_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.yourAction_ = yourAction_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.yourRelativeBet_ = yourRelativeBet_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.rejectionReason_ = rejectionReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        if (other.hasYourAction()) {
          setYourAction(other.getYourAction());
        }
        if (other.hasYourRelativeBet()) {
          setYourRelativeBet(other.getYourRelativeBet());
        }
        if (other.hasRejectionReason()) {
          setRejectionReason(other.getRejectionReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasGameState()) {
          
          return false;
        }
        if (!hasYourAction()) {
          
          return false;
        }
        if (!hasYourRelativeBet()) {
          
          return false;
        }
        if (!hasRejectionReason()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      /**
       * <code>required .NetGameState gameState = 2;</code>
       */
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .NetGameState gameState = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      /**
       * <code>required .NetGameState gameState = 2;</code>
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameState_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 2;</code>
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetPlayerAction yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       */
      public boolean hasYourAction() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction() {
        return yourAction_;
      }
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       */
      public Builder setYourAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        yourAction_ = value;
        
        return this;
      }
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       */
      public Builder clearYourAction() {
        bitField0_ = (bitField0_ & ~0x00000004);
        yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        
        return this;
      }

      private int yourRelativeBet_ ;
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       */
      public boolean hasYourRelativeBet() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       */
      public int getYourRelativeBet() {
        return yourRelativeBet_;
      }
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       */
      public Builder setYourRelativeBet(int value) {
        bitField0_ |= 0x00000008;
        yourRelativeBet_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       */
      public Builder clearYourRelativeBet() {
        bitField0_ = (bitField0_ & ~0x00000008);
        yourRelativeBet_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       */
      public boolean hasRejectionReason() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason() {
        return rejectionReason_;
      }
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       */
      public Builder setRejectionReason(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        rejectionReason_ = value;
        
        return this;
      }
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       */
      public Builder clearRejectionReason() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:YourActionRejectedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:YourActionRejectedMessage)
  }

  public interface PlayersActionDoneMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayersActionDoneMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();

    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     */
    boolean hasPlayerAction();
    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction();

    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     */
    boolean hasTotalPlayerBet();
    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     */
    int getTotalPlayerBet();

    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    boolean hasPlayerMoney();
    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    int getPlayerMoney();

    /**
     * <code>required uint32 highestSet = 7;</code>
     */
    boolean hasHighestSet();
    /**
     * <code>required uint32 highestSet = 7;</code>
     */
    int getHighestSet();

    /**
     * <code>required uint32 minimumRaise = 8;</code>
     */
    boolean hasMinimumRaise();
    /**
     * <code>required uint32 minimumRaise = 8;</code>
     */
    int getMinimumRaise();
  }
  /**
   * Protobuf type {@code PlayersActionDoneMessage}
   */
  public static final class PlayersActionDoneMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayersActionDoneMessage)
      PlayersActionDoneMessageOrBuilder {
    // Use PlayersActionDoneMessage.newBuilder() to construct.
    private PlayersActionDoneMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayersActionDoneMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayersActionDoneMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayersActionDoneMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                gameState_ = value;
              }
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerAction value = de.pokerth.protocol.ProtoBuf.NetPlayerAction.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000008;
                playerAction_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              totalPlayerBet_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              playerMoney_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              highestSet_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              minimumRaise_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayersActionDoneMessage> PARSER =
        new com.google.protobuf.AbstractParser<PlayersActionDoneMessage>() {
      public PlayersActionDoneMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayersActionDoneMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .NetGameState gameState = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }

    public static final int PLAYERACTION_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.NetPlayerAction playerAction_;
    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     */
    public boolean hasPlayerAction() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction() {
      return playerAction_;
    }

    public static final int TOTALPLAYERBET_FIELD_NUMBER = 5;
    private int totalPlayerBet_;
    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     */
    public boolean hasTotalPlayerBet() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     */
    public int getTotalPlayerBet() {
      return totalPlayerBet_;
    }

    public static final int PLAYERMONEY_FIELD_NUMBER = 6;
    private int playerMoney_;
    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required uint32 playerMoney = 6;</code>
     */
    public int getPlayerMoney() {
      return playerMoney_;
    }

    public static final int HIGHESTSET_FIELD_NUMBER = 7;
    private int highestSet_;
    /**
     * <code>required uint32 highestSet = 7;</code>
     */
    public boolean hasHighestSet() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required uint32 highestSet = 7;</code>
     */
    public int getHighestSet() {
      return highestSet_;
    }

    public static final int MINIMUMRAISE_FIELD_NUMBER = 8;
    private int minimumRaise_;
    /**
     * <code>required uint32 minimumRaise = 8;</code>
     */
    public boolean hasMinimumRaise() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>required uint32 minimumRaise = 8;</code>
     */
    public int getMinimumRaise() {
      return minimumRaise_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      totalPlayerBet_ = 0;
      playerMoney_ = 0;
      highestSet_ = 0;
      minimumRaise_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTotalPlayerBet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerMoney()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHighestSet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMinimumRaise()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, playerAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, totalPlayerBet_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, highestSet_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, minimumRaise_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, playerAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, totalPlayerBet_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, highestSet_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, minimumRaise_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage 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(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayersActionDoneMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayersActionDoneMessage)
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        bitField0_ = (bitField0_ & ~0x00000008);
        totalPlayerBet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        highestSet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        minimumRaise_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = new de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameState_ = gameState_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerAction_ = playerAction_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.totalPlayerBet_ = totalPlayerBet_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.playerMoney_ = playerMoney_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.highestSet_ = highestSet_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.minimumRaise_ = minimumRaise_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        if (other.hasPlayerAction()) {
          setPlayerAction(other.getPlayerAction());
        }
        if (other.hasTotalPlayerBet()) {
          setTotalPlayerBet(other.getTotalPlayerBet());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        if (other.hasHighestSet()) {
          setHighestSet(other.getHighestSet());
        }
        if (other.hasMinimumRaise()) {
          setMinimumRaise(other.getMinimumRaise());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGameState()) {
          
          return false;
        }
        if (!hasPlayerAction()) {
          
          return false;
        }
        if (!hasTotalPlayerBet()) {
          
          return false;
        }
        if (!hasPlayerMoney()) {
          
          return false;
        }
        if (!hasHighestSet()) {
          
          return false;
        }
        if (!hasMinimumRaise()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value;
        
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetPlayerAction playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       */
      public boolean hasPlayerAction() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction() {
        return playerAction_;
      }
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       */
      public Builder setPlayerAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        playerAction_ = value;
        
        return this;
      }
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       */
      public Builder clearPlayerAction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        
        return this;
      }

      private int totalPlayerBet_ ;
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       */
      public boolean hasTotalPlayerBet() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       */
      public int getTotalPlayerBet() {
        return totalPlayerBet_;
      }
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       */
      public Builder setTotalPlayerBet(int value) {
        bitField0_ |= 0x00000010;
        totalPlayerBet_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       */
      public Builder clearTotalPlayerBet() {
        bitField0_ = (bitField0_ & ~0x00000010);
        totalPlayerBet_ = 0;
        
        return this;
      }

      private int playerMoney_ ;
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public int getPlayerMoney() {
        return playerMoney_;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public Builder setPlayerMoney(int value) {
        bitField0_ |= 0x00000020;
        playerMoney_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       */
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerMoney_ = 0;
        
        return this;
      }

      private int highestSet_ ;
      /**
       * <code>required uint32 highestSet = 7;</code>
       */
      public boolean hasHighestSet() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required uint32 highestSet = 7;</code>
       */
      public int getHighestSet() {
        return highestSet_;
      }
      /**
       * <code>required uint32 highestSet = 7;</code>
       */
      public Builder setHighestSet(int value) {
        bitField0_ |= 0x00000040;
        highestSet_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 highestSet = 7;</code>
       */
      public Builder clearHighestSet() {
        bitField0_ = (bitField0_ & ~0x00000040);
        highestSet_ = 0;
        
        return this;
      }

      private int minimumRaise_ ;
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       */
      public boolean hasMinimumRaise() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       */
      public int getMinimumRaise() {
        return minimumRaise_;
      }
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       */
      public Builder setMinimumRaise(int value) {
        bitField0_ |= 0x00000080;
        minimumRaise_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       */
      public Builder clearMinimumRaise() {
        bitField0_ = (bitField0_ & ~0x00000080);
        minimumRaise_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayersActionDoneMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PlayersActionDoneMessage)
  }

  public interface DealFlopCardsMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DealFlopCardsMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 flopCard1 = 2;</code>
     */
    boolean hasFlopCard1();
    /**
     * <code>required uint32 flopCard1 = 2;</code>
     */
    int getFlopCard1();

    /**
     * <code>required uint32 flopCard2 = 3;</code>
     */
    boolean hasFlopCard2();
    /**
     * <code>required uint32 flopCard2 = 3;</code>
     */
    int getFlopCard2();

    /**
     * <code>required uint32 flopCard3 = 4;</code>
     */
    boolean hasFlopCard3();
    /**
     * <code>required uint32 flopCard3 = 4;</code>
     */
    int getFlopCard3();
  }
  /**
   * Protobuf type {@code DealFlopCardsMessage}
   */
  public static final class DealFlopCardsMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:DealFlopCardsMessage)
      DealFlopCardsMessageOrBuilder {
    // Use DealFlopCardsMessage.newBuilder() to construct.
    private DealFlopCardsMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DealFlopCardsMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public DealFlopCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private DealFlopCardsMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              flopCard1_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              flopCard2_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              flopCard3_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<DealFlopCardsMessage> PARSER =
        new com.google.protobuf.AbstractParser<DealFlopCardsMessage>() {
      public DealFlopCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DealFlopCardsMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int FLOPCARD1_FIELD_NUMBER = 2;
    private int flopCard1_;
    /**
     * <code>required uint32 flopCard1 = 2;</code>
     */
    public boolean hasFlopCard1() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 flopCard1 = 2;</code>
     */
    public int getFlopCard1() {
      return flopCard1_;
    }

    public static final int FLOPCARD2_FIELD_NUMBER = 3;
    private int flopCard2_;
    /**
     * <code>required uint32 flopCard2 = 3;</code>
     */
    public boolean hasFlopCard2() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 flopCard2 = 3;</code>
     */
    public int getFlopCard2() {
      return flopCard2_;
    }

    public static final int FLOPCARD3_FIELD_NUMBER = 4;
    private int flopCard3_;
    /**
     * <code>required uint32 flopCard3 = 4;</code>
     */
    public boolean hasFlopCard3() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 flopCard3 = 4;</code>
     */
    public int getFlopCard3() {
      return flopCard3_;
    }

    private void initFields() {
      gameId_ = 0;
      flopCard1_ = 0;
      flopCard2_ = 0;
      flopCard3_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFlopCard1()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFlopCard2()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFlopCard3()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, flopCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, flopCard2_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, flopCard3_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, flopCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, flopCard2_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, flopCard3_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage 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(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code DealFlopCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:DealFlopCardsMessage)
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        flopCard1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        flopCard2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        flopCard3_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = new de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.flopCard1_ = flopCard1_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.flopCard2_ = flopCard2_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.flopCard3_ = flopCard3_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasFlopCard1()) {
          setFlopCard1(other.getFlopCard1());
        }
        if (other.hasFlopCard2()) {
          setFlopCard2(other.getFlopCard2());
        }
        if (other.hasFlopCard3()) {
          setFlopCard3(other.getFlopCard3());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasFlopCard1()) {
          
          return false;
        }
        if (!hasFlopCard2()) {
          
          return false;
        }
        if (!hasFlopCard3()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int flopCard1_ ;
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       */
      public boolean hasFlopCard1() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       */
      public int getFlopCard1() {
        return flopCard1_;
      }
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       */
      public Builder setFlopCard1(int value) {
        bitField0_ |= 0x00000002;
        flopCard1_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       */
      public Builder clearFlopCard1() {
        bitField0_ = (bitField0_ & ~0x00000002);
        flopCard1_ = 0;
        
        return this;
      }

      private int flopCard2_ ;
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       */
      public boolean hasFlopCard2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       */
      public int getFlopCard2() {
        return flopCard2_;
      }
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       */
      public Builder setFlopCard2(int value) {
        bitField0_ |= 0x00000004;
        flopCard2_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       */
      public Builder clearFlopCard2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        flopCard2_ = 0;
        
        return this;
      }

      private int flopCard3_ ;
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       */
      public boolean hasFlopCard3() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       */
      public int getFlopCard3() {
        return flopCard3_;
      }
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       */
      public Builder setFlopCard3(int value) {
        bitField0_ |= 0x00000008;
        flopCard3_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       */
      public Builder clearFlopCard3() {
        bitField0_ = (bitField0_ & ~0x00000008);
        flopCard3_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DealFlopCardsMessage)
    }

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

    // @@protoc_insertion_point(class_scope:DealFlopCardsMessage)
  }

  public interface DealTurnCardMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DealTurnCardMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 turnCard = 2;</code>
     */
    boolean hasTurnCard();
    /**
     * <code>required uint32 turnCard = 2;</code>
     */
    int getTurnCard();
  }
  /**
   * Protobuf type {@code DealTurnCardMessage}
   */
  public static final class DealTurnCardMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:DealTurnCardMessage)
      DealTurnCardMessageOrBuilder {
    // Use DealTurnCardMessage.newBuilder() to construct.
    private DealTurnCardMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DealTurnCardMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public DealTurnCardMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private DealTurnCardMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              turnCard_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<DealTurnCardMessage> PARSER =
        new com.google.protobuf.AbstractParser<DealTurnCardMessage>() {
      public DealTurnCardMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DealTurnCardMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int TURNCARD_FIELD_NUMBER = 2;
    private int turnCard_;
    /**
     * <code>required uint32 turnCard = 2;</code>
     */
    public boolean hasTurnCard() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 turnCard = 2;</code>
     */
    public int getTurnCard() {
      return turnCard_;
    }

    private void initFields() {
      gameId_ = 0;
      turnCard_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTurnCard()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, turnCard_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, turnCard_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage 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(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code DealTurnCardMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:DealTurnCardMessage)
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage build() {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = new de.pokerth.protocol.ProtoBuf.DealTurnCardMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.turnCard_ = turnCard_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasTurnCard()) {
          setTurnCard(other.getTurnCard());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int turnCard_ ;
      /**
       * <code>required uint32 turnCard = 2;</code>
       */
      public boolean hasTurnCard() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 turnCard = 2;</code>
       */
      public int getTurnCard() {
        return turnCard_;
      }
      /**
       * <code>required uint32 turnCard = 2;</code>
       */
      public Builder setTurnCard(int value) {
        bitField0_ |= 0x00000002;
        turnCard_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 turnCard = 2;</code>
       */
      public Builder clearTurnCard() {
        bitField0_ = (bitField0_ & ~0x00000002);
        turnCard_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DealTurnCardMessage)
    }

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

    // @@protoc_insertion_point(class_scope:DealTurnCardMessage)
  }

  public interface DealRiverCardMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DealRiverCardMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 riverCard = 2;</code>
     */
    boolean hasRiverCard();
    /**
     * <code>required uint32 riverCard = 2;</code>
     */
    int getRiverCard();
  }
  /**
   * Protobuf type {@code DealRiverCardMessage}
   */
  public static final class DealRiverCardMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:DealRiverCardMessage)
      DealRiverCardMessageOrBuilder {
    // Use DealRiverCardMessage.newBuilder() to construct.
    private DealRiverCardMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DealRiverCardMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public DealRiverCardMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private DealRiverCardMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              riverCard_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<DealRiverCardMessage> PARSER =
        new com.google.protobuf.AbstractParser<DealRiverCardMessage>() {
      public DealRiverCardMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DealRiverCardMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int RIVERCARD_FIELD_NUMBER = 2;
    private int riverCard_;
    /**
     * <code>required uint32 riverCard = 2;</code>
     */
    public boolean hasRiverCard() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 riverCard = 2;</code>
     */
    public int getRiverCard() {
      return riverCard_;
    }

    private void initFields() {
      gameId_ = 0;
      riverCard_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRiverCard()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, riverCard_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, riverCard_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage 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(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code DealRiverCardMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:DealRiverCardMessage)
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage build() {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = new de.pokerth.protocol.ProtoBuf.DealRiverCardMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.riverCard_ = riverCard_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasRiverCard()) {
          setRiverCard(other.getRiverCard());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int riverCard_ ;
      /**
       * <code>required uint32 riverCard = 2;</code>
       */
      public boolean hasRiverCard() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 riverCard = 2;</code>
       */
      public int getRiverCard() {
        return riverCard_;
      }
      /**
       * <code>required uint32 riverCard = 2;</code>
       */
      public Builder setRiverCard(int value) {
        bitField0_ |= 0x00000002;
        riverCard_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 riverCard = 2;</code>
       */
      public Builder clearRiverCard() {
        bitField0_ = (bitField0_ & ~0x00000002);
        riverCard_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DealRiverCardMessage)
    }

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

    // @@protoc_insertion_point(class_scope:DealRiverCardMessage)
  }

  public interface AllInShowCardsMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AllInShowCardsMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> 
        getPlayersAllInList();
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index);
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    int getPlayersAllInCount();
  }
  /**
   * Protobuf type {@code AllInShowCardsMessage}
   */
  public static final class AllInShowCardsMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AllInShowCardsMessage)
      AllInShowCardsMessageOrBuilder {
    // Use AllInShowCardsMessage.newBuilder() to construct.
    private AllInShowCardsMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AllInShowCardsMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AllInShowCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AllInShowCardsMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playersAllIn_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn>();
                mutable_bitField0_ |= 0x00000002;
              }
              playersAllIn_.add(input.readMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playersAllIn_ = java.util.Collections.unmodifiableList(playersAllIn_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AllInShowCardsMessage> PARSER =
        new com.google.protobuf.AbstractParser<AllInShowCardsMessage>() {
      public AllInShowCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AllInShowCardsMessage(input, extensionRegistry);
      }
    };

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

    public interface PlayerAllInOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AllInShowCardsMessage.PlayerAllIn)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>required uint32 playerId = 1;</code>
       */
      boolean hasPlayerId();
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      int getPlayerId();

      /**
       * <code>required uint32 allInCard1 = 2;</code>
       */
      boolean hasAllInCard1();
      /**
       * <code>required uint32 allInCard1 = 2;</code>
       */
      int getAllInCard1();

      /**
       * <code>required uint32 allInCard2 = 3;</code>
       */
      boolean hasAllInCard2();
      /**
       * <code>required uint32 allInCard2 = 3;</code>
       */
      int getAllInCard2();
    }
    /**
     * Protobuf type {@code AllInShowCardsMessage.PlayerAllIn}
     */
    public static final class PlayerAllIn extends
        com.google.protobuf.GeneratedMessageLite implements
        // @@protoc_insertion_point(message_implements:AllInShowCardsMessage.PlayerAllIn)
        PlayerAllInOrBuilder {
      // Use PlayerAllIn.newBuilder() to construct.
      private PlayerAllIn(com.google.protobuf.GeneratedMessageLite.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlayerAllIn(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

      public PlayerAllIn getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.ByteString unknownFields;
      private PlayerAllIn(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.ByteString.Output unknownFieldsOutput =
            com.google.protobuf.ByteString.newOutput();
        com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
            com.google.protobuf.CodedOutputStream.newInstance(
                unknownFieldsOutput);
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                allInCard1_ = input.readUInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                allInCard2_ = input.readUInt32();
                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 {
          try {
            unknownFieldsCodedOutput.flush();
          } catch (java.io.IOException e) {
          // Should not happen
          } finally {
            unknownFields = unknownFieldsOutput.toByteString();
          }
          makeExtensionsImmutable();
        }
      }
      public static com.google.protobuf.Parser<PlayerAllIn> PARSER =
          new com.google.protobuf.AbstractParser<PlayerAllIn>() {
        public PlayerAllIn parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlayerAllIn(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      public static final int PLAYERID_FIELD_NUMBER = 1;
      private int playerId_;
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }

      public static final int ALLINCARD1_FIELD_NUMBER = 2;
      private int allInCard1_;
      /**
       * <code>required uint32 allInCard1 = 2;</code>
       */
      public boolean hasAllInCard1() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 allInCard1 = 2;</code>
       */
      public int getAllInCard1() {
        return allInCard1_;
      }

      public static final int ALLINCARD2_FIELD_NUMBER = 3;
      private int allInCard2_;
      /**
       * <code>required uint32 allInCard2 = 3;</code>
       */
      public boolean hasAllInCard2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 allInCard2 = 3;</code>
       */
      public int getAllInCard2() {
        return allInCard2_;
      }

      private void initFields() {
        playerId_ = 0;
        allInCard1_ = 0;
        allInCard2_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasPlayerId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasAllInCard1()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasAllInCard2()) {
          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.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, allInCard1_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeUInt32(3, allInCard2_);
        }
        output.writeRawBytes(unknownFields);
      }

      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
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, allInCard1_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(3, allInCard2_);
        }
        size += unknownFields.size();
        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 de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn 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(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      /**
       * Protobuf type {@code AllInShowCardsMessage.PlayerAllIn}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn, Builder>
          implements
          // @@protoc_insertion_point(builder_implements:AllInShowCardsMessage.PlayerAllIn)
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          allInCard1_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          allInCard2_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

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

        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance();
        }

        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn build() {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn buildPartial() {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn(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.allInCard1_ = allInCard1_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.allInCard2_ = allInCard2_;
          result.bitField0_ = to_bitField0_;
          return result;
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn other) {
          if (other == de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasAllInCard1()) {
            setAllInCard1(other.getAllInCard1());
          }
          if (other.hasAllInCard2()) {
            setAllInCard2(other.getAllInCard2());
          }
          setUnknownFields(
              getUnknownFields().concat(other.unknownFields));
          return this;
        }

        public final boolean isInitialized() {
          if (!hasPlayerId()) {
            
            return false;
          }
          if (!hasAllInCard1()) {
            
            return false;
          }
          if (!hasAllInCard2()) {
            
            return false;
          }
          return true;
        }

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

        private int playerId_ ;
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          
          return this;
        }

        private int allInCard1_ ;
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         */
        public boolean hasAllInCard1() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         */
        public int getAllInCard1() {
          return allInCard1_;
        }
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         */
        public Builder setAllInCard1(int value) {
          bitField0_ |= 0x00000002;
          allInCard1_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         */
        public Builder clearAllInCard1() {
          bitField0_ = (bitField0_ & ~0x00000002);
          allInCard1_ = 0;
          
          return this;
        }

        private int allInCard2_ ;
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         */
        public boolean hasAllInCard2() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         */
        public int getAllInCard2() {
          return allInCard2_;
        }
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         */
        public Builder setAllInCard2(int value) {
          bitField0_ |= 0x00000004;
          allInCard2_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         */
        public Builder clearAllInCard2() {
          bitField0_ = (bitField0_ & ~0x00000004);
          allInCard2_ = 0;
          
          return this;
        }

        // @@protoc_insertion_point(builder_scope:AllInShowCardsMessage.PlayerAllIn)
      }

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

      // @@protoc_insertion_point(class_scope:AllInShowCardsMessage.PlayerAllIn)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERSALLIN_FIELD_NUMBER = 2;
    private java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> playersAllIn_;
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> getPlayersAllInList() {
      return playersAllIn_;
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> 
        getPlayersAllInOrBuilderList() {
      return playersAllIn_;
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    public int getPlayersAllInCount() {
      return playersAllIn_.size();
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index) {
      return playersAllIn_.get(index);
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder getPlayersAllInOrBuilder(
        int index) {
      return playersAllIn_.get(index);
    }

    private void initFields() {
      gameId_ = 0;
      playersAllIn_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPlayersAllInCount(); i++) {
        if (!getPlayersAllIn(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.writeUInt32(1, gameId_);
      }
      for (int i = 0; i < playersAllIn_.size(); i++) {
        output.writeMessage(2, playersAllIn_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      for (int i = 0; i < playersAllIn_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playersAllIn_.get(i));
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage 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(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AllInShowCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AllInShowCardsMessage)
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playersAllIn_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playersAllIn_ = java.util.Collections.unmodifiableList(playersAllIn_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playersAllIn_ = playersAllIn_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (!other.playersAllIn_.isEmpty()) {
          if (playersAllIn_.isEmpty()) {
            playersAllIn_ = other.playersAllIn_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayersAllInIsMutable();
            playersAllIn_.addAll(other.playersAllIn_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> playersAllIn_ =
        java.util.Collections.emptyList();
      private void ensurePlayersAllInIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playersAllIn_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn>(playersAllIn_);
          bitField0_ |= 0x00000002;
         }
      }

      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> getPlayersAllInList() {
        return java.util.Collections.unmodifiableList(playersAllIn_);
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public int getPlayersAllInCount() {
        return playersAllIn_.size();
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index) {
        return playersAllIn_.get(index);
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder setPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayersAllInIsMutable();
        playersAllIn_.set(index, value);

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder setPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.set(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(value);

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(index, value);

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addAllPlayersAllIn(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> values) {
        ensurePlayersAllInIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playersAllIn_);

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder clearPlayersAllIn() {
        playersAllIn_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);

        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder removePlayersAllIn(int index) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:AllInShowCardsMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AllInShowCardsMessage)
  }

  public interface EndOfHandShowCardsMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EndOfHandShowCardsMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> 
        getPlayerResultsList();
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index);
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    int getPlayerResultsCount();
  }
  /**
   * Protobuf type {@code EndOfHandShowCardsMessage}
   */
  public static final class EndOfHandShowCardsMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:EndOfHandShowCardsMessage)
      EndOfHandShowCardsMessageOrBuilder {
    // Use EndOfHandShowCardsMessage.newBuilder() to construct.
    private EndOfHandShowCardsMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EndOfHandShowCardsMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public EndOfHandShowCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private EndOfHandShowCardsMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerResults_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.PlayerResult>();
                mutable_bitField0_ |= 0x00000002;
              }
              playerResults_.add(input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerResult.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerResults_ = java.util.Collections.unmodifiableList(playerResults_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<EndOfHandShowCardsMessage> PARSER =
        new com.google.protobuf.AbstractParser<EndOfHandShowCardsMessage>() {
      public EndOfHandShowCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EndOfHandShowCardsMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERRESULTS_FIELD_NUMBER = 2;
    private java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> playerResults_;
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> getPlayerResultsList() {
      return playerResults_;
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
        getPlayerResultsOrBuilderList() {
      return playerResults_;
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    public int getPlayerResultsCount() {
      return playerResults_.size();
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index) {
      return playerResults_.get(index);
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultsOrBuilder(
        int index) {
      return playerResults_.get(index);
    }

    private void initFields() {
      gameId_ = 0;
      playerResults_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPlayerResultsCount(); i++) {
        if (!getPlayerResults(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.writeUInt32(1, gameId_);
      }
      for (int i = 0; i < playerResults_.size(); i++) {
        output.writeMessage(2, playerResults_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      for (int i = 0; i < playerResults_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerResults_.get(i));
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage 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(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code EndOfHandShowCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:EndOfHandShowCardsMessage)
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerResults_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playerResults_ = java.util.Collections.unmodifiableList(playerResults_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playerResults_ = playerResults_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (!other.playerResults_.isEmpty()) {
          if (playerResults_.isEmpty()) {
            playerResults_ = other.playerResults_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayerResultsIsMutable();
            playerResults_.addAll(other.playerResults_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> playerResults_ =
        java.util.Collections.emptyList();
      private void ensurePlayerResultsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerResults_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.PlayerResult>(playerResults_);
          bitField0_ |= 0x00000002;
         }
      }

      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> getPlayerResultsList() {
        return java.util.Collections.unmodifiableList(playerResults_);
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public int getPlayerResultsCount() {
        return playerResults_.size();
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index) {
        return playerResults_.get(index);
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder setPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayerResultsIsMutable();
        playerResults_.set(index, value);

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder setPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        ensurePlayerResultsIsMutable();
        playerResults_.set(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayerResultsIsMutable();
        playerResults_.add(value);

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayerResultsIsMutable();
        playerResults_.add(index, value);

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(
          de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        ensurePlayerResultsIsMutable();
        playerResults_.add(builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        ensurePlayerResultsIsMutable();
        playerResults_.add(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addAllPlayerResults(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.PlayerResult> values) {
        ensurePlayerResultsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerResults_);

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder clearPlayerResults() {
        playerResults_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);

        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder removePlayerResults(int index) {
        ensurePlayerResultsIsMutable();
        playerResults_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:EndOfHandShowCardsMessage)
    }

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

    // @@protoc_insertion_point(class_scope:EndOfHandShowCardsMessage)
  }

  public interface EndOfHandHideCardsMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EndOfHandHideCardsMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required uint32 moneyWon = 3;</code>
     */
    boolean hasMoneyWon();
    /**
     * <code>required uint32 moneyWon = 3;</code>
     */
    int getMoneyWon();

    /**
     * <code>required uint32 playerMoney = 4;</code>
     */
    boolean hasPlayerMoney();
    /**
     * <code>required uint32 playerMoney = 4;</code>
     */
    int getPlayerMoney();
  }
  /**
   * Protobuf type {@code EndOfHandHideCardsMessage}
   */
  public static final class EndOfHandHideCardsMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:EndOfHandHideCardsMessage)
      EndOfHandHideCardsMessageOrBuilder {
    // Use EndOfHandHideCardsMessage.newBuilder() to construct.
    private EndOfHandHideCardsMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EndOfHandHideCardsMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public EndOfHandHideCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private EndOfHandHideCardsMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              moneyWon_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playerMoney_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<EndOfHandHideCardsMessage> PARSER =
        new com.google.protobuf.AbstractParser<EndOfHandHideCardsMessage>() {
      public EndOfHandHideCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EndOfHandHideCardsMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int MONEYWON_FIELD_NUMBER = 3;
    private int moneyWon_;
    /**
     * <code>required uint32 moneyWon = 3;</code>
     */
    public boolean hasMoneyWon() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 moneyWon = 3;</code>
     */
    public int getMoneyWon() {
      return moneyWon_;
    }

    public static final int PLAYERMONEY_FIELD_NUMBER = 4;
    private int playerMoney_;
    /**
     * <code>required uint32 playerMoney = 4;</code>
     */
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 playerMoney = 4;</code>
     */
    public int getPlayerMoney() {
      return playerMoney_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      moneyWon_ = 0;
      playerMoney_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMoneyWon()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerMoney()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, moneyWon_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, playerMoney_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, moneyWon_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, playerMoney_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage 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(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code EndOfHandHideCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:EndOfHandHideCardsMessage)
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        moneyWon_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = new de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.moneyWon_ = moneyWon_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerMoney_ = playerMoney_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasMoneyWon()) {
          setMoneyWon(other.getMoneyWon());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasMoneyWon()) {
          
          return false;
        }
        if (!hasPlayerMoney()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private int moneyWon_ ;
      /**
       * <code>required uint32 moneyWon = 3;</code>
       */
      public boolean hasMoneyWon() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 moneyWon = 3;</code>
       */
      public int getMoneyWon() {
        return moneyWon_;
      }
      /**
       * <code>required uint32 moneyWon = 3;</code>
       */
      public Builder setMoneyWon(int value) {
        bitField0_ |= 0x00000004;
        moneyWon_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 moneyWon = 3;</code>
       */
      public Builder clearMoneyWon() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moneyWon_ = 0;
        
        return this;
      }

      private int playerMoney_ ;
      /**
       * <code>required uint32 playerMoney = 4;</code>
       */
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 playerMoney = 4;</code>
       */
      public int getPlayerMoney() {
        return playerMoney_;
      }
      /**
       * <code>required uint32 playerMoney = 4;</code>
       */
      public Builder setPlayerMoney(int value) {
        bitField0_ |= 0x00000008;
        playerMoney_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerMoney = 4;</code>
       */
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerMoney_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:EndOfHandHideCardsMessage)
    }

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

    // @@protoc_insertion_point(class_scope:EndOfHandHideCardsMessage)
  }

  public interface ShowMyCardsRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShowMyCardsRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code ShowMyCardsRequestMessage}
   */
  public static final class ShowMyCardsRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ShowMyCardsRequestMessage)
      ShowMyCardsRequestMessageOrBuilder {
    // Use ShowMyCardsRequestMessage.newBuilder() to construct.
    private ShowMyCardsRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ShowMyCardsRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ShowMyCardsRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ShowMyCardsRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ShowMyCardsRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<ShowMyCardsRequestMessage>() {
      public ShowMyCardsRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ShowMyCardsRequestMessage(input, extensionRegistry);
      }
    };

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage 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(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ShowMyCardsRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ShowMyCardsRequestMessage)
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = new de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage(this);
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ShowMyCardsRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ShowMyCardsRequestMessage)
  }

  public interface AfterHandShowCardsMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AfterHandShowCardsMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     */
    boolean hasPlayerResult();
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult();
  }
  /**
   * Protobuf type {@code AfterHandShowCardsMessage}
   */
  public static final class AfterHandShowCardsMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AfterHandShowCardsMessage)
      AfterHandShowCardsMessageOrBuilder {
    // Use AfterHandShowCardsMessage.newBuilder() to construct.
    private AfterHandShowCardsMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AfterHandShowCardsMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AfterHandShowCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AfterHandShowCardsMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.PlayerResult.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = playerResult_.toBuilder();
              }
              playerResult_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerResult.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playerResult_);
                playerResult_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AfterHandShowCardsMessage> PARSER =
        new com.google.protobuf.AbstractParser<AfterHandShowCardsMessage>() {
      public AfterHandShowCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AfterHandShowCardsMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int PLAYERRESULT_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.PlayerResult playerResult_;
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     */
    public boolean hasPlayerResult() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult() {
      return playerResult_;
    }

    private void initFields() {
      playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPlayerResult().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, playerResult_);
      }
      output.writeRawBytes(unknownFields);
    }

    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, playerResult_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage 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(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AfterHandShowCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AfterHandShowCardsMessage)
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerResult_ = playerResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance()) return this;
        if (other.hasPlayerResult()) {
          mergePlayerResult(other.getPlayerResult());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerResult()) {
          
          return false;
        }
        if (!getPlayerResult().isInitialized()) {
          
          return false;
        }
        return true;
      }

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

      private de.pokerth.protocol.ProtoBuf.PlayerResult playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public boolean hasPlayerResult() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult() {
        return playerResult_;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder setPlayerResult(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerResult_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder setPlayerResult(
          de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        playerResult_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder mergePlayerResult(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            playerResult_ != de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance()) {
          playerResult_ =
            de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder(playerResult_).mergeFrom(value).buildPartial();
        } else {
          playerResult_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder clearPlayerResult() {
        playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AfterHandShowCardsMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AfterHandShowCardsMessage)
  }

  public interface EndOfGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EndOfGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     */
    boolean hasWinnerPlayerId();
    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     */
    int getWinnerPlayerId();
  }
  /**
   * Protobuf type {@code EndOfGameMessage}
   */
  public static final class EndOfGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:EndOfGameMessage)
      EndOfGameMessageOrBuilder {
    // Use EndOfGameMessage.newBuilder() to construct.
    private EndOfGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EndOfGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public EndOfGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private EndOfGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              winnerPlayerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<EndOfGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<EndOfGameMessage>() {
      public EndOfGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EndOfGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int WINNERPLAYERID_FIELD_NUMBER = 2;
    private int winnerPlayerId_;
    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     */
    public boolean hasWinnerPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     */
    public int getWinnerPlayerId() {
      return winnerPlayerId_;
    }

    private void initFields() {
      gameId_ = 0;
      winnerPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasWinnerPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, winnerPlayerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, winnerPlayerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage 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(de.pokerth.protocol.ProtoBuf.EndOfGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code EndOfGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:EndOfGameMessage)
        de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndOfGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = new de.pokerth.protocol.ProtoBuf.EndOfGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.winnerPlayerId_ = winnerPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndOfGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasWinnerPlayerId()) {
          setWinnerPlayerId(other.getWinnerPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int winnerPlayerId_ ;
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       */
      public boolean hasWinnerPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       */
      public int getWinnerPlayerId() {
        return winnerPlayerId_;
      }
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       */
      public Builder setWinnerPlayerId(int value) {
        bitField0_ |= 0x00000002;
        winnerPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       */
      public Builder clearWinnerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        winnerPlayerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:EndOfGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:EndOfGameMessage)
  }

  public interface PlayerIdChangedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PlayerIdChangedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     */
    boolean hasOldPlayerId();
    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     */
    int getOldPlayerId();

    /**
     * <code>required uint32 newPlayerId = 2;</code>
     */
    boolean hasNewPlayerId();
    /**
     * <code>required uint32 newPlayerId = 2;</code>
     */
    int getNewPlayerId();
  }
  /**
   * Protobuf type {@code PlayerIdChangedMessage}
   */
  public static final class PlayerIdChangedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PlayerIdChangedMessage)
      PlayerIdChangedMessageOrBuilder {
    // Use PlayerIdChangedMessage.newBuilder() to construct.
    private PlayerIdChangedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PlayerIdChangedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PlayerIdChangedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PlayerIdChangedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              oldPlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              newPlayerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PlayerIdChangedMessage> PARSER =
        new com.google.protobuf.AbstractParser<PlayerIdChangedMessage>() {
      public PlayerIdChangedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlayerIdChangedMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int OLDPLAYERID_FIELD_NUMBER = 1;
    private int oldPlayerId_;
    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     */
    public boolean hasOldPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     */
    public int getOldPlayerId() {
      return oldPlayerId_;
    }

    public static final int NEWPLAYERID_FIELD_NUMBER = 2;
    private int newPlayerId_;
    /**
     * <code>required uint32 newPlayerId = 2;</code>
     */
    public boolean hasNewPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 newPlayerId = 2;</code>
     */
    public int getNewPlayerId() {
      return newPlayerId_;
    }

    private void initFields() {
      oldPlayerId_ = 0;
      newPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasOldPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNewPlayerId()) {
        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.writeUInt32(1, oldPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, newPlayerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, oldPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newPlayerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage 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(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PlayerIdChangedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PlayerIdChangedMessage)
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = new de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.oldPlayerId_ = oldPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.newPlayerId_ = newPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance()) return this;
        if (other.hasOldPlayerId()) {
          setOldPlayerId(other.getOldPlayerId());
        }
        if (other.hasNewPlayerId()) {
          setNewPlayerId(other.getNewPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int oldPlayerId_ ;
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       */
      public boolean hasOldPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       */
      public int getOldPlayerId() {
        return oldPlayerId_;
      }
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       */
      public Builder setOldPlayerId(int value) {
        bitField0_ |= 0x00000001;
        oldPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       */
      public Builder clearOldPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        oldPlayerId_ = 0;
        
        return this;
      }

      private int newPlayerId_ ;
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       */
      public boolean hasNewPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       */
      public int getNewPlayerId() {
        return newPlayerId_;
      }
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       */
      public Builder setNewPlayerId(int value) {
        bitField0_ |= 0x00000002;
        newPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       */
      public Builder clearNewPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newPlayerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PlayerIdChangedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PlayerIdChangedMessage)
  }

  public interface AskKickPlayerMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AskKickPlayerMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code AskKickPlayerMessage}
   */
  public static final class AskKickPlayerMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AskKickPlayerMessage)
      AskKickPlayerMessageOrBuilder {
    // Use AskKickPlayerMessage.newBuilder() to construct.
    private AskKickPlayerMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AskKickPlayerMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AskKickPlayerMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AskKickPlayerMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AskKickPlayerMessage> PARSER =
        new com.google.protobuf.AbstractParser<AskKickPlayerMessage>() {
      public AskKickPlayerMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AskKickPlayerMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage 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(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AskKickPlayerMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AskKickPlayerMessage)
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage build() {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = new de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AskKickPlayerMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AskKickPlayerMessage)
  }

  public interface AskKickDeniedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AskKickDeniedMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     */
    boolean hasKickDeniedReason();
    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason();
  }
  /**
   * Protobuf type {@code AskKickDeniedMessage}
   */
  public static final class AskKickDeniedMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AskKickDeniedMessage)
      AskKickDeniedMessageOrBuilder {
    // Use AskKickDeniedMessage.newBuilder() to construct.
    private AskKickDeniedMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AskKickDeniedMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AskKickDeniedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AskKickDeniedMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason value = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                kickDeniedReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AskKickDeniedMessage> PARSER =
        new com.google.protobuf.AbstractParser<AskKickDeniedMessage>() {
      public AskKickDeniedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AskKickDeniedMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code AskKickDeniedMessage.KickDeniedReason}
     */
    public enum KickDeniedReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>kickDeniedInvalidGameState = 0;</code>
       */
      kickDeniedInvalidGameState(0, 0),
      /**
       * <code>kickDeniedNotPossible = 1;</code>
       */
      kickDeniedNotPossible(1, 1),
      /**
       * <code>kickDeniedTryAgainLater = 2;</code>
       */
      kickDeniedTryAgainLater(2, 2),
      /**
       * <code>kickDeniedAlreadyInProgress = 3;</code>
       */
      kickDeniedAlreadyInProgress(3, 3),
      /**
       * <code>kickDeniedInvalidPlayerId = 4;</code>
       */
      kickDeniedInvalidPlayerId(4, 4),
      ;

      /**
       * <code>kickDeniedInvalidGameState = 0;</code>
       */
      public static final int kickDeniedInvalidGameState_VALUE = 0;
      /**
       * <code>kickDeniedNotPossible = 1;</code>
       */
      public static final int kickDeniedNotPossible_VALUE = 1;
      /**
       * <code>kickDeniedTryAgainLater = 2;</code>
       */
      public static final int kickDeniedTryAgainLater_VALUE = 2;
      /**
       * <code>kickDeniedAlreadyInProgress = 3;</code>
       */
      public static final int kickDeniedAlreadyInProgress_VALUE = 3;
      /**
       * <code>kickDeniedInvalidPlayerId = 4;</code>
       */
      public static final int kickDeniedInvalidPlayerId_VALUE = 4;


      public final int getNumber() { return value; }

      public static KickDeniedReason valueOf(int value) {
        switch (value) {
          case 0: return kickDeniedInvalidGameState;
          case 1: return kickDeniedNotPossible;
          case 2: return kickDeniedTryAgainLater;
          case 3: return kickDeniedAlreadyInProgress;
          case 4: return kickDeniedInvalidPlayerId;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:AskKickDeniedMessage.KickDeniedReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int KICKDENIEDREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason kickDeniedReason_;
    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     */
    public boolean hasKickDeniedReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason() {
      return kickDeniedReason_;
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickDeniedReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, kickDeniedReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, kickDeniedReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage 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(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AskKickDeniedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AskKickDeniedMessage)
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage build() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = new de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.kickDeniedReason_ = kickDeniedReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasKickDeniedReason()) {
          setKickDeniedReason(other.getKickDeniedReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasKickDeniedReason()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       */
      public boolean hasKickDeniedReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason() {
        return kickDeniedReason_;
      }
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       */
      public Builder setKickDeniedReason(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        kickDeniedReason_ = value;
        
        return this;
      }
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       */
      public Builder clearKickDeniedReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AskKickDeniedMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AskKickDeniedMessage)
  }

  public interface StartKickPetitionMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:StartKickPetitionMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    int getPetitionId();

    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     */
    boolean hasProposingPlayerId();
    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     */
    int getProposingPlayerId();

    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     */
    boolean hasKickPlayerId();
    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     */
    int getKickPlayerId();

    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     */
    boolean hasKickTimeoutSec();
    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     */
    int getKickTimeoutSec();

    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     */
    boolean hasNumVotesNeededToKick();
    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     */
    int getNumVotesNeededToKick();
  }
  /**
   * Protobuf type {@code StartKickPetitionMessage}
   */
  public static final class StartKickPetitionMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:StartKickPetitionMessage)
      StartKickPetitionMessageOrBuilder {
    // Use StartKickPetitionMessage.newBuilder() to construct.
    private StartKickPetitionMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StartKickPetitionMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public StartKickPetitionMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private StartKickPetitionMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              proposingPlayerId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              kickPlayerId_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              kickTimeoutSec_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              numVotesNeededToKick_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<StartKickPetitionMessage> PARSER =
        new com.google.protobuf.AbstractParser<StartKickPetitionMessage>() {
      public StartKickPetitionMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StartKickPetitionMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int PROPOSINGPLAYERID_FIELD_NUMBER = 3;
    private int proposingPlayerId_;
    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     */
    public boolean hasProposingPlayerId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     */
    public int getProposingPlayerId() {
      return proposingPlayerId_;
    }

    public static final int KICKPLAYERID_FIELD_NUMBER = 4;
    private int kickPlayerId_;
    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     */
    public boolean hasKickPlayerId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     */
    public int getKickPlayerId() {
      return kickPlayerId_;
    }

    public static final int KICKTIMEOUTSEC_FIELD_NUMBER = 5;
    private int kickTimeoutSec_;
    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     */
    public boolean hasKickTimeoutSec() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     */
    public int getKickTimeoutSec() {
      return kickTimeoutSec_;
    }

    public static final int NUMVOTESNEEDEDTOKICK_FIELD_NUMBER = 6;
    private int numVotesNeededToKick_;
    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     */
    public boolean hasNumVotesNeededToKick() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     */
    public int getNumVotesNeededToKick() {
      return numVotesNeededToKick_;
    }

    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      proposingPlayerId_ = 0;
      kickPlayerId_ = 0;
      kickTimeoutSec_ = 0;
      numVotesNeededToKick_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasProposingPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickTimeoutSec()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesNeededToKick()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, proposingPlayerId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, kickPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, kickTimeoutSec_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, numVotesNeededToKick_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, proposingPlayerId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, kickPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, kickTimeoutSec_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, numVotesNeededToKick_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage 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(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code StartKickPetitionMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:StartKickPetitionMessage)
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        proposingPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        kickPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        kickTimeoutSec_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        numVotesNeededToKick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage build() {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = new de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.proposingPlayerId_ = proposingPlayerId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.kickPlayerId_ = kickPlayerId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.kickTimeoutSec_ = kickTimeoutSec_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.numVotesNeededToKick_ = numVotesNeededToKick_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasProposingPlayerId()) {
          setProposingPlayerId(other.getProposingPlayerId());
        }
        if (other.hasKickPlayerId()) {
          setKickPlayerId(other.getKickPlayerId());
        }
        if (other.hasKickTimeoutSec()) {
          setKickTimeoutSec(other.getKickTimeoutSec());
        }
        if (other.hasNumVotesNeededToKick()) {
          setNumVotesNeededToKick(other.getNumVotesNeededToKick());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasProposingPlayerId()) {
          
          return false;
        }
        if (!hasKickPlayerId()) {
          
          return false;
        }
        if (!hasKickTimeoutSec()) {
          
          return false;
        }
        if (!hasNumVotesNeededToKick()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }

      private int proposingPlayerId_ ;
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       */
      public boolean hasProposingPlayerId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       */
      public int getProposingPlayerId() {
        return proposingPlayerId_;
      }
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       */
      public Builder setProposingPlayerId(int value) {
        bitField0_ |= 0x00000004;
        proposingPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       */
      public Builder clearProposingPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        proposingPlayerId_ = 0;
        
        return this;
      }

      private int kickPlayerId_ ;
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       */
      public boolean hasKickPlayerId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       */
      public int getKickPlayerId() {
        return kickPlayerId_;
      }
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       */
      public Builder setKickPlayerId(int value) {
        bitField0_ |= 0x00000008;
        kickPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       */
      public Builder clearKickPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        kickPlayerId_ = 0;
        
        return this;
      }

      private int kickTimeoutSec_ ;
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       */
      public boolean hasKickTimeoutSec() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       */
      public int getKickTimeoutSec() {
        return kickTimeoutSec_;
      }
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       */
      public Builder setKickTimeoutSec(int value) {
        bitField0_ |= 0x00000010;
        kickTimeoutSec_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       */
      public Builder clearKickTimeoutSec() {
        bitField0_ = (bitField0_ & ~0x00000010);
        kickTimeoutSec_ = 0;
        
        return this;
      }

      private int numVotesNeededToKick_ ;
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       */
      public boolean hasNumVotesNeededToKick() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       */
      public int getNumVotesNeededToKick() {
        return numVotesNeededToKick_;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       */
      public Builder setNumVotesNeededToKick(int value) {
        bitField0_ |= 0x00000020;
        numVotesNeededToKick_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       */
      public Builder clearNumVotesNeededToKick() {
        bitField0_ = (bitField0_ & ~0x00000020);
        numVotesNeededToKick_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StartKickPetitionMessage)
    }

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

    // @@protoc_insertion_point(class_scope:StartKickPetitionMessage)
  }

  public interface VoteKickRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:VoteKickRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    int getPetitionId();

    /**
     * <code>required bool voteKick = 3;</code>
     */
    boolean hasVoteKick();
    /**
     * <code>required bool voteKick = 3;</code>
     */
    boolean getVoteKick();
  }
  /**
   * Protobuf type {@code VoteKickRequestMessage}
   */
  public static final class VoteKickRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:VoteKickRequestMessage)
      VoteKickRequestMessageOrBuilder {
    // Use VoteKickRequestMessage.newBuilder() to construct.
    private VoteKickRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private VoteKickRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public VoteKickRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private VoteKickRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              voteKick_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<VoteKickRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<VoteKickRequestMessage>() {
      public VoteKickRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new VoteKickRequestMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int VOTEKICK_FIELD_NUMBER = 3;
    private boolean voteKick_;
    /**
     * <code>required bool voteKick = 3;</code>
     */
    public boolean hasVoteKick() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required bool voteKick = 3;</code>
     */
    public boolean getVoteKick() {
      return voteKick_;
    }

    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      voteKick_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVoteKick()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, voteKick_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, voteKick_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage 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(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code VoteKickRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:VoteKickRequestMessage)
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        voteKick_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = new de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.voteKick_ = voteKick_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasVoteKick()) {
          setVoteKick(other.getVoteKick());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasVoteKick()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }

      private boolean voteKick_ ;
      /**
       * <code>required bool voteKick = 3;</code>
       */
      public boolean hasVoteKick() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required bool voteKick = 3;</code>
       */
      public boolean getVoteKick() {
        return voteKick_;
      }
      /**
       * <code>required bool voteKick = 3;</code>
       */
      public Builder setVoteKick(boolean value) {
        bitField0_ |= 0x00000004;
        voteKick_ = value;
        
        return this;
      }
      /**
       * <code>required bool voteKick = 3;</code>
       */
      public Builder clearVoteKick() {
        bitField0_ = (bitField0_ & ~0x00000004);
        voteKick_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:VoteKickRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:VoteKickRequestMessage)
  }

  public interface VoteKickReplyMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:VoteKickReplyMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    int getPetitionId();

    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     */
    boolean hasVoteKickReplyType();
    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType();
  }
  /**
   * Protobuf type {@code VoteKickReplyMessage}
   */
  public static final class VoteKickReplyMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:VoteKickReplyMessage)
      VoteKickReplyMessageOrBuilder {
    // Use VoteKickReplyMessage.newBuilder() to construct.
    private VoteKickReplyMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private VoteKickReplyMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public VoteKickReplyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private VoteKickReplyMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType value = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                voteKickReplyType_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<VoteKickReplyMessage> PARSER =
        new com.google.protobuf.AbstractParser<VoteKickReplyMessage>() {
      public VoteKickReplyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new VoteKickReplyMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code VoteKickReplyMessage.VoteKickReplyType}
     */
    public enum VoteKickReplyType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>voteKickAck = 0;</code>
       */
      voteKickAck(0, 0),
      /**
       * <code>voteKickDeniedInvalid = 1;</code>
       */
      voteKickDeniedInvalid(1, 1),
      /**
       * <code>voteKickDeniedAlreadyVoted = 2;</code>
       */
      voteKickDeniedAlreadyVoted(2, 2),
      ;

      /**
       * <code>voteKickAck = 0;</code>
       */
      public static final int voteKickAck_VALUE = 0;
      /**
       * <code>voteKickDeniedInvalid = 1;</code>
       */
      public static final int voteKickDeniedInvalid_VALUE = 1;
      /**
       * <code>voteKickDeniedAlreadyVoted = 2;</code>
       */
      public static final int voteKickDeniedAlreadyVoted_VALUE = 2;


      public final int getNumber() { return value; }

      public static VoteKickReplyType valueOf(int value) {
        switch (value) {
          case 0: return voteKickAck;
          case 1: return voteKickDeniedInvalid;
          case 2: return voteKickDeniedAlreadyVoted;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:VoteKickReplyMessage.VoteKickReplyType)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int VOTEKICKREPLYTYPE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType voteKickReplyType_;
    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     */
    public boolean hasVoteKickReplyType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType() {
      return voteKickReplyType_;
    }

    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVoteKickReplyType()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, voteKickReplyType_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, voteKickReplyType_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage 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(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code VoteKickReplyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:VoteKickReplyMessage)
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage build() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = new de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.voteKickReplyType_ = voteKickReplyType_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasVoteKickReplyType()) {
          setVoteKickReplyType(other.getVoteKickReplyType());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasVoteKickReplyType()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       */
      public boolean hasVoteKickReplyType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType() {
        return voteKickReplyType_;
      }
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       */
      public Builder setVoteKickReplyType(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        voteKickReplyType_ = value;
        
        return this;
      }
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       */
      public Builder clearVoteKickReplyType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:VoteKickReplyMessage)
    }

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

    // @@protoc_insertion_point(class_scope:VoteKickReplyMessage)
  }

  public interface KickPetitionUpdateMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:KickPetitionUpdateMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    int getPetitionId();

    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    boolean hasNumVotesAgainstKicking();
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    int getNumVotesAgainstKicking();

    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    boolean hasNumVotesInFavourOfKicking();
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    int getNumVotesInFavourOfKicking();

    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     */
    boolean hasNumVotesNeededToKick();
    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     */
    int getNumVotesNeededToKick();
  }
  /**
   * Protobuf type {@code KickPetitionUpdateMessage}
   */
  public static final class KickPetitionUpdateMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:KickPetitionUpdateMessage)
      KickPetitionUpdateMessageOrBuilder {
    // Use KickPetitionUpdateMessage.newBuilder() to construct.
    private KickPetitionUpdateMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private KickPetitionUpdateMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public KickPetitionUpdateMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private KickPetitionUpdateMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              numVotesAgainstKicking_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              numVotesInFavourOfKicking_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              numVotesNeededToKick_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<KickPetitionUpdateMessage> PARSER =
        new com.google.protobuf.AbstractParser<KickPetitionUpdateMessage>() {
      public KickPetitionUpdateMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new KickPetitionUpdateMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int NUMVOTESAGAINSTKICKING_FIELD_NUMBER = 3;
    private int numVotesAgainstKicking_;
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    public boolean hasNumVotesAgainstKicking() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    public int getNumVotesAgainstKicking() {
      return numVotesAgainstKicking_;
    }

    public static final int NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER = 4;
    private int numVotesInFavourOfKicking_;
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    public boolean hasNumVotesInFavourOfKicking() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    public int getNumVotesInFavourOfKicking() {
      return numVotesInFavourOfKicking_;
    }

    public static final int NUMVOTESNEEDEDTOKICK_FIELD_NUMBER = 5;
    private int numVotesNeededToKick_;
    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     */
    public boolean hasNumVotesNeededToKick() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     */
    public int getNumVotesNeededToKick() {
      return numVotesNeededToKick_;
    }

    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      numVotesAgainstKicking_ = 0;
      numVotesInFavourOfKicking_ = 0;
      numVotesNeededToKick_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesAgainstKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesInFavourOfKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesNeededToKick()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, numVotesNeededToKick_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, numVotesNeededToKick_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage 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(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code KickPetitionUpdateMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:KickPetitionUpdateMessage)
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        numVotesAgainstKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesInFavourOfKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesNeededToKick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage build() {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = new de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.numVotesAgainstKicking_ = numVotesAgainstKicking_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.numVotesInFavourOfKicking_ = numVotesInFavourOfKicking_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.numVotesNeededToKick_ = numVotesNeededToKick_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasNumVotesAgainstKicking()) {
          setNumVotesAgainstKicking(other.getNumVotesAgainstKicking());
        }
        if (other.hasNumVotesInFavourOfKicking()) {
          setNumVotesInFavourOfKicking(other.getNumVotesInFavourOfKicking());
        }
        if (other.hasNumVotesNeededToKick()) {
          setNumVotesNeededToKick(other.getNumVotesNeededToKick());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasNumVotesAgainstKicking()) {
          
          return false;
        }
        if (!hasNumVotesInFavourOfKicking()) {
          
          return false;
        }
        if (!hasNumVotesNeededToKick()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }

      private int numVotesAgainstKicking_ ;
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public boolean hasNumVotesAgainstKicking() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public int getNumVotesAgainstKicking() {
        return numVotesAgainstKicking_;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public Builder setNumVotesAgainstKicking(int value) {
        bitField0_ |= 0x00000004;
        numVotesAgainstKicking_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public Builder clearNumVotesAgainstKicking() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesAgainstKicking_ = 0;
        
        return this;
      }

      private int numVotesInFavourOfKicking_ ;
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public boolean hasNumVotesInFavourOfKicking() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public int getNumVotesInFavourOfKicking() {
        return numVotesInFavourOfKicking_;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public Builder setNumVotesInFavourOfKicking(int value) {
        bitField0_ |= 0x00000008;
        numVotesInFavourOfKicking_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public Builder clearNumVotesInFavourOfKicking() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesInFavourOfKicking_ = 0;
        
        return this;
      }

      private int numVotesNeededToKick_ ;
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       */
      public boolean hasNumVotesNeededToKick() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       */
      public int getNumVotesNeededToKick() {
        return numVotesNeededToKick_;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       */
      public Builder setNumVotesNeededToKick(int value) {
        bitField0_ |= 0x00000010;
        numVotesNeededToKick_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       */
      public Builder clearNumVotesNeededToKick() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numVotesNeededToKick_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:KickPetitionUpdateMessage)
    }

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

    // @@protoc_insertion_point(class_scope:KickPetitionUpdateMessage)
  }

  public interface EndKickPetitionMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EndKickPetitionMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    int getPetitionId();

    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    boolean hasNumVotesAgainstKicking();
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    int getNumVotesAgainstKicking();

    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    boolean hasNumVotesInFavourOfKicking();
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    int getNumVotesInFavourOfKicking();

    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     */
    boolean hasResultPlayerKicked();
    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     */
    int getResultPlayerKicked();

    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     */
    boolean hasPetitionEndReason();
    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason();
  }
  /**
   * Protobuf type {@code EndKickPetitionMessage}
   */
  public static final class EndKickPetitionMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:EndKickPetitionMessage)
      EndKickPetitionMessageOrBuilder {
    // Use EndKickPetitionMessage.newBuilder() to construct.
    private EndKickPetitionMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private EndKickPetitionMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public EndKickPetitionMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private EndKickPetitionMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              numVotesAgainstKicking_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              numVotesInFavourOfKicking_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              resultPlayerKicked_ = input.readUInt32();
              break;
            }
            case 48: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason value = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000020;
                petitionEndReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<EndKickPetitionMessage> PARSER =
        new com.google.protobuf.AbstractParser<EndKickPetitionMessage>() {
      public EndKickPetitionMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EndKickPetitionMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code EndKickPetitionMessage.PetitionEndReason}
     */
    public enum PetitionEndReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>petitionEndEnoughVotes = 0;</code>
       */
      petitionEndEnoughVotes(0, 0),
      /**
       * <code>petitionEndTooFewPlayers = 1;</code>
       */
      petitionEndTooFewPlayers(1, 1),
      /**
       * <code>petitionEndPlayerLeft = 2;</code>
       */
      petitionEndPlayerLeft(2, 2),
      /**
       * <code>petitionEndTimeout = 3;</code>
       */
      petitionEndTimeout(3, 3),
      ;

      /**
       * <code>petitionEndEnoughVotes = 0;</code>
       */
      public static final int petitionEndEnoughVotes_VALUE = 0;
      /**
       * <code>petitionEndTooFewPlayers = 1;</code>
       */
      public static final int petitionEndTooFewPlayers_VALUE = 1;
      /**
       * <code>petitionEndPlayerLeft = 2;</code>
       */
      public static final int petitionEndPlayerLeft_VALUE = 2;
      /**
       * <code>petitionEndTimeout = 3;</code>
       */
      public static final int petitionEndTimeout_VALUE = 3;


      public final int getNumber() { return value; }

      public static PetitionEndReason valueOf(int value) {
        switch (value) {
          case 0: return petitionEndEnoughVotes;
          case 1: return petitionEndTooFewPlayers;
          case 2: return petitionEndPlayerLeft;
          case 3: return petitionEndTimeout;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:EndKickPetitionMessage.PetitionEndReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     */
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int NUMVOTESAGAINSTKICKING_FIELD_NUMBER = 3;
    private int numVotesAgainstKicking_;
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    public boolean hasNumVotesAgainstKicking() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     */
    public int getNumVotesAgainstKicking() {
      return numVotesAgainstKicking_;
    }

    public static final int NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER = 4;
    private int numVotesInFavourOfKicking_;
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    public boolean hasNumVotesInFavourOfKicking() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     */
    public int getNumVotesInFavourOfKicking() {
      return numVotesInFavourOfKicking_;
    }

    public static final int RESULTPLAYERKICKED_FIELD_NUMBER = 5;
    private int resultPlayerKicked_;
    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     */
    public boolean hasResultPlayerKicked() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     */
    public int getResultPlayerKicked() {
      return resultPlayerKicked_;
    }

    public static final int PETITIONENDREASON_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason petitionEndReason_;
    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     */
    public boolean hasPetitionEndReason() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     */
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason() {
      return petitionEndReason_;
    }

    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      numVotesAgainstKicking_ = 0;
      numVotesInFavourOfKicking_ = 0;
      resultPlayerKicked_ = 0;
      petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesAgainstKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesInFavourOfKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResultPlayerKicked()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionEndReason()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, resultPlayerKicked_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeEnum(6, petitionEndReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, resultPlayerKicked_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, petitionEndReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage 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(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code EndKickPetitionMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:EndKickPetitionMessage)
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        numVotesAgainstKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesInFavourOfKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        resultPlayerKicked_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage build() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = new de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.numVotesAgainstKicking_ = numVotesAgainstKicking_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.numVotesInFavourOfKicking_ = numVotesInFavourOfKicking_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.resultPlayerKicked_ = resultPlayerKicked_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.petitionEndReason_ = petitionEndReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasNumVotesAgainstKicking()) {
          setNumVotesAgainstKicking(other.getNumVotesAgainstKicking());
        }
        if (other.hasNumVotesInFavourOfKicking()) {
          setNumVotesInFavourOfKicking(other.getNumVotesInFavourOfKicking());
        }
        if (other.hasResultPlayerKicked()) {
          setResultPlayerKicked(other.getResultPlayerKicked());
        }
        if (other.hasPetitionEndReason()) {
          setPetitionEndReason(other.getPetitionEndReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasNumVotesAgainstKicking()) {
          
          return false;
        }
        if (!hasNumVotesInFavourOfKicking()) {
          
          return false;
        }
        if (!hasResultPlayerKicked()) {
          
          return false;
        }
        if (!hasPetitionEndReason()) {
          
          return false;
        }
        return true;
      }

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

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }

      private int numVotesAgainstKicking_ ;
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public boolean hasNumVotesAgainstKicking() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public int getNumVotesAgainstKicking() {
        return numVotesAgainstKicking_;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public Builder setNumVotesAgainstKicking(int value) {
        bitField0_ |= 0x00000004;
        numVotesAgainstKicking_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       */
      public Builder clearNumVotesAgainstKicking() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesAgainstKicking_ = 0;
        
        return this;
      }

      private int numVotesInFavourOfKicking_ ;
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public boolean hasNumVotesInFavourOfKicking() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public int getNumVotesInFavourOfKicking() {
        return numVotesInFavourOfKicking_;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public Builder setNumVotesInFavourOfKicking(int value) {
        bitField0_ |= 0x00000008;
        numVotesInFavourOfKicking_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       */
      public Builder clearNumVotesInFavourOfKicking() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesInFavourOfKicking_ = 0;
        
        return this;
      }

      private int resultPlayerKicked_ ;
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       */
      public boolean hasResultPlayerKicked() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       */
      public int getResultPlayerKicked() {
        return resultPlayerKicked_;
      }
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       */
      public Builder setResultPlayerKicked(int value) {
        bitField0_ |= 0x00000010;
        resultPlayerKicked_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       */
      public Builder clearResultPlayerKicked() {
        bitField0_ = (bitField0_ & ~0x00000010);
        resultPlayerKicked_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       */
      public boolean hasPetitionEndReason() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason() {
        return petitionEndReason_;
      }
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       */
      public Builder setPetitionEndReason(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        petitionEndReason_ = value;
        
        return this;
      }
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       */
      public Builder clearPetitionEndReason() {
        bitField0_ = (bitField0_ & ~0x00000020);
        petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:EndKickPetitionMessage)
    }

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

    // @@protoc_insertion_point(class_scope:EndKickPetitionMessage)
  }

  public interface StatisticsMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:StatisticsMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> 
        getStatisticsDataList();
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index);
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    int getStatisticsDataCount();
  }
  /**
   * Protobuf type {@code StatisticsMessage}
   */
  public static final class StatisticsMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:StatisticsMessage)
      StatisticsMessageOrBuilder {
    // Use StatisticsMessage.newBuilder() to construct.
    private StatisticsMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StatisticsMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public StatisticsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private StatisticsMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                statisticsData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData>();
                mutable_bitField0_ |= 0x00000001;
              }
              statisticsData_.add(input.readMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.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)) {
          statisticsData_ = java.util.Collections.unmodifiableList(statisticsData_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<StatisticsMessage> PARSER =
        new com.google.protobuf.AbstractParser<StatisticsMessage>() {
      public StatisticsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StatisticsMessage(input, extensionRegistry);
      }
    };

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

    public interface StatisticsDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StatisticsMessage.StatisticsData)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       */
      boolean hasStatisticsType();
      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       */
      de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType();

      /**
       * <code>required uint32 statisticsValue = 2;</code>
       */
      boolean hasStatisticsValue();
      /**
       * <code>required uint32 statisticsValue = 2;</code>
       */
      int getStatisticsValue();
    }
    /**
     * Protobuf type {@code StatisticsMessage.StatisticsData}
     */
    public static final class StatisticsData extends
        com.google.protobuf.GeneratedMessageLite implements
        // @@protoc_insertion_point(message_implements:StatisticsMessage.StatisticsData)
        StatisticsDataOrBuilder {
      // Use StatisticsData.newBuilder() to construct.
      private StatisticsData(com.google.protobuf.GeneratedMessageLite.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private StatisticsData(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

      public StatisticsData getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.ByteString unknownFields;
      private StatisticsData(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.ByteString.Output unknownFieldsOutput =
            com.google.protobuf.ByteString.newOutput();
        com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
            com.google.protobuf.CodedOutputStream.newInstance(
                unknownFieldsOutput);
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType value = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.valueOf(rawValue);
                if (value == null) {
                  unknownFieldsCodedOutput.writeRawVarint32(tag);
                  unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  statisticsType_ = value;
                }
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                statisticsValue_ = input.readUInt32();
                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 {
          try {
            unknownFieldsCodedOutput.flush();
          } catch (java.io.IOException e) {
          // Should not happen
          } finally {
            unknownFields = unknownFieldsOutput.toByteString();
          }
          makeExtensionsImmutable();
        }
      }
      public static com.google.protobuf.Parser<StatisticsData> PARSER =
          new com.google.protobuf.AbstractParser<StatisticsData>() {
        public StatisticsData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new StatisticsData(input, extensionRegistry);
        }
      };

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

      /**
       * Protobuf enum {@code StatisticsMessage.StatisticsData.StatisticsType}
       */
      public enum StatisticsType
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <code>statNumberOfPlayers = 1;</code>
         */
        statNumberOfPlayers(0, 1),
        ;

        /**
         * <code>statNumberOfPlayers = 1;</code>
         */
        public static final int statNumberOfPlayers_VALUE = 1;


        public final int getNumber() { return value; }

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

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

        private final int value;

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

        // @@protoc_insertion_point(enum_scope:StatisticsMessage.StatisticsData.StatisticsType)
      }

      private int bitField0_;
      public static final int STATISTICSTYPE_FIELD_NUMBER = 1;
      private de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType statisticsType_;
      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       */
      public boolean hasStatisticsType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType() {
        return statisticsType_;
      }

      public static final int STATISTICSVALUE_FIELD_NUMBER = 2;
      private int statisticsValue_;
      /**
       * <code>required uint32 statisticsValue = 2;</code>
       */
      public boolean hasStatisticsValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 statisticsValue = 2;</code>
       */
      public int getStatisticsValue() {
        return statisticsValue_;
      }

      private void initFields() {
        statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
        statisticsValue_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasStatisticsType()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasStatisticsValue()) {
          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, statisticsType_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, statisticsValue_);
        }
        output.writeRawBytes(unknownFields);
      }

      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, statisticsType_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, statisticsValue_);
        }
        size += unknownFields.size();
        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 de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData 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(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      /**
       * Protobuf type {@code StatisticsMessage.StatisticsData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData, Builder>
          implements
          // @@protoc_insertion_point(builder_implements:StatisticsMessage.StatisticsData)
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
          bitField0_ = (bitField0_ & ~0x00000001);
          statisticsValue_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

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

        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance();
        }

        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData build() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData buildPartial() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = new de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.statisticsType_ = statisticsType_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.statisticsValue_ = statisticsValue_;
          result.bitField0_ = to_bitField0_;
          return result;
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData other) {
          if (other == de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance()) return this;
          if (other.hasStatisticsType()) {
            setStatisticsType(other.getStatisticsType());
          }
          if (other.hasStatisticsValue()) {
            setStatisticsValue(other.getStatisticsValue());
          }
          setUnknownFields(
              getUnknownFields().concat(other.unknownFields));
          return this;
        }

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

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

        private de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         */
        public boolean hasStatisticsType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         */
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType() {
          return statisticsType_;
        }
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         */
        public Builder setStatisticsType(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          statisticsType_ = value;
          
          return this;
        }
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         */
        public Builder clearStatisticsType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
          
          return this;
        }

        private int statisticsValue_ ;
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         */
        public boolean hasStatisticsValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         */
        public int getStatisticsValue() {
          return statisticsValue_;
        }
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         */
        public Builder setStatisticsValue(int value) {
          bitField0_ |= 0x00000002;
          statisticsValue_ = value;
          
          return this;
        }
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         */
        public Builder clearStatisticsValue() {
          bitField0_ = (bitField0_ & ~0x00000002);
          statisticsValue_ = 0;
          
          return this;
        }

        // @@protoc_insertion_point(builder_scope:StatisticsMessage.StatisticsData)
      }

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

      // @@protoc_insertion_point(class_scope:StatisticsMessage.StatisticsData)
    }

    public static final int STATISTICSDATA_FIELD_NUMBER = 1;
    private java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> statisticsData_;
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> getStatisticsDataList() {
      return statisticsData_;
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> 
        getStatisticsDataOrBuilderList() {
      return statisticsData_;
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    public int getStatisticsDataCount() {
      return statisticsData_.size();
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index) {
      return statisticsData_.get(index);
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder getStatisticsDataOrBuilder(
        int index) {
      return statisticsData_.get(index);
    }

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

      for (int i = 0; i < getStatisticsDataCount(); i++) {
        if (!getStatisticsData(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 < statisticsData_.size(); i++) {
        output.writeMessage(1, statisticsData_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

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

      size = 0;
      for (int i = 0; i < statisticsData_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, statisticsData_.get(i));
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage 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(de.pokerth.protocol.ProtoBuf.StatisticsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code StatisticsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StatisticsMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:StatisticsMessage)
        de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StatisticsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        statisticsData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.StatisticsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.StatisticsMessage build() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.StatisticsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = new de.pokerth.protocol.ProtoBuf.StatisticsMessage(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          statisticsData_ = java.util.Collections.unmodifiableList(statisticsData_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.statisticsData_ = statisticsData_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StatisticsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance()) return this;
        if (!other.statisticsData_.isEmpty()) {
          if (statisticsData_.isEmpty()) {
            statisticsData_ = other.statisticsData_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStatisticsDataIsMutable();
            statisticsData_.addAll(other.statisticsData_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> statisticsData_ =
        java.util.Collections.emptyList();
      private void ensureStatisticsDataIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          statisticsData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData>(statisticsData_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> getStatisticsDataList() {
        return java.util.Collections.unmodifiableList(statisticsData_);
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public int getStatisticsDataCount() {
        return statisticsData_.size();
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index) {
        return statisticsData_.get(index);
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder setStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatisticsDataIsMutable();
        statisticsData_.set(index, value);

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder setStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        ensureStatisticsDataIsMutable();
        statisticsData_.set(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatisticsDataIsMutable();
        statisticsData_.add(value);

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatisticsDataIsMutable();
        statisticsData_.add(index, value);

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        ensureStatisticsDataIsMutable();
        statisticsData_.add(builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        ensureStatisticsDataIsMutable();
        statisticsData_.add(index, builderForValue.build());

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addAllStatisticsData(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> values) {
        ensureStatisticsDataIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, statisticsData_);

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder clearStatisticsData() {
        statisticsData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder removeStatisticsData(int index) {
        ensureStatisticsDataIsMutable();
        statisticsData_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:StatisticsMessage)
    }

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

    // @@protoc_insertion_point(class_scope:StatisticsMessage)
  }

  public interface ChatRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChatRequestMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 targetGameId = 1;</code>
     */
    boolean hasTargetGameId();
    /**
     * <code>optional uint32 targetGameId = 1;</code>
     */
    int getTargetGameId();

    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     */
    boolean hasTargetPlayerId();
    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     */
    int getTargetPlayerId();

    /**
     * <code>required string chatText = 3;</code>
     */
    boolean hasChatText();
    /**
     * <code>required string chatText = 3;</code>
     */
    java.lang.String getChatText();
    /**
     * <code>required string chatText = 3;</code>
     */
    com.google.protobuf.ByteString
        getChatTextBytes();
  }
  /**
   * Protobuf type {@code ChatRequestMessage}
   */
  public static final class ChatRequestMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ChatRequestMessage)
      ChatRequestMessageOrBuilder {
    // Use ChatRequestMessage.newBuilder() to construct.
    private ChatRequestMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ChatRequestMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ChatRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ChatRequestMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              targetGameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readUInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              chatText_ = bs;
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ChatRequestMessage> PARSER =
        new com.google.protobuf.AbstractParser<ChatRequestMessage>() {
      public ChatRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatRequestMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int TARGETGAMEID_FIELD_NUMBER = 1;
    private int targetGameId_;
    /**
     * <code>optional uint32 targetGameId = 1;</code>
     */
    public boolean hasTargetGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional uint32 targetGameId = 1;</code>
     */
    public int getTargetGameId() {
      return targetGameId_;
    }

    public static final int TARGETPLAYERID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int CHATTEXT_FIELD_NUMBER = 3;
    private java.lang.Object chatText_;
    /**
     * <code>required string chatText = 3;</code>
     */
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required string chatText = 3;</code>
     */
    public java.lang.String getChatText() {
      java.lang.Object ref = chatText_;
      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()) {
          chatText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string chatText = 3;</code>
     */
    public com.google.protobuf.ByteString
        getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      targetGameId_ = 0;
      targetPlayerId_ = 0;
      chatText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasChatText()) {
        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.writeUInt32(1, targetGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getChatTextBytes());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, targetGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getChatTextBytes());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage 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(de.pokerth.protocol.ProtoBuf.ChatRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ChatRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ChatRequestMessage)
        de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ChatRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        targetGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        chatText_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = new de.pokerth.protocol.ProtoBuf.ChatRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.targetGameId_ = targetGameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.chatText_ = chatText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance()) return this;
        if (other.hasTargetGameId()) {
          setTargetGameId(other.getTargetGameId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasChatText()) {
          bitField0_ |= 0x00000004;
          chatText_ = other.chatText_;
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int targetGameId_ ;
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       */
      public boolean hasTargetGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       */
      public int getTargetGameId() {
        return targetGameId_;
      }
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       */
      public Builder setTargetGameId(int value) {
        bitField0_ |= 0x00000001;
        targetGameId_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       */
      public Builder clearTargetGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetGameId_ = 0;
        
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        
        return this;
      }

      private java.lang.Object chatText_ = "";
      /**
       * <code>required string chatText = 3;</code>
       */
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required string chatText = 3;</code>
       */
      public java.lang.String getChatText() {
        java.lang.Object ref = chatText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            chatText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string chatText = 3;</code>
       */
      public com.google.protobuf.ByteString
          getChatTextBytes() {
        java.lang.Object ref = chatText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          chatText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string chatText = 3;</code>
       */
      public Builder setChatText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        chatText_ = value;
        
        return this;
      }
      /**
       * <code>required string chatText = 3;</code>
       */
      public Builder clearChatText() {
        bitField0_ = (bitField0_ & ~0x00000004);
        chatText_ = getDefaultInstance().getChatText();
        
        return this;
      }
      /**
       * <code>required string chatText = 3;</code>
       */
      public Builder setChatTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        chatText_ = value;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ChatRequestMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ChatRequestMessage)
  }

  public interface ChatMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChatMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 gameId = 1;</code>
     */
    boolean hasGameId();
    /**
     * <code>optional uint32 gameId = 1;</code>
     */
    int getGameId();

    /**
     * <code>optional uint32 playerId = 2;</code>
     */
    boolean hasPlayerId();
    /**
     * <code>optional uint32 playerId = 2;</code>
     */
    int getPlayerId();

    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     */
    boolean hasChatType();
    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType();

    /**
     * <code>required string chatText = 4;</code>
     */
    boolean hasChatText();
    /**
     * <code>required string chatText = 4;</code>
     */
    java.lang.String getChatText();
    /**
     * <code>required string chatText = 4;</code>
     */
    com.google.protobuf.ByteString
        getChatTextBytes();
  }
  /**
   * Protobuf type {@code ChatMessage}
   */
  public static final class ChatMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ChatMessage)
      ChatMessageOrBuilder {
    // Use ChatMessage.newBuilder() to construct.
    private ChatMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ChatMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ChatMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ChatMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType value = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                chatType_ = value;
              }
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              chatText_ = bs;
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ChatMessage> PARSER =
        new com.google.protobuf.AbstractParser<ChatMessage>() {
      public ChatMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code ChatMessage.ChatType}
     */
    public enum ChatType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>chatTypeLobby = 0;</code>
       */
      chatTypeLobby(0, 0),
      /**
       * <code>chatTypeGame = 1;</code>
       */
      chatTypeGame(1, 1),
      /**
       * <code>chatTypeBot = 2;</code>
       */
      chatTypeBot(2, 2),
      /**
       * <code>chatTypeBroadcast = 3;</code>
       */
      chatTypeBroadcast(3, 3),
      /**
       * <code>chatTypePrivate = 4;</code>
       */
      chatTypePrivate(4, 4),
      ;

      /**
       * <code>chatTypeLobby = 0;</code>
       */
      public static final int chatTypeLobby_VALUE = 0;
      /**
       * <code>chatTypeGame = 1;</code>
       */
      public static final int chatTypeGame_VALUE = 1;
      /**
       * <code>chatTypeBot = 2;</code>
       */
      public static final int chatTypeBot_VALUE = 2;
      /**
       * <code>chatTypeBroadcast = 3;</code>
       */
      public static final int chatTypeBroadcast_VALUE = 3;
      /**
       * <code>chatTypePrivate = 4;</code>
       */
      public static final int chatTypePrivate_VALUE = 4;


      public final int getNumber() { return value; }

      public static ChatType valueOf(int value) {
        switch (value) {
          case 0: return chatTypeLobby;
          case 1: return chatTypeGame;
          case 2: return chatTypeBot;
          case 3: return chatTypeBroadcast;
          case 4: return chatTypePrivate;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:ChatMessage.ChatType)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    /**
     * <code>optional uint32 gameId = 1;</code>
     */
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional uint32 gameId = 1;</code>
     */
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * <code>optional uint32 playerId = 2;</code>
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional uint32 playerId = 2;</code>
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CHATTYPE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType chatType_;
    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     */
    public boolean hasChatType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType() {
      return chatType_;
    }

    public static final int CHATTEXT_FIELD_NUMBER = 4;
    private java.lang.Object chatText_;
    /**
     * <code>required string chatText = 4;</code>
     */
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required string chatText = 4;</code>
     */
    public java.lang.String getChatText() {
      java.lang.Object ref = chatText_;
      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()) {
          chatText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string chatText = 4;</code>
     */
    public com.google.protobuf.ByteString
        getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
      chatText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasChatType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasChatText()) {
        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.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, chatType_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getChatTextBytes());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, chatType_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getChatTextBytes());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage 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(de.pokerth.protocol.ProtoBuf.ChatMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ChatMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ChatMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ChatMessage)
        de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ChatMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
        bitField0_ = (bitField0_ & ~0x00000004);
        chatText_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.ChatMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ChatMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ChatMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = new de.pokerth.protocol.ProtoBuf.ChatMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.chatType_ = chatType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.chatText_ = chatText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasChatType()) {
          setChatType(other.getChatType());
        }
        if (other.hasChatText()) {
          bitField0_ |= 0x00000008;
          chatText_ = other.chatText_;
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int gameId_ ;
      /**
       * <code>optional uint32 gameId = 1;</code>
       */
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional uint32 gameId = 1;</code>
       */
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>optional uint32 gameId = 1;</code>
       */
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 gameId = 1;</code>
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }

      private int playerId_ ;
      /**
       * <code>optional uint32 playerId = 2;</code>
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional uint32 playerId = 2;</code>
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>optional uint32 playerId = 2;</code>
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      /**
       * <code>optional uint32 playerId = 2;</code>
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       */
      public boolean hasChatType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType() {
        return chatType_;
      }
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       */
      public Builder setChatType(de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        chatType_ = value;
        
        return this;
      }
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       */
      public Builder clearChatType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
        
        return this;
      }

      private java.lang.Object chatText_ = "";
      /**
       * <code>required string chatText = 4;</code>
       */
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required string chatText = 4;</code>
       */
      public java.lang.String getChatText() {
        java.lang.Object ref = chatText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            chatText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string chatText = 4;</code>
       */
      public com.google.protobuf.ByteString
          getChatTextBytes() {
        java.lang.Object ref = chatText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          chatText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string chatText = 4;</code>
       */
      public Builder setChatText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        chatText_ = value;
        
        return this;
      }
      /**
       * <code>required string chatText = 4;</code>
       */
      public Builder clearChatText() {
        bitField0_ = (bitField0_ & ~0x00000008);
        chatText_ = getDefaultInstance().getChatText();
        
        return this;
      }
      /**
       * <code>required string chatText = 4;</code>
       */
      public Builder setChatTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        chatText_ = value;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ChatMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ChatMessage)
  }

  public interface ChatRejectMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ChatRejectMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required string chatText = 1;</code>
     */
    boolean hasChatText();
    /**
     * <code>required string chatText = 1;</code>
     */
    java.lang.String getChatText();
    /**
     * <code>required string chatText = 1;</code>
     */
    com.google.protobuf.ByteString
        getChatTextBytes();
  }
  /**
   * Protobuf type {@code ChatRejectMessage}
   */
  public static final class ChatRejectMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ChatRejectMessage)
      ChatRejectMessageOrBuilder {
    // Use ChatRejectMessage.newBuilder() to construct.
    private ChatRejectMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ChatRejectMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ChatRejectMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ChatRejectMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              chatText_ = bs;
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ChatRejectMessage> PARSER =
        new com.google.protobuf.AbstractParser<ChatRejectMessage>() {
      public ChatRejectMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ChatRejectMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int CHATTEXT_FIELD_NUMBER = 1;
    private java.lang.Object chatText_;
    /**
     * <code>required string chatText = 1;</code>
     */
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string chatText = 1;</code>
     */
    public java.lang.String getChatText() {
      java.lang.Object ref = chatText_;
      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()) {
          chatText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string chatText = 1;</code>
     */
    public com.google.protobuf.ByteString
        getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      chatText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getChatTextBytes());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage 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(de.pokerth.protocol.ProtoBuf.ChatRejectMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ChatRejectMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ChatRejectMessage)
        de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ChatRejectMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = new de.pokerth.protocol.ProtoBuf.ChatRejectMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.chatText_ = chatText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatRejectMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance()) return this;
        if (other.hasChatText()) {
          bitField0_ |= 0x00000001;
          chatText_ = other.chatText_;
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private java.lang.Object chatText_ = "";
      /**
       * <code>required string chatText = 1;</code>
       */
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string chatText = 1;</code>
       */
      public java.lang.String getChatText() {
        java.lang.Object ref = chatText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            chatText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string chatText = 1;</code>
       */
      public com.google.protobuf.ByteString
          getChatTextBytes() {
        java.lang.Object ref = chatText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          chatText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string chatText = 1;</code>
       */
      public Builder setChatText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        chatText_ = value;
        
        return this;
      }
      /**
       * <code>required string chatText = 1;</code>
       */
      public Builder clearChatText() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chatText_ = getDefaultInstance().getChatText();
        
        return this;
      }
      /**
       * <code>required string chatText = 1;</code>
       */
      public Builder setChatTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        chatText_ = value;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ChatRejectMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ChatRejectMessage)
  }

  public interface DialogMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:DialogMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required string notificationText = 1;</code>
     */
    boolean hasNotificationText();
    /**
     * <code>required string notificationText = 1;</code>
     */
    java.lang.String getNotificationText();
    /**
     * <code>required string notificationText = 1;</code>
     */
    com.google.protobuf.ByteString
        getNotificationTextBytes();
  }
  /**
   * Protobuf type {@code DialogMessage}
   */
  public static final class DialogMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:DialogMessage)
      DialogMessageOrBuilder {
    // Use DialogMessage.newBuilder() to construct.
    private DialogMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DialogMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public DialogMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private DialogMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              notificationText_ = bs;
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<DialogMessage> PARSER =
        new com.google.protobuf.AbstractParser<DialogMessage>() {
      public DialogMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DialogMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int NOTIFICATIONTEXT_FIELD_NUMBER = 1;
    private java.lang.Object notificationText_;
    /**
     * <code>required string notificationText = 1;</code>
     */
    public boolean hasNotificationText() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string notificationText = 1;</code>
     */
    public java.lang.String getNotificationText() {
      java.lang.Object ref = notificationText_;
      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()) {
          notificationText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string notificationText = 1;</code>
     */
    public com.google.protobuf.ByteString
        getNotificationTextBytes() {
      java.lang.Object ref = notificationText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        notificationText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      notificationText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNotificationTextBytes());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage 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(de.pokerth.protocol.ProtoBuf.DialogMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code DialogMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DialogMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:DialogMessage)
        de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DialogMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.DialogMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.DialogMessage build() {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.DialogMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = new de.pokerth.protocol.ProtoBuf.DialogMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.notificationText_ = notificationText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DialogMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance()) return this;
        if (other.hasNotificationText()) {
          bitField0_ |= 0x00000001;
          notificationText_ = other.notificationText_;
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private java.lang.Object notificationText_ = "";
      /**
       * <code>required string notificationText = 1;</code>
       */
      public boolean hasNotificationText() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string notificationText = 1;</code>
       */
      public java.lang.String getNotificationText() {
        java.lang.Object ref = notificationText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            notificationText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string notificationText = 1;</code>
       */
      public com.google.protobuf.ByteString
          getNotificationTextBytes() {
        java.lang.Object ref = notificationText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          notificationText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string notificationText = 1;</code>
       */
      public Builder setNotificationText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        notificationText_ = value;
        
        return this;
      }
      /**
       * <code>required string notificationText = 1;</code>
       */
      public Builder clearNotificationText() {
        bitField0_ = (bitField0_ & ~0x00000001);
        notificationText_ = getDefaultInstance().getNotificationText();
        
        return this;
      }
      /**
       * <code>required string notificationText = 1;</code>
       */
      public Builder setNotificationTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        notificationText_ = value;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DialogMessage)
    }

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

    // @@protoc_insertion_point(class_scope:DialogMessage)
  }

  public interface TimeoutWarningMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:TimeoutWarningMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     */
    boolean hasTimeoutReason();
    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason();

    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     */
    boolean hasRemainingSeconds();
    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     */
    int getRemainingSeconds();
  }
  /**
   * Protobuf type {@code TimeoutWarningMessage}
   */
  public static final class TimeoutWarningMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:TimeoutWarningMessage)
      TimeoutWarningMessageOrBuilder {
    // Use TimeoutWarningMessage.newBuilder() to construct.
    private TimeoutWarningMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private TimeoutWarningMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public TimeoutWarningMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private TimeoutWarningMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason value = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000001;
                timeoutReason_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              remainingSeconds_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<TimeoutWarningMessage> PARSER =
        new com.google.protobuf.AbstractParser<TimeoutWarningMessage>() {
      public TimeoutWarningMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TimeoutWarningMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code TimeoutWarningMessage.TimeoutReason}
     */
    public enum TimeoutReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>timeoutNoDataReceived = 0;</code>
       */
      timeoutNoDataReceived(0, 0),
      /**
       * <code>timeoutInactiveGame = 1;</code>
       */
      timeoutInactiveGame(1, 1),
      /**
       * <code>timeoutKickAfterAutofold = 2;</code>
       */
      timeoutKickAfterAutofold(2, 2),
      ;

      /**
       * <code>timeoutNoDataReceived = 0;</code>
       */
      public static final int timeoutNoDataReceived_VALUE = 0;
      /**
       * <code>timeoutInactiveGame = 1;</code>
       */
      public static final int timeoutInactiveGame_VALUE = 1;
      /**
       * <code>timeoutKickAfterAutofold = 2;</code>
       */
      public static final int timeoutKickAfterAutofold_VALUE = 2;


      public final int getNumber() { return value; }

      public static TimeoutReason valueOf(int value) {
        switch (value) {
          case 0: return timeoutNoDataReceived;
          case 1: return timeoutInactiveGame;
          case 2: return timeoutKickAfterAutofold;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:TimeoutWarningMessage.TimeoutReason)
    }

    private int bitField0_;
    public static final int TIMEOUTREASON_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason timeoutReason_;
    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     */
    public boolean hasTimeoutReason() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason() {
      return timeoutReason_;
    }

    public static final int REMAININGSECONDS_FIELD_NUMBER = 2;
    private int remainingSeconds_;
    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     */
    public boolean hasRemainingSeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     */
    public int getRemainingSeconds() {
      return remainingSeconds_;
    }

    private void initFields() {
      timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
      remainingSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasTimeoutReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRemainingSeconds()) {
        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, timeoutReason_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, remainingSeconds_);
      }
      output.writeRawBytes(unknownFields);
    }

    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, timeoutReason_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, remainingSeconds_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage 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(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code TimeoutWarningMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:TimeoutWarningMessage)
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
        bitField0_ = (bitField0_ & ~0x00000001);
        remainingSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage build() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = new de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.timeoutReason_ = timeoutReason_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.remainingSeconds_ = remainingSeconds_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance()) return this;
        if (other.hasTimeoutReason()) {
          setTimeoutReason(other.getTimeoutReason());
        }
        if (other.hasRemainingSeconds()) {
          setRemainingSeconds(other.getRemainingSeconds());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       */
      public boolean hasTimeoutReason() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason() {
        return timeoutReason_;
      }
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       */
      public Builder setTimeoutReason(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        timeoutReason_ = value;
        
        return this;
      }
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       */
      public Builder clearTimeoutReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
        
        return this;
      }

      private int remainingSeconds_ ;
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       */
      public boolean hasRemainingSeconds() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       */
      public int getRemainingSeconds() {
        return remainingSeconds_;
      }
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       */
      public Builder setRemainingSeconds(int value) {
        bitField0_ |= 0x00000002;
        remainingSeconds_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       */
      public Builder clearRemainingSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        remainingSeconds_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:TimeoutWarningMessage)
    }

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

    // @@protoc_insertion_point(class_scope:TimeoutWarningMessage)
  }

  public interface ResetTimeoutMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ResetTimeoutMessage)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code ResetTimeoutMessage}
   */
  public static final class ResetTimeoutMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ResetTimeoutMessage)
      ResetTimeoutMessageOrBuilder {
    // Use ResetTimeoutMessage.newBuilder() to construct.
    private ResetTimeoutMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ResetTimeoutMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ResetTimeoutMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ResetTimeoutMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ResetTimeoutMessage> PARSER =
        new com.google.protobuf.AbstractParser<ResetTimeoutMessage>() {
      public ResetTimeoutMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ResetTimeoutMessage(input, extensionRegistry);
      }
    };

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage 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(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ResetTimeoutMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ResetTimeoutMessage)
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage build() {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = new de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage(this);
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ResetTimeoutMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ResetTimeoutMessage)
  }

  public interface ReportAvatarMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ReportAvatarMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    boolean hasReportedPlayerId();
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    int getReportedPlayerId();

    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     */
    boolean hasReportedAvatarHash();
    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     */
    com.google.protobuf.ByteString getReportedAvatarHash();
  }
  /**
   * Protobuf type {@code ReportAvatarMessage}
   */
  public static final class ReportAvatarMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ReportAvatarMessage)
      ReportAvatarMessageOrBuilder {
    // Use ReportAvatarMessage.newBuilder() to construct.
    private ReportAvatarMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ReportAvatarMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ReportAvatarMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ReportAvatarMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedPlayerId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              reportedAvatarHash_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ReportAvatarMessage> PARSER =
        new com.google.protobuf.AbstractParser<ReportAvatarMessage>() {
      public ReportAvatarMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReportAvatarMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int REPORTEDPLAYERID_FIELD_NUMBER = 1;
    private int reportedPlayerId_;
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    public boolean hasReportedPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    public int getReportedPlayerId() {
      return reportedPlayerId_;
    }

    public static final int REPORTEDAVATARHASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString reportedAvatarHash_;
    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     */
    public boolean hasReportedAvatarHash() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     */
    public com.google.protobuf.ByteString getReportedAvatarHash() {
      return reportedAvatarHash_;
    }

    private void initFields() {
      reportedPlayerId_ = 0;
      reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasReportedPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReportedAvatarHash()) {
        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.writeUInt32(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, reportedAvatarHash_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, reportedAvatarHash_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage 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(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ReportAvatarMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ReportAvatarMessage)
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reportedPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = new de.pokerth.protocol.ProtoBuf.ReportAvatarMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedPlayerId_ = reportedPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reportedAvatarHash_ = reportedAvatarHash_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance()) return this;
        if (other.hasReportedPlayerId()) {
          setReportedPlayerId(other.getReportedPlayerId());
        }
        if (other.hasReportedAvatarHash()) {
          setReportedAvatarHash(other.getReportedAvatarHash());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int reportedPlayerId_ ;
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public boolean hasReportedPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public int getReportedPlayerId() {
        return reportedPlayerId_;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public Builder setReportedPlayerId(int value) {
        bitField0_ |= 0x00000001;
        reportedPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public Builder clearReportedPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedPlayerId_ = 0;
        
        return this;
      }

      private com.google.protobuf.ByteString reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       */
      public boolean hasReportedAvatarHash() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       */
      public com.google.protobuf.ByteString getReportedAvatarHash() {
        return reportedAvatarHash_;
      }
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       */
      public Builder setReportedAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        reportedAvatarHash_ = value;
        
        return this;
      }
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       */
      public Builder clearReportedAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportedAvatarHash_ = getDefaultInstance().getReportedAvatarHash();
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ReportAvatarMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ReportAvatarMessage)
  }

  public interface ReportAvatarAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ReportAvatarAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    boolean hasReportedPlayerId();
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    int getReportedPlayerId();

    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     */
    boolean hasReportAvatarResult();
    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult();
  }
  /**
   * Protobuf type {@code ReportAvatarAckMessage}
   */
  public static final class ReportAvatarAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ReportAvatarAckMessage)
      ReportAvatarAckMessageOrBuilder {
    // Use ReportAvatarAckMessage.newBuilder() to construct.
    private ReportAvatarAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ReportAvatarAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ReportAvatarAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ReportAvatarAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedPlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult value = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                reportAvatarResult_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ReportAvatarAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<ReportAvatarAckMessage>() {
      public ReportAvatarAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReportAvatarAckMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code ReportAvatarAckMessage.ReportAvatarResult}
     */
    public enum ReportAvatarResult
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>avatarReportAccepted = 0;</code>
       */
      avatarReportAccepted(0, 0),
      /**
       * <code>avatarReportDuplicate = 1;</code>
       */
      avatarReportDuplicate(1, 1),
      /**
       * <code>avatarReportInvalid = 2;</code>
       */
      avatarReportInvalid(2, 2),
      ;

      /**
       * <code>avatarReportAccepted = 0;</code>
       */
      public static final int avatarReportAccepted_VALUE = 0;
      /**
       * <code>avatarReportDuplicate = 1;</code>
       */
      public static final int avatarReportDuplicate_VALUE = 1;
      /**
       * <code>avatarReportInvalid = 2;</code>
       */
      public static final int avatarReportInvalid_VALUE = 2;


      public final int getNumber() { return value; }

      public static ReportAvatarResult valueOf(int value) {
        switch (value) {
          case 0: return avatarReportAccepted;
          case 1: return avatarReportDuplicate;
          case 2: return avatarReportInvalid;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:ReportAvatarAckMessage.ReportAvatarResult)
    }

    private int bitField0_;
    public static final int REPORTEDPLAYERID_FIELD_NUMBER = 1;
    private int reportedPlayerId_;
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    public boolean hasReportedPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     */
    public int getReportedPlayerId() {
      return reportedPlayerId_;
    }

    public static final int REPORTAVATARRESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult_;
    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     */
    public boolean hasReportAvatarResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult() {
      return reportAvatarResult_;
    }

    private void initFields() {
      reportedPlayerId_ = 0;
      reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasReportedPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReportAvatarResult()) {
        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.writeUInt32(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, reportAvatarResult_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, reportAvatarResult_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage 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(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ReportAvatarAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ReportAvatarAckMessage)
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reportedPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = new de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedPlayerId_ = reportedPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reportAvatarResult_ = reportAvatarResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance()) return this;
        if (other.hasReportedPlayerId()) {
          setReportedPlayerId(other.getReportedPlayerId());
        }
        if (other.hasReportAvatarResult()) {
          setReportAvatarResult(other.getReportAvatarResult());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int reportedPlayerId_ ;
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public boolean hasReportedPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public int getReportedPlayerId() {
        return reportedPlayerId_;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public Builder setReportedPlayerId(int value) {
        bitField0_ |= 0x00000001;
        reportedPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       */
      public Builder clearReportedPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedPlayerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       */
      public boolean hasReportAvatarResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult() {
        return reportAvatarResult_;
      }
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       */
      public Builder setReportAvatarResult(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        reportAvatarResult_ = value;
        
        return this;
      }
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       */
      public Builder clearReportAvatarResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ReportAvatarAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ReportAvatarAckMessage)
  }

  public interface ReportGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ReportGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    boolean hasReportedGameId();
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    int getReportedGameId();
  }
  /**
   * Protobuf type {@code ReportGameMessage}
   */
  public static final class ReportGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ReportGameMessage)
      ReportGameMessageOrBuilder {
    // Use ReportGameMessage.newBuilder() to construct.
    private ReportGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ReportGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ReportGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ReportGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedGameId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ReportGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<ReportGameMessage>() {
      public ReportGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReportGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int REPORTEDGAMEID_FIELD_NUMBER = 1;
    private int reportedGameId_;
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    public boolean hasReportedGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    public int getReportedGameId() {
      return reportedGameId_;
    }

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

      if (!hasReportedGameId()) {
        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.writeUInt32(1, reportedGameId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, reportedGameId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage 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(de.pokerth.protocol.ProtoBuf.ReportGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ReportGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ReportGameMessage)
        de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.ReportGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ReportGameMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ReportGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = new de.pokerth.protocol.ProtoBuf.ReportGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedGameId_ = reportedGameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance()) return this;
        if (other.hasReportedGameId()) {
          setReportedGameId(other.getReportedGameId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int reportedGameId_ ;
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public boolean hasReportedGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public int getReportedGameId() {
        return reportedGameId_;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public Builder setReportedGameId(int value) {
        bitField0_ |= 0x00000001;
        reportedGameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public Builder clearReportedGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedGameId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ReportGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ReportGameMessage)
  }

  public interface ReportGameAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ReportGameAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    boolean hasReportedGameId();
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    int getReportedGameId();

    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     */
    boolean hasReportGameResult();
    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult();
  }
  /**
   * Protobuf type {@code ReportGameAckMessage}
   */
  public static final class ReportGameAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ReportGameAckMessage)
      ReportGameAckMessageOrBuilder {
    // Use ReportGameAckMessage.newBuilder() to construct.
    private ReportGameAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ReportGameAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ReportGameAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ReportGameAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedGameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult value = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                reportGameResult_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ReportGameAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<ReportGameAckMessage>() {
      public ReportGameAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReportGameAckMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code ReportGameAckMessage.ReportGameResult}
     */
    public enum ReportGameResult
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>gameReportAccepted = 0;</code>
       */
      gameReportAccepted(0, 0),
      /**
       * <code>gameReportDuplicate = 1;</code>
       */
      gameReportDuplicate(1, 1),
      /**
       * <code>gameReportInvalid = 2;</code>
       */
      gameReportInvalid(2, 2),
      ;

      /**
       * <code>gameReportAccepted = 0;</code>
       */
      public static final int gameReportAccepted_VALUE = 0;
      /**
       * <code>gameReportDuplicate = 1;</code>
       */
      public static final int gameReportDuplicate_VALUE = 1;
      /**
       * <code>gameReportInvalid = 2;</code>
       */
      public static final int gameReportInvalid_VALUE = 2;


      public final int getNumber() { return value; }

      public static ReportGameResult valueOf(int value) {
        switch (value) {
          case 0: return gameReportAccepted;
          case 1: return gameReportDuplicate;
          case 2: return gameReportInvalid;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:ReportGameAckMessage.ReportGameResult)
    }

    private int bitField0_;
    public static final int REPORTEDGAMEID_FIELD_NUMBER = 1;
    private int reportedGameId_;
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    public boolean hasReportedGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     */
    public int getReportedGameId() {
      return reportedGameId_;
    }

    public static final int REPORTGAMERESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult reportGameResult_;
    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     */
    public boolean hasReportGameResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult() {
      return reportGameResult_;
    }

    private void initFields() {
      reportedGameId_ = 0;
      reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasReportedGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReportGameResult()) {
        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.writeUInt32(1, reportedGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, reportGameResult_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, reportedGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, reportGameResult_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage 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(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ReportGameAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ReportGameAckMessage)
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reportedGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = new de.pokerth.protocol.ProtoBuf.ReportGameAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedGameId_ = reportedGameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reportGameResult_ = reportGameResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance()) return this;
        if (other.hasReportedGameId()) {
          setReportedGameId(other.getReportedGameId());
        }
        if (other.hasReportGameResult()) {
          setReportGameResult(other.getReportGameResult());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int reportedGameId_ ;
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public boolean hasReportedGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public int getReportedGameId() {
        return reportedGameId_;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public Builder setReportedGameId(int value) {
        bitField0_ |= 0x00000001;
        reportedGameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       */
      public Builder clearReportedGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedGameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       */
      public boolean hasReportGameResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult() {
        return reportGameResult_;
      }
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       */
      public Builder setReportGameResult(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        reportGameResult_ = value;
        
        return this;
      }
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       */
      public Builder clearReportGameResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ReportGameAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ReportGameAckMessage)
  }

  public interface ErrorMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ErrorMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     */
    boolean hasErrorReason();
    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason();
  }
  /**
   * Protobuf type {@code ErrorMessage}
   */
  public static final class ErrorMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:ErrorMessage)
      ErrorMessageOrBuilder {
    // Use ErrorMessage.newBuilder() to construct.
    private ErrorMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ErrorMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public ErrorMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private ErrorMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason value = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000001;
                errorReason_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<ErrorMessage> PARSER =
        new com.google.protobuf.AbstractParser<ErrorMessage>() {
      public ErrorMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ErrorMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code ErrorMessage.ErrorReason}
     */
    public enum ErrorReason
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>reserved = 0;</code>
       */
      reserved(0, 0),
      /**
       * <code>initVersionNotSupported = 1;</code>
       */
      initVersionNotSupported(1, 1),
      /**
       * <code>initServerFull = 2;</code>
       */
      initServerFull(2, 2),
      /**
       * <code>initAuthFailure = 3;</code>
       */
      initAuthFailure(3, 3),
      /**
       * <code>initPlayerNameInUse = 4;</code>
       */
      initPlayerNameInUse(4, 4),
      /**
       * <code>initInvalidPlayerName = 5;</code>
       */
      initInvalidPlayerName(5, 5),
      /**
       * <code>initServerMaintenance = 6;</code>
       */
      initServerMaintenance(6, 6),
      /**
       * <code>initBlocked = 7;</code>
       */
      initBlocked(7, 7),
      /**
       * <code>avatarTooLarge = 8;</code>
       */
      avatarTooLarge(8, 8),
      /**
       * <code>invalidPacket = 9;</code>
       */
      invalidPacket(9, 9),
      /**
       * <code>invalidState = 10;</code>
       */
      invalidState(10, 10),
      /**
       * <code>kickedFromServer = 11;</code>
       */
      kickedFromServer(11, 11),
      /**
       * <code>bannedFromServer = 12;</code>
       */
      bannedFromServer(12, 12),
      /**
       * <code>blockedByServer = 13;</code>
       */
      blockedByServer(13, 13),
      /**
       * <code>sessionTimeout = 14;</code>
       */
      sessionTimeout(14, 14),
      ;

      /**
       * <code>reserved = 0;</code>
       */
      public static final int reserved_VALUE = 0;
      /**
       * <code>initVersionNotSupported = 1;</code>
       */
      public static final int initVersionNotSupported_VALUE = 1;
      /**
       * <code>initServerFull = 2;</code>
       */
      public static final int initServerFull_VALUE = 2;
      /**
       * <code>initAuthFailure = 3;</code>
       */
      public static final int initAuthFailure_VALUE = 3;
      /**
       * <code>initPlayerNameInUse = 4;</code>
       */
      public static final int initPlayerNameInUse_VALUE = 4;
      /**
       * <code>initInvalidPlayerName = 5;</code>
       */
      public static final int initInvalidPlayerName_VALUE = 5;
      /**
       * <code>initServerMaintenance = 6;</code>
       */
      public static final int initServerMaintenance_VALUE = 6;
      /**
       * <code>initBlocked = 7;</code>
       */
      public static final int initBlocked_VALUE = 7;
      /**
       * <code>avatarTooLarge = 8;</code>
       */
      public static final int avatarTooLarge_VALUE = 8;
      /**
       * <code>invalidPacket = 9;</code>
       */
      public static final int invalidPacket_VALUE = 9;
      /**
       * <code>invalidState = 10;</code>
       */
      public static final int invalidState_VALUE = 10;
      /**
       * <code>kickedFromServer = 11;</code>
       */
      public static final int kickedFromServer_VALUE = 11;
      /**
       * <code>bannedFromServer = 12;</code>
       */
      public static final int bannedFromServer_VALUE = 12;
      /**
       * <code>blockedByServer = 13;</code>
       */
      public static final int blockedByServer_VALUE = 13;
      /**
       * <code>sessionTimeout = 14;</code>
       */
      public static final int sessionTimeout_VALUE = 14;


      public final int getNumber() { return value; }

      public static ErrorReason valueOf(int value) {
        switch (value) {
          case 0: return reserved;
          case 1: return initVersionNotSupported;
          case 2: return initServerFull;
          case 3: return initAuthFailure;
          case 4: return initPlayerNameInUse;
          case 5: return initInvalidPlayerName;
          case 6: return initServerMaintenance;
          case 7: return initBlocked;
          case 8: return avatarTooLarge;
          case 9: return invalidPacket;
          case 10: return invalidState;
          case 11: return kickedFromServer;
          case 12: return bannedFromServer;
          case 13: return blockedByServer;
          case 14: return sessionTimeout;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:ErrorMessage.ErrorReason)
    }

    private int bitField0_;
    public static final int ERRORREASON_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason errorReason_;
    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     */
    public boolean hasErrorReason() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason() {
      return errorReason_;
    }

    private void initFields() {
      errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasErrorReason()) {
        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, errorReason_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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, errorReason_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage 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(de.pokerth.protocol.ProtoBuf.ErrorMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code ErrorMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ErrorMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:ErrorMessage)
        de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ErrorMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.ErrorMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.ErrorMessage build() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.ErrorMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = new de.pokerth.protocol.ProtoBuf.ErrorMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.errorReason_ = errorReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ErrorMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance()) return this;
        if (other.hasErrorReason()) {
          setErrorReason(other.getErrorReason());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       */
      public boolean hasErrorReason() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason() {
        return errorReason_;
      }
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       */
      public Builder setErrorReason(de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        errorReason_ = value;
        
        return this;
      }
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       */
      public Builder clearErrorReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ErrorMessage)
    }

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

    // @@protoc_insertion_point(class_scope:ErrorMessage)
  }

  public interface AdminRemoveGameMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AdminRemoveGameMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    boolean hasRemoveGameId();
    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    int getRemoveGameId();
  }
  /**
   * Protobuf type {@code AdminRemoveGameMessage}
   */
  public static final class AdminRemoveGameMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AdminRemoveGameMessage)
      AdminRemoveGameMessageOrBuilder {
    // Use AdminRemoveGameMessage.newBuilder() to construct.
    private AdminRemoveGameMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AdminRemoveGameMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AdminRemoveGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AdminRemoveGameMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              removeGameId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AdminRemoveGameMessage> PARSER =
        new com.google.protobuf.AbstractParser<AdminRemoveGameMessage>() {
      public AdminRemoveGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AdminRemoveGameMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int REMOVEGAMEID_FIELD_NUMBER = 1;
    private int removeGameId_;
    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    public boolean hasRemoveGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    public int getRemoveGameId() {
      return removeGameId_;
    }

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

      if (!hasRemoveGameId()) {
        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.writeUInt32(1, removeGameId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, removeGameId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage 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(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AdminRemoveGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AdminRemoveGameMessage)
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.removeGameId_ = removeGameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance()) return this;
        if (other.hasRemoveGameId()) {
          setRemoveGameId(other.getRemoveGameId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int removeGameId_ ;
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public boolean hasRemoveGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public int getRemoveGameId() {
        return removeGameId_;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public Builder setRemoveGameId(int value) {
        bitField0_ |= 0x00000001;
        removeGameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public Builder clearRemoveGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AdminRemoveGameMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AdminRemoveGameMessage)
  }

  public interface AdminRemoveGameAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AdminRemoveGameAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    boolean hasRemoveGameId();
    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    int getRemoveGameId();

    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     */
    boolean hasRemoveGameResult();
    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult();
  }
  /**
   * Protobuf type {@code AdminRemoveGameAckMessage}
   */
  public static final class AdminRemoveGameAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AdminRemoveGameAckMessage)
      AdminRemoveGameAckMessageOrBuilder {
    // Use AdminRemoveGameAckMessage.newBuilder() to construct.
    private AdminRemoveGameAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AdminRemoveGameAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AdminRemoveGameAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AdminRemoveGameAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              removeGameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult value = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                removeGameResult_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AdminRemoveGameAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<AdminRemoveGameAckMessage>() {
      public AdminRemoveGameAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AdminRemoveGameAckMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code AdminRemoveGameAckMessage.AdminRemoveGameResult}
     */
    public enum AdminRemoveGameResult
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>gameRemoveAccepted = 0;</code>
       */
      gameRemoveAccepted(0, 0),
      /**
       * <code>gameRemoveInvalid = 1;</code>
       */
      gameRemoveInvalid(1, 1),
      ;

      /**
       * <code>gameRemoveAccepted = 0;</code>
       */
      public static final int gameRemoveAccepted_VALUE = 0;
      /**
       * <code>gameRemoveInvalid = 1;</code>
       */
      public static final int gameRemoveInvalid_VALUE = 1;


      public final int getNumber() { return value; }

      public static AdminRemoveGameResult valueOf(int value) {
        switch (value) {
          case 0: return gameRemoveAccepted;
          case 1: return gameRemoveInvalid;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:AdminRemoveGameAckMessage.AdminRemoveGameResult)
    }

    private int bitField0_;
    public static final int REMOVEGAMEID_FIELD_NUMBER = 1;
    private int removeGameId_;
    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    public boolean hasRemoveGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 removeGameId = 1;</code>
     */
    public int getRemoveGameId() {
      return removeGameId_;
    }

    public static final int REMOVEGAMERESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult_;
    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     */
    public boolean hasRemoveGameResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult() {
      return removeGameResult_;
    }

    private void initFields() {
      removeGameId_ = 0;
      removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRemoveGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRemoveGameResult()) {
        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.writeUInt32(1, removeGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, removeGameResult_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, removeGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, removeGameResult_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage 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(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AdminRemoveGameAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AdminRemoveGameAckMessage)
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        removeGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.removeGameId_ = removeGameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.removeGameResult_ = removeGameResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance()) return this;
        if (other.hasRemoveGameId()) {
          setRemoveGameId(other.getRemoveGameId());
        }
        if (other.hasRemoveGameResult()) {
          setRemoveGameResult(other.getRemoveGameResult());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int removeGameId_ ;
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public boolean hasRemoveGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public int getRemoveGameId() {
        return removeGameId_;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public Builder setRemoveGameId(int value) {
        bitField0_ |= 0x00000001;
        removeGameId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       */
      public Builder clearRemoveGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       */
      public boolean hasRemoveGameResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult() {
        return removeGameResult_;
      }
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       */
      public Builder setRemoveGameResult(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        removeGameResult_ = value;
        
        return this;
      }
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       */
      public Builder clearRemoveGameResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AdminRemoveGameAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AdminRemoveGameAckMessage)
  }

  public interface AdminBanPlayerMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AdminBanPlayerMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    boolean hasBanPlayerId();
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    int getBanPlayerId();
  }
  /**
   * Protobuf type {@code AdminBanPlayerMessage}
   */
  public static final class AdminBanPlayerMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AdminBanPlayerMessage)
      AdminBanPlayerMessageOrBuilder {
    // Use AdminBanPlayerMessage.newBuilder() to construct.
    private AdminBanPlayerMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AdminBanPlayerMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AdminBanPlayerMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AdminBanPlayerMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              banPlayerId_ = input.readUInt32();
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AdminBanPlayerMessage> PARSER =
        new com.google.protobuf.AbstractParser<AdminBanPlayerMessage>() {
      public AdminBanPlayerMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AdminBanPlayerMessage(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    public static final int BANPLAYERID_FIELD_NUMBER = 1;
    private int banPlayerId_;
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    public boolean hasBanPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    public int getBanPlayerId() {
      return banPlayerId_;
    }

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

      if (!hasBanPlayerId()) {
        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.writeUInt32(1, banPlayerId_);
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, banPlayerId_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage 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(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AdminBanPlayerMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AdminBanPlayerMessage)
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

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

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

      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.banPlayerId_ = banPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance()) return this;
        if (other.hasBanPlayerId()) {
          setBanPlayerId(other.getBanPlayerId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int banPlayerId_ ;
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public boolean hasBanPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public int getBanPlayerId() {
        return banPlayerId_;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public Builder setBanPlayerId(int value) {
        bitField0_ |= 0x00000001;
        banPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public Builder clearBanPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AdminBanPlayerMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AdminBanPlayerMessage)
  }

  public interface AdminBanPlayerAckMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AdminBanPlayerAckMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    boolean hasBanPlayerId();
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    int getBanPlayerId();

    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     */
    boolean hasBanPlayerResult();
    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult();
  }
  /**
   * Protobuf type {@code AdminBanPlayerAckMessage}
   */
  public static final class AdminBanPlayerAckMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:AdminBanPlayerAckMessage)
      AdminBanPlayerAckMessageOrBuilder {
    // Use AdminBanPlayerAckMessage.newBuilder() to construct.
    private AdminBanPlayerAckMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AdminBanPlayerAckMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public AdminBanPlayerAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private AdminBanPlayerAckMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              banPlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult value = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                banPlayerResult_ = 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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<AdminBanPlayerAckMessage> PARSER =
        new com.google.protobuf.AbstractParser<AdminBanPlayerAckMessage>() {
      public AdminBanPlayerAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AdminBanPlayerAckMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code AdminBanPlayerAckMessage.AdminBanPlayerResult}
     */
    public enum AdminBanPlayerResult
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>banPlayerAccepted = 0;</code>
       */
      banPlayerAccepted(0, 0),
      /**
       * <code>banPlayerPending = 1;</code>
       */
      banPlayerPending(1, 1),
      /**
       * <code>banPlayerNoDB = 2;</code>
       */
      banPlayerNoDB(2, 2),
      /**
       * <code>banPlayerDBError = 3;</code>
       */
      banPlayerDBError(3, 3),
      /**
       * <code>banPlayerInvalid = 4;</code>
       */
      banPlayerInvalid(4, 4),
      ;

      /**
       * <code>banPlayerAccepted = 0;</code>
       */
      public static final int banPlayerAccepted_VALUE = 0;
      /**
       * <code>banPlayerPending = 1;</code>
       */
      public static final int banPlayerPending_VALUE = 1;
      /**
       * <code>banPlayerNoDB = 2;</code>
       */
      public static final int banPlayerNoDB_VALUE = 2;
      /**
       * <code>banPlayerDBError = 3;</code>
       */
      public static final int banPlayerDBError_VALUE = 3;
      /**
       * <code>banPlayerInvalid = 4;</code>
       */
      public static final int banPlayerInvalid_VALUE = 4;


      public final int getNumber() { return value; }

      public static AdminBanPlayerResult valueOf(int value) {
        switch (value) {
          case 0: return banPlayerAccepted;
          case 1: return banPlayerPending;
          case 2: return banPlayerNoDB;
          case 3: return banPlayerDBError;
          case 4: return banPlayerInvalid;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:AdminBanPlayerAckMessage.AdminBanPlayerResult)
    }

    private int bitField0_;
    public static final int BANPLAYERID_FIELD_NUMBER = 1;
    private int banPlayerId_;
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    public boolean hasBanPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     */
    public int getBanPlayerId() {
      return banPlayerId_;
    }

    public static final int BANPLAYERRESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult_;
    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     */
    public boolean hasBanPlayerResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult() {
      return banPlayerResult_;
    }

    private void initFields() {
      banPlayerId_ = 0;
      banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasBanPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasBanPlayerResult()) {
        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.writeUInt32(1, banPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, banPlayerResult_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    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
          .computeUInt32Size(1, banPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, banPlayerResult_.getNumber());
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage 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(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code AdminBanPlayerAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:AdminBanPlayerAckMessage)
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        banPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.banPlayerId_ = banPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.banPlayerResult_ = banPlayerResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance()) return this;
        if (other.hasBanPlayerId()) {
          setBanPlayerId(other.getBanPlayerId());
        }
        if (other.hasBanPlayerResult()) {
          setBanPlayerResult(other.getBanPlayerResult());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

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

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

      private int banPlayerId_ ;
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public boolean hasBanPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public int getBanPlayerId() {
        return banPlayerId_;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public Builder setBanPlayerId(int value) {
        bitField0_ |= 0x00000001;
        banPlayerId_ = value;
        
        return this;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       */
      public Builder clearBanPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerId_ = 0;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       */
      public boolean hasBanPlayerResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult() {
        return banPlayerResult_;
      }
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       */
      public Builder setBanPlayerResult(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        banPlayerResult_ = value;
        
        return this;
      }
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       */
      public Builder clearBanPlayerResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AdminBanPlayerAckMessage)
    }

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

    // @@protoc_insertion_point(class_scope:AdminBanPlayerAckMessage)
  }

  public interface PokerTHMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PokerTHMessage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     */
    boolean hasMessageType();
    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType();

    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     */
    boolean hasAnnounceMessage();
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage();

    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     */
    boolean hasInitMessage();
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage();

    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     */
    boolean hasAuthServerChallengeMessage();
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage();

    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     */
    boolean hasAuthClientResponseMessage();
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     */
    de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage();

    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     */
    boolean hasAuthServerVerificationMessage();
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     */
    de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage();

    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     */
    boolean hasInitAckMessage();
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     */
    de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage();

    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     */
    boolean hasAvatarRequestMessage();
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage();

    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     */
    boolean hasAvatarHeaderMessage();
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage();

    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     */
    boolean hasAvatarDataMessage();
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage();

    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     */
    boolean hasAvatarEndMessage();
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage();

    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     */
    boolean hasUnknownAvatarMessage();
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     */
    de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage();

    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     */
    boolean hasPlayerListMessage();
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage();

    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     */
    boolean hasGameListNewMessage();
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage();

    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     */
    boolean hasGameListUpdateMessage();
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage();

    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     */
    boolean hasGameListPlayerJoinedMessage();
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage();

    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     */
    boolean hasGameListPlayerLeftMessage();
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage();

    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     */
    boolean hasGameListAdminChangedMessage();
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage();

    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     */
    boolean hasPlayerInfoRequestMessage();
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage();

    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     */
    boolean hasPlayerInfoReplyMessage();
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage();

    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     */
    boolean hasSubscriptionRequestMessage();
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     */
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage();

    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     */
    boolean hasJoinExistingGameMessage();
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage();

    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     */
    boolean hasJoinNewGameMessage();
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage();

    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     */
    boolean hasRejoinExistingGameMessage();
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage();

    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     */
    boolean hasJoinGameAckMessage();
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage();

    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     */
    boolean hasJoinGameFailedMessage();
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage();

    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     */
    boolean hasGamePlayerJoinedMessage();
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage();

    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     */
    boolean hasGamePlayerLeftMessage();
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage();

    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     */
    boolean hasGameAdminChangedMessage();
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage();

    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     */
    boolean hasRemovedFromGameMessage();
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     */
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage();

    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     */
    boolean hasKickPlayerRequestMessage();
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     */
    de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage();

    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     */
    boolean hasLeaveGameRequestMessage();
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     */
    de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage();

    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     */
    boolean hasInvitePlayerToGameMessage();
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     */
    de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage();

    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     */
    boolean hasInviteNotifyMessage();
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     */
    de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage();

    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     */
    boolean hasRejectGameInvitationMessage();
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage();

    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     */
    boolean hasRejectInvNotifyMessage();
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage();

    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     */
    boolean hasStartEventMessage();
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage();

    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     */
    boolean hasStartEventAckMessage();
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage();

    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     */
    boolean hasGameStartInitialMessage();
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage();

    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     */
    boolean hasGameStartRejoinMessage();
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage();

    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     */
    boolean hasHandStartMessage();
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     */
    de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage();

    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     */
    boolean hasPlayersTurnMessage();
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage();

    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     */
    boolean hasMyActionRequestMessage();
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     */
    de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage();

    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     */
    boolean hasYourActionRejectedMessage();
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     */
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage();

    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     */
    boolean hasPlayersActionDoneMessage();
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage();

    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     */
    boolean hasDealFlopCardsMessage();
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     */
    de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage();

    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     */
    boolean hasDealTurnCardMessage();
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     */
    de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage();

    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     */
    boolean hasDealRiverCardMessage();
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     */
    de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage();

    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     */
    boolean hasAllInShowCardsMessage();
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     */
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage();

    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     */
    boolean hasEndOfHandShowCardsMessage();
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage();

    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     */
    boolean hasEndOfHandHideCardsMessage();
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage();

    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     */
    boolean hasShowMyCardsRequestMessage();
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     */
    de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage();

    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     */
    boolean hasAfterHandShowCardsMessage();
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     */
    de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage();

    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     */
    boolean hasEndOfGameMessage();
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage();

    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     */
    boolean hasPlayerIdChangedMessage();
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage();

    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     */
    boolean hasAskKickPlayerMessage();
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     */
    de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage();

    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     */
    boolean hasAskKickDeniedMessage();
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     */
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage();

    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     */
    boolean hasStartKickPetitionMessage();
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage();

    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     */
    boolean hasVoteKickRequestMessage();
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     */
    de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage();

    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     */
    boolean hasVoteKickReplyMessage();
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     */
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage();

    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     */
    boolean hasKickPetitionUpdateMessage();
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     */
    de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage();

    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     */
    boolean hasEndKickPetitionMessage();
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage();

    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     */
    boolean hasStatisticsMessage();
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     */
    de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage();

    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     */
    boolean hasChatRequestMessage();
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage();

    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     */
    boolean hasChatMessage();
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage();

    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     */
    boolean hasChatRejectMessage();
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage();

    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     */
    boolean hasDialogMessage();
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     */
    de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage();

    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     */
    boolean hasTimeoutWarningMessage();
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     */
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage();

    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     */
    boolean hasResetTimeoutMessage();
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     */
    de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage();

    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     */
    boolean hasReportAvatarMessage();
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage();

    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     */
    boolean hasReportAvatarAckMessage();
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage();

    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     */
    boolean hasReportGameMessage();
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage();

    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     */
    boolean hasReportGameAckMessage();
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage();

    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     */
    boolean hasErrorMessage();
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     */
    de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage();

    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     */
    boolean hasAdminRemoveGameMessage();
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage();

    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     */
    boolean hasAdminRemoveGameAckMessage();
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage();

    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     */
    boolean hasAdminBanPlayerMessage();
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage();

    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     */
    boolean hasAdminBanPlayerAckMessage();
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage();

    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     */
    boolean hasGameListSpectatorJoinedMessage();
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage();

    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     */
    boolean hasGameListSpectatorLeftMessage();
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage();

    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     */
    boolean hasGameSpectatorJoinedMessage();
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage();

    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     */
    boolean hasGameSpectatorLeftMessage();
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage();
  }
  /**
   * Protobuf type {@code PokerTHMessage}
   */
  public static final class PokerTHMessage extends
      com.google.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:PokerTHMessage)
      PokerTHMessageOrBuilder {
    // Use PokerTHMessage.newBuilder() to construct.
    private PokerTHMessage(com.google.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PokerTHMessage(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}

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

    public PokerTHMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.ByteString unknownFields;
    private PokerTHMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      int mutable_bitField1_ = 0;
      int mutable_bitField2_ = 0;
      com.google.protobuf.ByteString.Output unknownFieldsOutput =
          com.google.protobuf.ByteString.newOutput();
      com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          com.google.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType value = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000001;
                messageType_ = value;
              }
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = announceMessage_.toBuilder();
              }
              announceMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(announceMessage_);
                announceMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              de.pokerth.protocol.ProtoBuf.InitMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = initMessage_.toBuilder();
              }
              initMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.InitMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(initMessage_);
                initMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = authServerChallengeMessage_.toBuilder();
              }
              authServerChallengeMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(authServerChallengeMessage_);
                authServerChallengeMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = authClientResponseMessage_.toBuilder();
              }
              authClientResponseMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(authClientResponseMessage_);
                authClientResponseMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = authServerVerificationMessage_.toBuilder();
              }
              authServerVerificationMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(authServerVerificationMessage_);
                authServerVerificationMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = initAckMessage_.toBuilder();
              }
              initAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(initAckMessage_);
                initAckMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = avatarRequestMessage_.toBuilder();
              }
              avatarRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(avatarRequestMessage_);
                avatarRequestMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = avatarHeaderMessage_.toBuilder();
              }
              avatarHeaderMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(avatarHeaderMessage_);
                avatarHeaderMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 82: {
              de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000200) == 0x00000200)) {
                subBuilder = avatarDataMessage_.toBuilder();
              }
              avatarDataMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(avatarDataMessage_);
                avatarDataMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000200;
              break;
            }
            case 90: {
              de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000400) == 0x00000400)) {
                subBuilder = avatarEndMessage_.toBuilder();
              }
              avatarEndMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(avatarEndMessage_);
                avatarEndMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000400;
              break;
            }
            case 98: {
              de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000800) == 0x00000800)) {
                subBuilder = unknownAvatarMessage_.toBuilder();
              }
              unknownAvatarMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(unknownAvatarMessage_);
                unknownAvatarMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000800;
              break;
            }
            case 106: {
              de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00001000) == 0x00001000)) {
                subBuilder = playerListMessage_.toBuilder();
              }
              playerListMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playerListMessage_);
                playerListMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00001000;
              break;
            }
            case 114: {
              de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00002000) == 0x00002000)) {
                subBuilder = gameListNewMessage_.toBuilder();
              }
              gameListNewMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListNewMessage_);
                gameListNewMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00002000;
              break;
            }
            case 122: {
              de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00004000) == 0x00004000)) {
                subBuilder = gameListUpdateMessage_.toBuilder();
              }
              gameListUpdateMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListUpdateMessage_);
                gameListUpdateMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00004000;
              break;
            }
            case 130: {
              de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00008000) == 0x00008000)) {
                subBuilder = gameListPlayerJoinedMessage_.toBuilder();
              }
              gameListPlayerJoinedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListPlayerJoinedMessage_);
                gameListPlayerJoinedMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00008000;
              break;
            }
            case 138: {
              de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00010000) == 0x00010000)) {
                subBuilder = gameListPlayerLeftMessage_.toBuilder();
              }
              gameListPlayerLeftMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListPlayerLeftMessage_);
                gameListPlayerLeftMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00010000;
              break;
            }
            case 146: {
              de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00020000) == 0x00020000)) {
                subBuilder = gameListAdminChangedMessage_.toBuilder();
              }
              gameListAdminChangedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListAdminChangedMessage_);
                gameListAdminChangedMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00020000;
              break;
            }
            case 154: {
              de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00040000) == 0x00040000)) {
                subBuilder = playerInfoRequestMessage_.toBuilder();
              }
              playerInfoRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playerInfoRequestMessage_);
                playerInfoRequestMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00040000;
              break;
            }
            case 162: {
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00080000) == 0x00080000)) {
                subBuilder = playerInfoReplyMessage_.toBuilder();
              }
              playerInfoReplyMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playerInfoReplyMessage_);
                playerInfoReplyMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00080000;
              break;
            }
            case 170: {
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00100000) == 0x00100000)) {
                subBuilder = subscriptionRequestMessage_.toBuilder();
              }
              subscriptionRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(subscriptionRequestMessage_);
                subscriptionRequestMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00100000;
              break;
            }
            case 178: {
              de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00200000) == 0x00200000)) {
                subBuilder = joinExistingGameMessage_.toBuilder();
              }
              joinExistingGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(joinExistingGameMessage_);
                joinExistingGameMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00200000;
              break;
            }
            case 186: {
              de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00400000) == 0x00400000)) {
                subBuilder = joinNewGameMessage_.toBuilder();
              }
              joinNewGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(joinNewGameMessage_);
                joinNewGameMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00400000;
              break;
            }
            case 194: {
              de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00800000) == 0x00800000)) {
                subBuilder = rejoinExistingGameMessage_.toBuilder();
              }
              rejoinExistingGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rejoinExistingGameMessage_);
                rejoinExistingGameMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00800000;
              break;
            }
            case 202: {
              de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x01000000) == 0x01000000)) {
                subBuilder = joinGameAckMessage_.toBuilder();
              }
              joinGameAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(joinGameAckMessage_);
                joinGameAckMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x01000000;
              break;
            }
            case 210: {
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x02000000) == 0x02000000)) {
                subBuilder = joinGameFailedMessage_.toBuilder();
              }
              joinGameFailedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(joinGameFailedMessage_);
                joinGameFailedMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x02000000;
              break;
            }
            case 218: {
              de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x04000000) == 0x04000000)) {
                subBuilder = gamePlayerJoinedMessage_.toBuilder();
              }
              gamePlayerJoinedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gamePlayerJoinedMessage_);
                gamePlayerJoinedMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x04000000;
              break;
            }
            case 226: {
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x08000000) == 0x08000000)) {
                subBuilder = gamePlayerLeftMessage_.toBuilder();
              }
              gamePlayerLeftMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gamePlayerLeftMessage_);
                gamePlayerLeftMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x08000000;
              break;
            }
            case 234: {
              de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x10000000) == 0x10000000)) {
                subBuilder = gameAdminChangedMessage_.toBuilder();
              }
              gameAdminChangedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameAdminChangedMessage_);
                gameAdminChangedMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x10000000;
              break;
            }
            case 242: {
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x20000000) == 0x20000000)) {
                subBuilder = removedFromGameMessage_.toBuilder();
              }
              removedFromGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(removedFromGameMessage_);
                removedFromGameMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x20000000;
              break;
            }
            case 250: {
              de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x40000000) == 0x40000000)) {
                subBuilder = kickPlayerRequestMessage_.toBuilder();
              }
              kickPlayerRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kickPlayerRequestMessage_);
                kickPlayerRequestMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x40000000;
              break;
            }
            case 258: {
              de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x80000000) == 0x80000000)) {
                subBuilder = leaveGameRequestMessage_.toBuilder();
              }
              leaveGameRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(leaveGameRequestMessage_);
                leaveGameRequestMessage_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x80000000;
              break;
            }
            case 266: {
              de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000001) == 0x00000001)) {
                subBuilder = invitePlayerToGameMessage_.toBuilder();
              }
              invitePlayerToGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(invitePlayerToGameMessage_);
                invitePlayerToGameMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000001;
              break;
            }
            case 274: {
              de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000002) == 0x00000002)) {
                subBuilder = inviteNotifyMessage_.toBuilder();
              }
              inviteNotifyMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(inviteNotifyMessage_);
                inviteNotifyMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000002;
              break;
            }
            case 282: {
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000004) == 0x00000004)) {
                subBuilder = rejectGameInvitationMessage_.toBuilder();
              }
              rejectGameInvitationMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rejectGameInvitationMessage_);
                rejectGameInvitationMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000004;
              break;
            }
            case 290: {
              de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000008) == 0x00000008)) {
                subBuilder = rejectInvNotifyMessage_.toBuilder();
              }
              rejectInvNotifyMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rejectInvNotifyMessage_);
                rejectInvNotifyMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000008;
              break;
            }
            case 298: {
              de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000010) == 0x00000010)) {
                subBuilder = startEventMessage_.toBuilder();
              }
              startEventMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(startEventMessage_);
                startEventMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000010;
              break;
            }
            case 306: {
              de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000020) == 0x00000020)) {
                subBuilder = startEventAckMessage_.toBuilder();
              }
              startEventAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(startEventAckMessage_);
                startEventAckMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000020;
              break;
            }
            case 314: {
              de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000040) == 0x00000040)) {
                subBuilder = gameStartInitialMessage_.toBuilder();
              }
              gameStartInitialMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameStartInitialMessage_);
                gameStartInitialMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000040;
              break;
            }
            case 322: {
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000080) == 0x00000080)) {
                subBuilder = gameStartRejoinMessage_.toBuilder();
              }
              gameStartRejoinMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameStartRejoinMessage_);
                gameStartRejoinMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000080;
              break;
            }
            case 330: {
              de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000100) == 0x00000100)) {
                subBuilder = handStartMessage_.toBuilder();
              }
              handStartMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(handStartMessage_);
                handStartMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000100;
              break;
            }
            case 338: {
              de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000200) == 0x00000200)) {
                subBuilder = playersTurnMessage_.toBuilder();
              }
              playersTurnMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playersTurnMessage_);
                playersTurnMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000200;
              break;
            }
            case 346: {
              de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000400) == 0x00000400)) {
                subBuilder = myActionRequestMessage_.toBuilder();
              }
              myActionRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(myActionRequestMessage_);
                myActionRequestMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000400;
              break;
            }
            case 354: {
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00000800) == 0x00000800)) {
                subBuilder = yourActionRejectedMessage_.toBuilder();
              }
              yourActionRejectedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(yourActionRejectedMessage_);
                yourActionRejectedMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00000800;
              break;
            }
            case 362: {
              de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00001000) == 0x00001000)) {
                subBuilder = playersActionDoneMessage_.toBuilder();
              }
              playersActionDoneMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playersActionDoneMessage_);
                playersActionDoneMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00001000;
              break;
            }
            case 370: {
              de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00002000) == 0x00002000)) {
                subBuilder = dealFlopCardsMessage_.toBuilder();
              }
              dealFlopCardsMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dealFlopCardsMessage_);
                dealFlopCardsMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00002000;
              break;
            }
            case 378: {
              de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00004000) == 0x00004000)) {
                subBuilder = dealTurnCardMessage_.toBuilder();
              }
              dealTurnCardMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dealTurnCardMessage_);
                dealTurnCardMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00004000;
              break;
            }
            case 386: {
              de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00008000) == 0x00008000)) {
                subBuilder = dealRiverCardMessage_.toBuilder();
              }
              dealRiverCardMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dealRiverCardMessage_);
                dealRiverCardMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00008000;
              break;
            }
            case 394: {
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00010000) == 0x00010000)) {
                subBuilder = allInShowCardsMessage_.toBuilder();
              }
              allInShowCardsMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(allInShowCardsMessage_);
                allInShowCardsMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00010000;
              break;
            }
            case 402: {
              de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00020000) == 0x00020000)) {
                subBuilder = endOfHandShowCardsMessage_.toBuilder();
              }
              endOfHandShowCardsMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endOfHandShowCardsMessage_);
                endOfHandShowCardsMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00020000;
              break;
            }
            case 410: {
              de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00040000) == 0x00040000)) {
                subBuilder = endOfHandHideCardsMessage_.toBuilder();
              }
              endOfHandHideCardsMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endOfHandHideCardsMessage_);
                endOfHandHideCardsMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00040000;
              break;
            }
            case 418: {
              de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00080000) == 0x00080000)) {
                subBuilder = showMyCardsRequestMessage_.toBuilder();
              }
              showMyCardsRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(showMyCardsRequestMessage_);
                showMyCardsRequestMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00080000;
              break;
            }
            case 426: {
              de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00100000) == 0x00100000)) {
                subBuilder = afterHandShowCardsMessage_.toBuilder();
              }
              afterHandShowCardsMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(afterHandShowCardsMessage_);
                afterHandShowCardsMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00100000;
              break;
            }
            case 434: {
              de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00200000) == 0x00200000)) {
                subBuilder = endOfGameMessage_.toBuilder();
              }
              endOfGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endOfGameMessage_);
                endOfGameMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00200000;
              break;
            }
            case 442: {
              de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00400000) == 0x00400000)) {
                subBuilder = playerIdChangedMessage_.toBuilder();
              }
              playerIdChangedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playerIdChangedMessage_);
                playerIdChangedMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00400000;
              break;
            }
            case 450: {
              de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x00800000) == 0x00800000)) {
                subBuilder = askKickPlayerMessage_.toBuilder();
              }
              askKickPlayerMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(askKickPlayerMessage_);
                askKickPlayerMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x00800000;
              break;
            }
            case 458: {
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x01000000) == 0x01000000)) {
                subBuilder = askKickDeniedMessage_.toBuilder();
              }
              askKickDeniedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(askKickDeniedMessage_);
                askKickDeniedMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x01000000;
              break;
            }
            case 466: {
              de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x02000000) == 0x02000000)) {
                subBuilder = startKickPetitionMessage_.toBuilder();
              }
              startKickPetitionMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(startKickPetitionMessage_);
                startKickPetitionMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x02000000;
              break;
            }
            case 474: {
              de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x04000000) == 0x04000000)) {
                subBuilder = voteKickRequestMessage_.toBuilder();
              }
              voteKickRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(voteKickRequestMessage_);
                voteKickRequestMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x04000000;
              break;
            }
            case 482: {
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x08000000) == 0x08000000)) {
                subBuilder = voteKickReplyMessage_.toBuilder();
              }
              voteKickReplyMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(voteKickReplyMessage_);
                voteKickReplyMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x08000000;
              break;
            }
            case 490: {
              de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x10000000) == 0x10000000)) {
                subBuilder = kickPetitionUpdateMessage_.toBuilder();
              }
              kickPetitionUpdateMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kickPetitionUpdateMessage_);
                kickPetitionUpdateMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x10000000;
              break;
            }
            case 498: {
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x20000000) == 0x20000000)) {
                subBuilder = endKickPetitionMessage_.toBuilder();
              }
              endKickPetitionMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endKickPetitionMessage_);
                endKickPetitionMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x20000000;
              break;
            }
            case 506: {
              de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x40000000) == 0x40000000)) {
                subBuilder = statisticsMessage_.toBuilder();
              }
              statisticsMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(statisticsMessage_);
                statisticsMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x40000000;
              break;
            }
            case 514: {
              de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder subBuilder = null;
              if (((bitField1_ & 0x80000000) == 0x80000000)) {
                subBuilder = chatRequestMessage_.toBuilder();
              }
              chatRequestMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(chatRequestMessage_);
                chatRequestMessage_ = subBuilder.buildPartial();
              }
              bitField1_ |= 0x80000000;
              break;
            }
            case 522: {
              de.pokerth.protocol.ProtoBuf.ChatMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000001) == 0x00000001)) {
                subBuilder = chatMessage_.toBuilder();
              }
              chatMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ChatMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(chatMessage_);
                chatMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000001;
              break;
            }
            case 530: {
              de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000002) == 0x00000002)) {
                subBuilder = chatRejectMessage_.toBuilder();
              }
              chatRejectMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(chatRejectMessage_);
                chatRejectMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000002;
              break;
            }
            case 538: {
              de.pokerth.protocol.ProtoBuf.DialogMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000004) == 0x00000004)) {
                subBuilder = dialogMessage_.toBuilder();
              }
              dialogMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.DialogMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dialogMessage_);
                dialogMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000004;
              break;
            }
            case 546: {
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000008) == 0x00000008)) {
                subBuilder = timeoutWarningMessage_.toBuilder();
              }
              timeoutWarningMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeoutWarningMessage_);
                timeoutWarningMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000008;
              break;
            }
            case 554: {
              de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000010) == 0x00000010)) {
                subBuilder = resetTimeoutMessage_.toBuilder();
              }
              resetTimeoutMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(resetTimeoutMessage_);
                resetTimeoutMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000010;
              break;
            }
            case 562: {
              de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000020) == 0x00000020)) {
                subBuilder = reportAvatarMessage_.toBuilder();
              }
              reportAvatarMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(reportAvatarMessage_);
                reportAvatarMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000020;
              break;
            }
            case 570: {
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000040) == 0x00000040)) {
                subBuilder = reportAvatarAckMessage_.toBuilder();
              }
              reportAvatarAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(reportAvatarAckMessage_);
                reportAvatarAckMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000040;
              break;
            }
            case 578: {
              de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000080) == 0x00000080)) {
                subBuilder = reportGameMessage_.toBuilder();
              }
              reportGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(reportGameMessage_);
                reportGameMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000080;
              break;
            }
            case 586: {
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000100) == 0x00000100)) {
                subBuilder = reportGameAckMessage_.toBuilder();
              }
              reportGameAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(reportGameAckMessage_);
                reportGameAckMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000100;
              break;
            }
            case 594: {
              de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000200) == 0x00000200)) {
                subBuilder = errorMessage_.toBuilder();
              }
              errorMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(errorMessage_);
                errorMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000200;
              break;
            }
            case 602: {
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000400) == 0x00000400)) {
                subBuilder = adminRemoveGameMessage_.toBuilder();
              }
              adminRemoveGameMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(adminRemoveGameMessage_);
                adminRemoveGameMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000400;
              break;
            }
            case 610: {
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00000800) == 0x00000800)) {
                subBuilder = adminRemoveGameAckMessage_.toBuilder();
              }
              adminRemoveGameAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(adminRemoveGameAckMessage_);
                adminRemoveGameAckMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00000800;
              break;
            }
            case 618: {
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00001000) == 0x00001000)) {
                subBuilder = adminBanPlayerMessage_.toBuilder();
              }
              adminBanPlayerMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(adminBanPlayerMessage_);
                adminBanPlayerMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00001000;
              break;
            }
            case 626: {
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00002000) == 0x00002000)) {
                subBuilder = adminBanPlayerAckMessage_.toBuilder();
              }
              adminBanPlayerAckMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(adminBanPlayerAckMessage_);
                adminBanPlayerAckMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00002000;
              break;
            }
            case 634: {
              de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00004000) == 0x00004000)) {
                subBuilder = gameListSpectatorJoinedMessage_.toBuilder();
              }
              gameListSpectatorJoinedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListSpectatorJoinedMessage_);
                gameListSpectatorJoinedMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00004000;
              break;
            }
            case 642: {
              de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00008000) == 0x00008000)) {
                subBuilder = gameListSpectatorLeftMessage_.toBuilder();
              }
              gameListSpectatorLeftMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameListSpectatorLeftMessage_);
                gameListSpectatorLeftMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00008000;
              break;
            }
            case 650: {
              de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00010000) == 0x00010000)) {
                subBuilder = gameSpectatorJoinedMessage_.toBuilder();
              }
              gameSpectatorJoinedMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameSpectatorJoinedMessage_);
                gameSpectatorJoinedMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00010000;
              break;
            }
            case 658: {
              de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder subBuilder = null;
              if (((bitField2_ & 0x00020000) == 0x00020000)) {
                subBuilder = gameSpectatorLeftMessage_.toBuilder();
              }
              gameSpectatorLeftMessage_ = input.readMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameSpectatorLeftMessage_);
                gameSpectatorLeftMessage_ = subBuilder.buildPartial();
              }
              bitField2_ |= 0x00020000;
              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 {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static com.google.protobuf.Parser<PokerTHMessage> PARSER =
        new com.google.protobuf.AbstractParser<PokerTHMessage>() {
      public PokerTHMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PokerTHMessage(input, extensionRegistry);
      }
    };

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

    /**
     * Protobuf enum {@code PokerTHMessage.PokerTHMessageType}
     */
    public enum PokerTHMessageType
        implements com.google.protobuf.Internal.EnumLite {
      /**
       * <code>Type_AnnounceMessage = 1;</code>
       */
      Type_AnnounceMessage(0, 1),
      /**
       * <code>Type_InitMessage = 2;</code>
       */
      Type_InitMessage(1, 2),
      /**
       * <code>Type_AuthServerChallengeMessage = 3;</code>
       */
      Type_AuthServerChallengeMessage(2, 3),
      /**
       * <code>Type_AuthClientResponseMessage = 4;</code>
       */
      Type_AuthClientResponseMessage(3, 4),
      /**
       * <code>Type_AuthServerVerificationMessage = 5;</code>
       */
      Type_AuthServerVerificationMessage(4, 5),
      /**
       * <code>Type_InitAckMessage = 6;</code>
       */
      Type_InitAckMessage(5, 6),
      /**
       * <code>Type_AvatarRequestMessage = 7;</code>
       */
      Type_AvatarRequestMessage(6, 7),
      /**
       * <code>Type_AvatarHeaderMessage = 8;</code>
       */
      Type_AvatarHeaderMessage(7, 8),
      /**
       * <code>Type_AvatarDataMessage = 9;</code>
       */
      Type_AvatarDataMessage(8, 9),
      /**
       * <code>Type_AvatarEndMessage = 10;</code>
       */
      Type_AvatarEndMessage(9, 10),
      /**
       * <code>Type_UnknownAvatarMessage = 11;</code>
       */
      Type_UnknownAvatarMessage(10, 11),
      /**
       * <code>Type_PlayerListMessage = 12;</code>
       */
      Type_PlayerListMessage(11, 12),
      /**
       * <code>Type_GameListNewMessage = 13;</code>
       */
      Type_GameListNewMessage(12, 13),
      /**
       * <code>Type_GameListUpdateMessage = 14;</code>
       */
      Type_GameListUpdateMessage(13, 14),
      /**
       * <code>Type_GameListPlayerJoinedMessage = 15;</code>
       */
      Type_GameListPlayerJoinedMessage(14, 15),
      /**
       * <code>Type_GameListPlayerLeftMessage = 16;</code>
       */
      Type_GameListPlayerLeftMessage(15, 16),
      /**
       * <code>Type_GameListAdminChangedMessage = 17;</code>
       */
      Type_GameListAdminChangedMessage(16, 17),
      /**
       * <code>Type_PlayerInfoRequestMessage = 18;</code>
       */
      Type_PlayerInfoRequestMessage(17, 18),
      /**
       * <code>Type_PlayerInfoReplyMessage = 19;</code>
       */
      Type_PlayerInfoReplyMessage(18, 19),
      /**
       * <code>Type_SubscriptionRequestMessage = 20;</code>
       */
      Type_SubscriptionRequestMessage(19, 20),
      /**
       * <code>Type_JoinExistingGameMessage = 21;</code>
       */
      Type_JoinExistingGameMessage(20, 21),
      /**
       * <code>Type_JoinNewGameMessage = 22;</code>
       */
      Type_JoinNewGameMessage(21, 22),
      /**
       * <code>Type_RejoinExistingGameMessage = 23;</code>
       */
      Type_RejoinExistingGameMessage(22, 23),
      /**
       * <code>Type_JoinGameAckMessage = 24;</code>
       */
      Type_JoinGameAckMessage(23, 24),
      /**
       * <code>Type_JoinGameFailedMessage = 25;</code>
       */
      Type_JoinGameFailedMessage(24, 25),
      /**
       * <code>Type_GamePlayerJoinedMessage = 26;</code>
       */
      Type_GamePlayerJoinedMessage(25, 26),
      /**
       * <code>Type_GamePlayerLeftMessage = 27;</code>
       */
      Type_GamePlayerLeftMessage(26, 27),
      /**
       * <code>Type_GameAdminChangedMessage = 28;</code>
       */
      Type_GameAdminChangedMessage(27, 28),
      /**
       * <code>Type_RemovedFromGameMessage = 29;</code>
       */
      Type_RemovedFromGameMessage(28, 29),
      /**
       * <code>Type_KickPlayerRequestMessage = 30;</code>
       */
      Type_KickPlayerRequestMessage(29, 30),
      /**
       * <code>Type_LeaveGameRequestMessage = 31;</code>
       */
      Type_LeaveGameRequestMessage(30, 31),
      /**
       * <code>Type_InvitePlayerToGameMessage = 32;</code>
       */
      Type_InvitePlayerToGameMessage(31, 32),
      /**
       * <code>Type_InviteNotifyMessage = 33;</code>
       */
      Type_InviteNotifyMessage(32, 33),
      /**
       * <code>Type_RejectGameInvitationMessage = 34;</code>
       */
      Type_RejectGameInvitationMessage(33, 34),
      /**
       * <code>Type_RejectInvNotifyMessage = 35;</code>
       */
      Type_RejectInvNotifyMessage(34, 35),
      /**
       * <code>Type_StartEventMessage = 36;</code>
       */
      Type_StartEventMessage(35, 36),
      /**
       * <code>Type_StartEventAckMessage = 37;</code>
       */
      Type_StartEventAckMessage(36, 37),
      /**
       * <code>Type_GameStartInitialMessage = 38;</code>
       */
      Type_GameStartInitialMessage(37, 38),
      /**
       * <code>Type_GameStartRejoinMessage = 39;</code>
       */
      Type_GameStartRejoinMessage(38, 39),
      /**
       * <code>Type_HandStartMessage = 40;</code>
       */
      Type_HandStartMessage(39, 40),
      /**
       * <code>Type_PlayersTurnMessage = 41;</code>
       */
      Type_PlayersTurnMessage(40, 41),
      /**
       * <code>Type_MyActionRequestMessage = 42;</code>
       */
      Type_MyActionRequestMessage(41, 42),
      /**
       * <code>Type_YourActionRejectedMessage = 43;</code>
       */
      Type_YourActionRejectedMessage(42, 43),
      /**
       * <code>Type_PlayersActionDoneMessage = 44;</code>
       */
      Type_PlayersActionDoneMessage(43, 44),
      /**
       * <code>Type_DealFlopCardsMessage = 45;</code>
       */
      Type_DealFlopCardsMessage(44, 45),
      /**
       * <code>Type_DealTurnCardMessage = 46;</code>
       */
      Type_DealTurnCardMessage(45, 46),
      /**
       * <code>Type_DealRiverCardMessage = 47;</code>
       */
      Type_DealRiverCardMessage(46, 47),
      /**
       * <code>Type_AllInShowCardsMessage = 48;</code>
       */
      Type_AllInShowCardsMessage(47, 48),
      /**
       * <code>Type_EndOfHandShowCardsMessage = 49;</code>
       */
      Type_EndOfHandShowCardsMessage(48, 49),
      /**
       * <code>Type_EndOfHandHideCardsMessage = 50;</code>
       */
      Type_EndOfHandHideCardsMessage(49, 50),
      /**
       * <code>Type_ShowMyCardsRequestMessage = 51;</code>
       */
      Type_ShowMyCardsRequestMessage(50, 51),
      /**
       * <code>Type_AfterHandShowCardsMessage = 52;</code>
       */
      Type_AfterHandShowCardsMessage(51, 52),
      /**
       * <code>Type_EndOfGameMessage = 53;</code>
       */
      Type_EndOfGameMessage(52, 53),
      /**
       * <code>Type_PlayerIdChangedMessage = 54;</code>
       */
      Type_PlayerIdChangedMessage(53, 54),
      /**
       * <code>Type_AskKickPlayerMessage = 55;</code>
       */
      Type_AskKickPlayerMessage(54, 55),
      /**
       * <code>Type_AskKickDeniedMessage = 56;</code>
       */
      Type_AskKickDeniedMessage(55, 56),
      /**
       * <code>Type_StartKickPetitionMessage = 57;</code>
       */
      Type_StartKickPetitionMessage(56, 57),
      /**
       * <code>Type_VoteKickRequestMessage = 58;</code>
       */
      Type_VoteKickRequestMessage(57, 58),
      /**
       * <code>Type_VoteKickReplyMessage = 59;</code>
       */
      Type_VoteKickReplyMessage(58, 59),
      /**
       * <code>Type_KickPetitionUpdateMessage = 60;</code>
       */
      Type_KickPetitionUpdateMessage(59, 60),
      /**
       * <code>Type_EndKickPetitionMessage = 61;</code>
       */
      Type_EndKickPetitionMessage(60, 61),
      /**
       * <code>Type_StatisticsMessage = 62;</code>
       */
      Type_StatisticsMessage(61, 62),
      /**
       * <code>Type_ChatRequestMessage = 63;</code>
       */
      Type_ChatRequestMessage(62, 63),
      /**
       * <code>Type_ChatMessage = 64;</code>
       */
      Type_ChatMessage(63, 64),
      /**
       * <code>Type_ChatRejectMessage = 65;</code>
       */
      Type_ChatRejectMessage(64, 65),
      /**
       * <code>Type_DialogMessage = 66;</code>
       */
      Type_DialogMessage(65, 66),
      /**
       * <code>Type_TimeoutWarningMessage = 67;</code>
       */
      Type_TimeoutWarningMessage(66, 67),
      /**
       * <code>Type_ResetTimeoutMessage = 68;</code>
       */
      Type_ResetTimeoutMessage(67, 68),
      /**
       * <code>Type_ReportAvatarMessage = 69;</code>
       */
      Type_ReportAvatarMessage(68, 69),
      /**
       * <code>Type_ReportAvatarAckMessage = 70;</code>
       */
      Type_ReportAvatarAckMessage(69, 70),
      /**
       * <code>Type_ReportGameMessage = 71;</code>
       */
      Type_ReportGameMessage(70, 71),
      /**
       * <code>Type_ReportGameAckMessage = 72;</code>
       */
      Type_ReportGameAckMessage(71, 72),
      /**
       * <code>Type_ErrorMessage = 73;</code>
       */
      Type_ErrorMessage(72, 73),
      /**
       * <code>Type_AdminRemoveGameMessage = 74;</code>
       */
      Type_AdminRemoveGameMessage(73, 74),
      /**
       * <code>Type_AdminRemoveGameAckMessage = 75;</code>
       */
      Type_AdminRemoveGameAckMessage(74, 75),
      /**
       * <code>Type_AdminBanPlayerMessage = 76;</code>
       */
      Type_AdminBanPlayerMessage(75, 76),
      /**
       * <code>Type_AdminBanPlayerAckMessage = 77;</code>
       */
      Type_AdminBanPlayerAckMessage(76, 77),
      /**
       * <code>Type_GameListSpectatorJoinedMessage = 78;</code>
       */
      Type_GameListSpectatorJoinedMessage(77, 78),
      /**
       * <code>Type_GameListSpectatorLeftMessage = 79;</code>
       */
      Type_GameListSpectatorLeftMessage(78, 79),
      /**
       * <code>Type_GameSpectatorJoinedMessage = 80;</code>
       */
      Type_GameSpectatorJoinedMessage(79, 80),
      /**
       * <code>Type_GameSpectatorLeftMessage = 81;</code>
       */
      Type_GameSpectatorLeftMessage(80, 81),
      ;

      /**
       * <code>Type_AnnounceMessage = 1;</code>
       */
      public static final int Type_AnnounceMessage_VALUE = 1;
      /**
       * <code>Type_InitMessage = 2;</code>
       */
      public static final int Type_InitMessage_VALUE = 2;
      /**
       * <code>Type_AuthServerChallengeMessage = 3;</code>
       */
      public static final int Type_AuthServerChallengeMessage_VALUE = 3;
      /**
       * <code>Type_AuthClientResponseMessage = 4;</code>
       */
      public static final int Type_AuthClientResponseMessage_VALUE = 4;
      /**
       * <code>Type_AuthServerVerificationMessage = 5;</code>
       */
      public static final int Type_AuthServerVerificationMessage_VALUE = 5;
      /**
       * <code>Type_InitAckMessage = 6;</code>
       */
      public static final int Type_InitAckMessage_VALUE = 6;
      /**
       * <code>Type_AvatarRequestMessage = 7;</code>
       */
      public static final int Type_AvatarRequestMessage_VALUE = 7;
      /**
       * <code>Type_AvatarHeaderMessage = 8;</code>
       */
      public static final int Type_AvatarHeaderMessage_VALUE = 8;
      /**
       * <code>Type_AvatarDataMessage = 9;</code>
       */
      public static final int Type_AvatarDataMessage_VALUE = 9;
      /**
       * <code>Type_AvatarEndMessage = 10;</code>
       */
      public static final int Type_AvatarEndMessage_VALUE = 10;
      /**
       * <code>Type_UnknownAvatarMessage = 11;</code>
       */
      public static final int Type_UnknownAvatarMessage_VALUE = 11;
      /**
       * <code>Type_PlayerListMessage = 12;</code>
       */
      public static final int Type_PlayerListMessage_VALUE = 12;
      /**
       * <code>Type_GameListNewMessage = 13;</code>
       */
      public static final int Type_GameListNewMessage_VALUE = 13;
      /**
       * <code>Type_GameListUpdateMessage = 14;</code>
       */
      public static final int Type_GameListUpdateMessage_VALUE = 14;
      /**
       * <code>Type_GameListPlayerJoinedMessage = 15;</code>
       */
      public static final int Type_GameListPlayerJoinedMessage_VALUE = 15;
      /**
       * <code>Type_GameListPlayerLeftMessage = 16;</code>
       */
      public static final int Type_GameListPlayerLeftMessage_VALUE = 16;
      /**
       * <code>Type_GameListAdminChangedMessage = 17;</code>
       */
      public static final int Type_GameListAdminChangedMessage_VALUE = 17;
      /**
       * <code>Type_PlayerInfoRequestMessage = 18;</code>
       */
      public static final int Type_PlayerInfoRequestMessage_VALUE = 18;
      /**
       * <code>Type_PlayerInfoReplyMessage = 19;</code>
       */
      public static final int Type_PlayerInfoReplyMessage_VALUE = 19;
      /**
       * <code>Type_SubscriptionRequestMessage = 20;</code>
       */
      public static final int Type_SubscriptionRequestMessage_VALUE = 20;
      /**
       * <code>Type_JoinExistingGameMessage = 21;</code>
       */
      public static final int Type_JoinExistingGameMessage_VALUE = 21;
      /**
       * <code>Type_JoinNewGameMessage = 22;</code>
       */
      public static final int Type_JoinNewGameMessage_VALUE = 22;
      /**
       * <code>Type_RejoinExistingGameMessage = 23;</code>
       */
      public static final int Type_RejoinExistingGameMessage_VALUE = 23;
      /**
       * <code>Type_JoinGameAckMessage = 24;</code>
       */
      public static final int Type_JoinGameAckMessage_VALUE = 24;
      /**
       * <code>Type_JoinGameFailedMessage = 25;</code>
       */
      public static final int Type_JoinGameFailedMessage_VALUE = 25;
      /**
       * <code>Type_GamePlayerJoinedMessage = 26;</code>
       */
      public static final int Type_GamePlayerJoinedMessage_VALUE = 26;
      /**
       * <code>Type_GamePlayerLeftMessage = 27;</code>
       */
      public static final int Type_GamePlayerLeftMessage_VALUE = 27;
      /**
       * <code>Type_GameAdminChangedMessage = 28;</code>
       */
      public static final int Type_GameAdminChangedMessage_VALUE = 28;
      /**
       * <code>Type_RemovedFromGameMessage = 29;</code>
       */
      public static final int Type_RemovedFromGameMessage_VALUE = 29;
      /**
       * <code>Type_KickPlayerRequestMessage = 30;</code>
       */
      public static final int Type_KickPlayerRequestMessage_VALUE = 30;
      /**
       * <code>Type_LeaveGameRequestMessage = 31;</code>
       */
      public static final int Type_LeaveGameRequestMessage_VALUE = 31;
      /**
       * <code>Type_InvitePlayerToGameMessage = 32;</code>
       */
      public static final int Type_InvitePlayerToGameMessage_VALUE = 32;
      /**
       * <code>Type_InviteNotifyMessage = 33;</code>
       */
      public static final int Type_InviteNotifyMessage_VALUE = 33;
      /**
       * <code>Type_RejectGameInvitationMessage = 34;</code>
       */
      public static final int Type_RejectGameInvitationMessage_VALUE = 34;
      /**
       * <code>Type_RejectInvNotifyMessage = 35;</code>
       */
      public static final int Type_RejectInvNotifyMessage_VALUE = 35;
      /**
       * <code>Type_StartEventMessage = 36;</code>
       */
      public static final int Type_StartEventMessage_VALUE = 36;
      /**
       * <code>Type_StartEventAckMessage = 37;</code>
       */
      public static final int Type_StartEventAckMessage_VALUE = 37;
      /**
       * <code>Type_GameStartInitialMessage = 38;</code>
       */
      public static final int Type_GameStartInitialMessage_VALUE = 38;
      /**
       * <code>Type_GameStartRejoinMessage = 39;</code>
       */
      public static final int Type_GameStartRejoinMessage_VALUE = 39;
      /**
       * <code>Type_HandStartMessage = 40;</code>
       */
      public static final int Type_HandStartMessage_VALUE = 40;
      /**
       * <code>Type_PlayersTurnMessage = 41;</code>
       */
      public static final int Type_PlayersTurnMessage_VALUE = 41;
      /**
       * <code>Type_MyActionRequestMessage = 42;</code>
       */
      public static final int Type_MyActionRequestMessage_VALUE = 42;
      /**
       * <code>Type_YourActionRejectedMessage = 43;</code>
       */
      public static final int Type_YourActionRejectedMessage_VALUE = 43;
      /**
       * <code>Type_PlayersActionDoneMessage = 44;</code>
       */
      public static final int Type_PlayersActionDoneMessage_VALUE = 44;
      /**
       * <code>Type_DealFlopCardsMessage = 45;</code>
       */
      public static final int Type_DealFlopCardsMessage_VALUE = 45;
      /**
       * <code>Type_DealTurnCardMessage = 46;</code>
       */
      public static final int Type_DealTurnCardMessage_VALUE = 46;
      /**
       * <code>Type_DealRiverCardMessage = 47;</code>
       */
      public static final int Type_DealRiverCardMessage_VALUE = 47;
      /**
       * <code>Type_AllInShowCardsMessage = 48;</code>
       */
      public static final int Type_AllInShowCardsMessage_VALUE = 48;
      /**
       * <code>Type_EndOfHandShowCardsMessage = 49;</code>
       */
      public static final int Type_EndOfHandShowCardsMessage_VALUE = 49;
      /**
       * <code>Type_EndOfHandHideCardsMessage = 50;</code>
       */
      public static final int Type_EndOfHandHideCardsMessage_VALUE = 50;
      /**
       * <code>Type_ShowMyCardsRequestMessage = 51;</code>
       */
      public static final int Type_ShowMyCardsRequestMessage_VALUE = 51;
      /**
       * <code>Type_AfterHandShowCardsMessage = 52;</code>
       */
      public static final int Type_AfterHandShowCardsMessage_VALUE = 52;
      /**
       * <code>Type_EndOfGameMessage = 53;</code>
       */
      public static final int Type_EndOfGameMessage_VALUE = 53;
      /**
       * <code>Type_PlayerIdChangedMessage = 54;</code>
       */
      public static final int Type_PlayerIdChangedMessage_VALUE = 54;
      /**
       * <code>Type_AskKickPlayerMessage = 55;</code>
       */
      public static final int Type_AskKickPlayerMessage_VALUE = 55;
      /**
       * <code>Type_AskKickDeniedMessage = 56;</code>
       */
      public static final int Type_AskKickDeniedMessage_VALUE = 56;
      /**
       * <code>Type_StartKickPetitionMessage = 57;</code>
       */
      public static final int Type_StartKickPetitionMessage_VALUE = 57;
      /**
       * <code>Type_VoteKickRequestMessage = 58;</code>
       */
      public static final int Type_VoteKickRequestMessage_VALUE = 58;
      /**
       * <code>Type_VoteKickReplyMessage = 59;</code>
       */
      public static final int Type_VoteKickReplyMessage_VALUE = 59;
      /**
       * <code>Type_KickPetitionUpdateMessage = 60;</code>
       */
      public static final int Type_KickPetitionUpdateMessage_VALUE = 60;
      /**
       * <code>Type_EndKickPetitionMessage = 61;</code>
       */
      public static final int Type_EndKickPetitionMessage_VALUE = 61;
      /**
       * <code>Type_StatisticsMessage = 62;</code>
       */
      public static final int Type_StatisticsMessage_VALUE = 62;
      /**
       * <code>Type_ChatRequestMessage = 63;</code>
       */
      public static final int Type_ChatRequestMessage_VALUE = 63;
      /**
       * <code>Type_ChatMessage = 64;</code>
       */
      public static final int Type_ChatMessage_VALUE = 64;
      /**
       * <code>Type_ChatRejectMessage = 65;</code>
       */
      public static final int Type_ChatRejectMessage_VALUE = 65;
      /**
       * <code>Type_DialogMessage = 66;</code>
       */
      public static final int Type_DialogMessage_VALUE = 66;
      /**
       * <code>Type_TimeoutWarningMessage = 67;</code>
       */
      public static final int Type_TimeoutWarningMessage_VALUE = 67;
      /**
       * <code>Type_ResetTimeoutMessage = 68;</code>
       */
      public static final int Type_ResetTimeoutMessage_VALUE = 68;
      /**
       * <code>Type_ReportAvatarMessage = 69;</code>
       */
      public static final int Type_ReportAvatarMessage_VALUE = 69;
      /**
       * <code>Type_ReportAvatarAckMessage = 70;</code>
       */
      public static final int Type_ReportAvatarAckMessage_VALUE = 70;
      /**
       * <code>Type_ReportGameMessage = 71;</code>
       */
      public static final int Type_ReportGameMessage_VALUE = 71;
      /**
       * <code>Type_ReportGameAckMessage = 72;</code>
       */
      public static final int Type_ReportGameAckMessage_VALUE = 72;
      /**
       * <code>Type_ErrorMessage = 73;</code>
       */
      public static final int Type_ErrorMessage_VALUE = 73;
      /**
       * <code>Type_AdminRemoveGameMessage = 74;</code>
       */
      public static final int Type_AdminRemoveGameMessage_VALUE = 74;
      /**
       * <code>Type_AdminRemoveGameAckMessage = 75;</code>
       */
      public static final int Type_AdminRemoveGameAckMessage_VALUE = 75;
      /**
       * <code>Type_AdminBanPlayerMessage = 76;</code>
       */
      public static final int Type_AdminBanPlayerMessage_VALUE = 76;
      /**
       * <code>Type_AdminBanPlayerAckMessage = 77;</code>
       */
      public static final int Type_AdminBanPlayerAckMessage_VALUE = 77;
      /**
       * <code>Type_GameListSpectatorJoinedMessage = 78;</code>
       */
      public static final int Type_GameListSpectatorJoinedMessage_VALUE = 78;
      /**
       * <code>Type_GameListSpectatorLeftMessage = 79;</code>
       */
      public static final int Type_GameListSpectatorLeftMessage_VALUE = 79;
      /**
       * <code>Type_GameSpectatorJoinedMessage = 80;</code>
       */
      public static final int Type_GameSpectatorJoinedMessage_VALUE = 80;
      /**
       * <code>Type_GameSpectatorLeftMessage = 81;</code>
       */
      public static final int Type_GameSpectatorLeftMessage_VALUE = 81;


      public final int getNumber() { return value; }

      public static PokerTHMessageType valueOf(int value) {
        switch (value) {
          case 1: return Type_AnnounceMessage;
          case 2: return Type_InitMessage;
          case 3: return Type_AuthServerChallengeMessage;
          case 4: return Type_AuthClientResponseMessage;
          case 5: return Type_AuthServerVerificationMessage;
          case 6: return Type_InitAckMessage;
          case 7: return Type_AvatarRequestMessage;
          case 8: return Type_AvatarHeaderMessage;
          case 9: return Type_AvatarDataMessage;
          case 10: return Type_AvatarEndMessage;
          case 11: return Type_UnknownAvatarMessage;
          case 12: return Type_PlayerListMessage;
          case 13: return Type_GameListNewMessage;
          case 14: return Type_GameListUpdateMessage;
          case 15: return Type_GameListPlayerJoinedMessage;
          case 16: return Type_GameListPlayerLeftMessage;
          case 17: return Type_GameListAdminChangedMessage;
          case 18: return Type_PlayerInfoRequestMessage;
          case 19: return Type_PlayerInfoReplyMessage;
          case 20: return Type_SubscriptionRequestMessage;
          case 21: return Type_JoinExistingGameMessage;
          case 22: return Type_JoinNewGameMessage;
          case 23: return Type_RejoinExistingGameMessage;
          case 24: return Type_JoinGameAckMessage;
          case 25: return Type_JoinGameFailedMessage;
          case 26: return Type_GamePlayerJoinedMessage;
          case 27: return Type_GamePlayerLeftMessage;
          case 28: return Type_GameAdminChangedMessage;
          case 29: return Type_RemovedFromGameMessage;
          case 30: return Type_KickPlayerRequestMessage;
          case 31: return Type_LeaveGameRequestMessage;
          case 32: return Type_InvitePlayerToGameMessage;
          case 33: return Type_InviteNotifyMessage;
          case 34: return Type_RejectGameInvitationMessage;
          case 35: return Type_RejectInvNotifyMessage;
          case 36: return Type_StartEventMessage;
          case 37: return Type_StartEventAckMessage;
          case 38: return Type_GameStartInitialMessage;
          case 39: return Type_GameStartRejoinMessage;
          case 40: return Type_HandStartMessage;
          case 41: return Type_PlayersTurnMessage;
          case 42: return Type_MyActionRequestMessage;
          case 43: return Type_YourActionRejectedMessage;
          case 44: return Type_PlayersActionDoneMessage;
          case 45: return Type_DealFlopCardsMessage;
          case 46: return Type_DealTurnCardMessage;
          case 47: return Type_DealRiverCardMessage;
          case 48: return Type_AllInShowCardsMessage;
          case 49: return Type_EndOfHandShowCardsMessage;
          case 50: return Type_EndOfHandHideCardsMessage;
          case 51: return Type_ShowMyCardsRequestMessage;
          case 52: return Type_AfterHandShowCardsMessage;
          case 53: return Type_EndOfGameMessage;
          case 54: return Type_PlayerIdChangedMessage;
          case 55: return Type_AskKickPlayerMessage;
          case 56: return Type_AskKickDeniedMessage;
          case 57: return Type_StartKickPetitionMessage;
          case 58: return Type_VoteKickRequestMessage;
          case 59: return Type_VoteKickReplyMessage;
          case 60: return Type_KickPetitionUpdateMessage;
          case 61: return Type_EndKickPetitionMessage;
          case 62: return Type_StatisticsMessage;
          case 63: return Type_ChatRequestMessage;
          case 64: return Type_ChatMessage;
          case 65: return Type_ChatRejectMessage;
          case 66: return Type_DialogMessage;
          case 67: return Type_TimeoutWarningMessage;
          case 68: return Type_ResetTimeoutMessage;
          case 69: return Type_ReportAvatarMessage;
          case 70: return Type_ReportAvatarAckMessage;
          case 71: return Type_ReportGameMessage;
          case 72: return Type_ReportGameAckMessage;
          case 73: return Type_ErrorMessage;
          case 74: return Type_AdminRemoveGameMessage;
          case 75: return Type_AdminRemoveGameAckMessage;
          case 76: return Type_AdminBanPlayerMessage;
          case 77: return Type_AdminBanPlayerAckMessage;
          case 78: return Type_GameListSpectatorJoinedMessage;
          case 79: return Type_GameListSpectatorLeftMessage;
          case 80: return Type_GameSpectatorJoinedMessage;
          case 81: return Type_GameSpectatorLeftMessage;
          default: return null;
        }
      }

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:PokerTHMessage.PokerTHMessageType)
    }

    private int bitField0_;
    private int bitField1_;
    private int bitField2_;
    public static final int MESSAGETYPE_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType messageType_;
    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     */
    public boolean hasMessageType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType() {
      return messageType_;
    }

    public static final int ANNOUNCEMESSAGE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage announceMessage_;
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     */
    public boolean hasAnnounceMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage() {
      return announceMessage_;
    }

    public static final int INITMESSAGE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.InitMessage initMessage_;
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     */
    public boolean hasInitMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     */
    public de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage() {
      return initMessage_;
    }

    public static final int AUTHSERVERCHALLENGEMESSAGE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage authServerChallengeMessage_;
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     */
    public boolean hasAuthServerChallengeMessage() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage() {
      return authServerChallengeMessage_;
    }

    public static final int AUTHCLIENTRESPONSEMESSAGE_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage authClientResponseMessage_;
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     */
    public boolean hasAuthClientResponseMessage() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage() {
      return authClientResponseMessage_;
    }

    public static final int AUTHSERVERVERIFICATIONMESSAGE_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage authServerVerificationMessage_;
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     */
    public boolean hasAuthServerVerificationMessage() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage() {
      return authServerVerificationMessage_;
    }

    public static final int INITACKMESSAGE_FIELD_NUMBER = 7;
    private de.pokerth.protocol.ProtoBuf.InitAckMessage initAckMessage_;
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     */
    public boolean hasInitAckMessage() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     */
    public de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage() {
      return initAckMessage_;
    }

    public static final int AVATARREQUESTMESSAGE_FIELD_NUMBER = 8;
    private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage avatarRequestMessage_;
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     */
    public boolean hasAvatarRequestMessage() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage() {
      return avatarRequestMessage_;
    }

    public static final int AVATARHEADERMESSAGE_FIELD_NUMBER = 9;
    private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage avatarHeaderMessage_;
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     */
    public boolean hasAvatarHeaderMessage() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage() {
      return avatarHeaderMessage_;
    }

    public static final int AVATARDATAMESSAGE_FIELD_NUMBER = 10;
    private de.pokerth.protocol.ProtoBuf.AvatarDataMessage avatarDataMessage_;
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     */
    public boolean hasAvatarDataMessage() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage() {
      return avatarDataMessage_;
    }

    public static final int AVATARENDMESSAGE_FIELD_NUMBER = 11;
    private de.pokerth.protocol.ProtoBuf.AvatarEndMessage avatarEndMessage_;
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     */
    public boolean hasAvatarEndMessage() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage() {
      return avatarEndMessage_;
    }

    public static final int UNKNOWNAVATARMESSAGE_FIELD_NUMBER = 12;
    private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage unknownAvatarMessage_;
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     */
    public boolean hasUnknownAvatarMessage() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     */
    public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage() {
      return unknownAvatarMessage_;
    }

    public static final int PLAYERLISTMESSAGE_FIELD_NUMBER = 13;
    private de.pokerth.protocol.ProtoBuf.PlayerListMessage playerListMessage_;
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     */
    public boolean hasPlayerListMessage() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage() {
      return playerListMessage_;
    }

    public static final int GAMELISTNEWMESSAGE_FIELD_NUMBER = 14;
    private de.pokerth.protocol.ProtoBuf.GameListNewMessage gameListNewMessage_;
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     */
    public boolean hasGameListNewMessage() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage() {
      return gameListNewMessage_;
    }

    public static final int GAMELISTUPDATEMESSAGE_FIELD_NUMBER = 15;
    private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage gameListUpdateMessage_;
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     */
    public boolean hasGameListUpdateMessage() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage() {
      return gameListUpdateMessage_;
    }

    public static final int GAMELISTPLAYERJOINEDMESSAGE_FIELD_NUMBER = 16;
    private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage gameListPlayerJoinedMessage_;
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     */
    public boolean hasGameListPlayerJoinedMessage() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage() {
      return gameListPlayerJoinedMessage_;
    }

    public static final int GAMELISTPLAYERLEFTMESSAGE_FIELD_NUMBER = 17;
    private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage gameListPlayerLeftMessage_;
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     */
    public boolean hasGameListPlayerLeftMessage() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage() {
      return gameListPlayerLeftMessage_;
    }

    public static final int GAMELISTADMINCHANGEDMESSAGE_FIELD_NUMBER = 18;
    private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage gameListAdminChangedMessage_;
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     */
    public boolean hasGameListAdminChangedMessage() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage() {
      return gameListAdminChangedMessage_;
    }

    public static final int PLAYERINFOREQUESTMESSAGE_FIELD_NUMBER = 19;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage playerInfoRequestMessage_;
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     */
    public boolean hasPlayerInfoRequestMessage() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage() {
      return playerInfoRequestMessage_;
    }

    public static final int PLAYERINFOREPLYMESSAGE_FIELD_NUMBER = 20;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage playerInfoReplyMessage_;
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     */
    public boolean hasPlayerInfoReplyMessage() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage() {
      return playerInfoReplyMessage_;
    }

    public static final int SUBSCRIPTIONREQUESTMESSAGE_FIELD_NUMBER = 21;
    private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage subscriptionRequestMessage_;
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     */
    public boolean hasSubscriptionRequestMessage() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     */
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage() {
      return subscriptionRequestMessage_;
    }

    public static final int JOINEXISTINGGAMEMESSAGE_FIELD_NUMBER = 22;
    private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage joinExistingGameMessage_;
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     */
    public boolean hasJoinExistingGameMessage() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     */
    public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage() {
      return joinExistingGameMessage_;
    }

    public static final int JOINNEWGAMEMESSAGE_FIELD_NUMBER = 23;
    private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage joinNewGameMessage_;
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     */
    public boolean hasJoinNewGameMessage() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     */
    public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage() {
      return joinNewGameMessage_;
    }

    public static final int REJOINEXISTINGGAMEMESSAGE_FIELD_NUMBER = 24;
    private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage rejoinExistingGameMessage_;
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     */
    public boolean hasRejoinExistingGameMessage() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage() {
      return rejoinExistingGameMessage_;
    }

    public static final int JOINGAMEACKMESSAGE_FIELD_NUMBER = 25;
    private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage joinGameAckMessage_;
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     */
    public boolean hasJoinGameAckMessage() {
      return ((bitField0_ & 0x01000000) == 0x01000000);
    }
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     */
    public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage() {
      return joinGameAckMessage_;
    }

    public static final int JOINGAMEFAILEDMESSAGE_FIELD_NUMBER = 26;
    private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage joinGameFailedMessage_;
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     */
    public boolean hasJoinGameFailedMessage() {
      return ((bitField0_ & 0x02000000) == 0x02000000);
    }
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     */
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage() {
      return joinGameFailedMessage_;
    }

    public static final int GAMEPLAYERJOINEDMESSAGE_FIELD_NUMBER = 27;
    private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage gamePlayerJoinedMessage_;
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     */
    public boolean hasGamePlayerJoinedMessage() {
      return ((bitField0_ & 0x04000000) == 0x04000000);
    }
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage() {
      return gamePlayerJoinedMessage_;
    }

    public static final int GAMEPLAYERLEFTMESSAGE_FIELD_NUMBER = 28;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage gamePlayerLeftMessage_;
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     */
    public boolean hasGamePlayerLeftMessage() {
      return ((bitField0_ & 0x08000000) == 0x08000000);
    }
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage() {
      return gamePlayerLeftMessage_;
    }

    public static final int GAMEADMINCHANGEDMESSAGE_FIELD_NUMBER = 29;
    private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage gameAdminChangedMessage_;
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     */
    public boolean hasGameAdminChangedMessage() {
      return ((bitField0_ & 0x10000000) == 0x10000000);
    }
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage() {
      return gameAdminChangedMessage_;
    }

    public static final int REMOVEDFROMGAMEMESSAGE_FIELD_NUMBER = 30;
    private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage removedFromGameMessage_;
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     */
    public boolean hasRemovedFromGameMessage() {
      return ((bitField0_ & 0x20000000) == 0x20000000);
    }
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage() {
      return removedFromGameMessage_;
    }

    public static final int KICKPLAYERREQUESTMESSAGE_FIELD_NUMBER = 31;
    private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage kickPlayerRequestMessage_;
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     */
    public boolean hasKickPlayerRequestMessage() {
      return ((bitField0_ & 0x40000000) == 0x40000000);
    }
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     */
    public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage() {
      return kickPlayerRequestMessage_;
    }

    public static final int LEAVEGAMEREQUESTMESSAGE_FIELD_NUMBER = 32;
    private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage leaveGameRequestMessage_;
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     */
    public boolean hasLeaveGameRequestMessage() {
      return ((bitField0_ & 0x80000000) == 0x80000000);
    }
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     */
    public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage() {
      return leaveGameRequestMessage_;
    }

    public static final int INVITEPLAYERTOGAMEMESSAGE_FIELD_NUMBER = 33;
    private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage invitePlayerToGameMessage_;
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     */
    public boolean hasInvitePlayerToGameMessage() {
      return ((bitField1_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     */
    public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage() {
      return invitePlayerToGameMessage_;
    }

    public static final int INVITENOTIFYMESSAGE_FIELD_NUMBER = 34;
    private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage inviteNotifyMessage_;
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     */
    public boolean hasInviteNotifyMessage() {
      return ((bitField1_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     */
    public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage() {
      return inviteNotifyMessage_;
    }

    public static final int REJECTGAMEINVITATIONMESSAGE_FIELD_NUMBER = 35;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage rejectGameInvitationMessage_;
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     */
    public boolean hasRejectGameInvitationMessage() {
      return ((bitField1_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage() {
      return rejectGameInvitationMessage_;
    }

    public static final int REJECTINVNOTIFYMESSAGE_FIELD_NUMBER = 36;
    private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage rejectInvNotifyMessage_;
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     */
    public boolean hasRejectInvNotifyMessage() {
      return ((bitField1_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     */
    public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage() {
      return rejectInvNotifyMessage_;
    }

    public static final int STARTEVENTMESSAGE_FIELD_NUMBER = 37;
    private de.pokerth.protocol.ProtoBuf.StartEventMessage startEventMessage_;
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     */
    public boolean hasStartEventMessage() {
      return ((bitField1_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage() {
      return startEventMessage_;
    }

    public static final int STARTEVENTACKMESSAGE_FIELD_NUMBER = 38;
    private de.pokerth.protocol.ProtoBuf.StartEventAckMessage startEventAckMessage_;
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     */
    public boolean hasStartEventAckMessage() {
      return ((bitField1_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage() {
      return startEventAckMessage_;
    }

    public static final int GAMESTARTINITIALMESSAGE_FIELD_NUMBER = 39;
    private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage gameStartInitialMessage_;
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     */
    public boolean hasGameStartInitialMessage() {
      return ((bitField1_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage() {
      return gameStartInitialMessage_;
    }

    public static final int GAMESTARTREJOINMESSAGE_FIELD_NUMBER = 40;
    private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage gameStartRejoinMessage_;
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     */
    public boolean hasGameStartRejoinMessage() {
      return ((bitField1_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage() {
      return gameStartRejoinMessage_;
    }

    public static final int HANDSTARTMESSAGE_FIELD_NUMBER = 41;
    private de.pokerth.protocol.ProtoBuf.HandStartMessage handStartMessage_;
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     */
    public boolean hasHandStartMessage() {
      return ((bitField1_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     */
    public de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage() {
      return handStartMessage_;
    }

    public static final int PLAYERSTURNMESSAGE_FIELD_NUMBER = 42;
    private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage playersTurnMessage_;
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     */
    public boolean hasPlayersTurnMessage() {
      return ((bitField1_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage() {
      return playersTurnMessage_;
    }

    public static final int MYACTIONREQUESTMESSAGE_FIELD_NUMBER = 43;
    private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage myActionRequestMessage_;
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     */
    public boolean hasMyActionRequestMessage() {
      return ((bitField1_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     */
    public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage() {
      return myActionRequestMessage_;
    }

    public static final int YOURACTIONREJECTEDMESSAGE_FIELD_NUMBER = 44;
    private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage yourActionRejectedMessage_;
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     */
    public boolean hasYourActionRejectedMessage() {
      return ((bitField1_ & 0x00000800) == 0x00000800);
    }
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     */
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage() {
      return yourActionRejectedMessage_;
    }

    public static final int PLAYERSACTIONDONEMESSAGE_FIELD_NUMBER = 45;
    private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage playersActionDoneMessage_;
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     */
    public boolean hasPlayersActionDoneMessage() {
      return ((bitField1_ & 0x00001000) == 0x00001000);
    }
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage() {
      return playersActionDoneMessage_;
    }

    public static final int DEALFLOPCARDSMESSAGE_FIELD_NUMBER = 46;
    private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage dealFlopCardsMessage_;
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     */
    public boolean hasDealFlopCardsMessage() {
      return ((bitField1_ & 0x00002000) == 0x00002000);
    }
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     */
    public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage() {
      return dealFlopCardsMessage_;
    }

    public static final int DEALTURNCARDMESSAGE_FIELD_NUMBER = 47;
    private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage dealTurnCardMessage_;
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     */
    public boolean hasDealTurnCardMessage() {
      return ((bitField1_ & 0x00004000) == 0x00004000);
    }
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     */
    public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage() {
      return dealTurnCardMessage_;
    }

    public static final int DEALRIVERCARDMESSAGE_FIELD_NUMBER = 48;
    private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage dealRiverCardMessage_;
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     */
    public boolean hasDealRiverCardMessage() {
      return ((bitField1_ & 0x00008000) == 0x00008000);
    }
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     */
    public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage() {
      return dealRiverCardMessage_;
    }

    public static final int ALLINSHOWCARDSMESSAGE_FIELD_NUMBER = 49;
    private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage allInShowCardsMessage_;
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     */
    public boolean hasAllInShowCardsMessage() {
      return ((bitField1_ & 0x00010000) == 0x00010000);
    }
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage() {
      return allInShowCardsMessage_;
    }

    public static final int ENDOFHANDSHOWCARDSMESSAGE_FIELD_NUMBER = 50;
    private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage endOfHandShowCardsMessage_;
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     */
    public boolean hasEndOfHandShowCardsMessage() {
      return ((bitField1_ & 0x00020000) == 0x00020000);
    }
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     */
    public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage() {
      return endOfHandShowCardsMessage_;
    }

    public static final int ENDOFHANDHIDECARDSMESSAGE_FIELD_NUMBER = 51;
    private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage endOfHandHideCardsMessage_;
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     */
    public boolean hasEndOfHandHideCardsMessage() {
      return ((bitField1_ & 0x00040000) == 0x00040000);
    }
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     */
    public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage() {
      return endOfHandHideCardsMessage_;
    }

    public static final int SHOWMYCARDSREQUESTMESSAGE_FIELD_NUMBER = 52;
    private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage showMyCardsRequestMessage_;
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     */
    public boolean hasShowMyCardsRequestMessage() {
      return ((bitField1_ & 0x00080000) == 0x00080000);
    }
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage() {
      return showMyCardsRequestMessage_;
    }

    public static final int AFTERHANDSHOWCARDSMESSAGE_FIELD_NUMBER = 53;
    private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage afterHandShowCardsMessage_;
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     */
    public boolean hasAfterHandShowCardsMessage() {
      return ((bitField1_ & 0x00100000) == 0x00100000);
    }
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage() {
      return afterHandShowCardsMessage_;
    }

    public static final int ENDOFGAMEMESSAGE_FIELD_NUMBER = 54;
    private de.pokerth.protocol.ProtoBuf.EndOfGameMessage endOfGameMessage_;
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     */
    public boolean hasEndOfGameMessage() {
      return ((bitField1_ & 0x00200000) == 0x00200000);
    }
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     */
    public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage() {
      return endOfGameMessage_;
    }

    public static final int PLAYERIDCHANGEDMESSAGE_FIELD_NUMBER = 55;
    private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage playerIdChangedMessage_;
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     */
    public boolean hasPlayerIdChangedMessage() {
      return ((bitField1_ & 0x00400000) == 0x00400000);
    }
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     */
    public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage() {
      return playerIdChangedMessage_;
    }

    public static final int ASKKICKPLAYERMESSAGE_FIELD_NUMBER = 56;
    private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage askKickPlayerMessage_;
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     */
    public boolean hasAskKickPlayerMessage() {
      return ((bitField1_ & 0x00800000) == 0x00800000);
    }
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage() {
      return askKickPlayerMessage_;
    }

    public static final int ASKKICKDENIEDMESSAGE_FIELD_NUMBER = 57;
    private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage askKickDeniedMessage_;
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     */
    public boolean hasAskKickDeniedMessage() {
      return ((bitField1_ & 0x01000000) == 0x01000000);
    }
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage() {
      return askKickDeniedMessage_;
    }

    public static final int STARTKICKPETITIONMESSAGE_FIELD_NUMBER = 58;
    private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage startKickPetitionMessage_;
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     */
    public boolean hasStartKickPetitionMessage() {
      return ((bitField1_ & 0x02000000) == 0x02000000);
    }
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage() {
      return startKickPetitionMessage_;
    }

    public static final int VOTEKICKREQUESTMESSAGE_FIELD_NUMBER = 59;
    private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage voteKickRequestMessage_;
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     */
    public boolean hasVoteKickRequestMessage() {
      return ((bitField1_ & 0x04000000) == 0x04000000);
    }
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     */
    public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage() {
      return voteKickRequestMessage_;
    }

    public static final int VOTEKICKREPLYMESSAGE_FIELD_NUMBER = 60;
    private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage voteKickReplyMessage_;
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     */
    public boolean hasVoteKickReplyMessage() {
      return ((bitField1_ & 0x08000000) == 0x08000000);
    }
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     */
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage() {
      return voteKickReplyMessage_;
    }

    public static final int KICKPETITIONUPDATEMESSAGE_FIELD_NUMBER = 61;
    private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage kickPetitionUpdateMessage_;
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     */
    public boolean hasKickPetitionUpdateMessage() {
      return ((bitField1_ & 0x10000000) == 0x10000000);
    }
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     */
    public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage() {
      return kickPetitionUpdateMessage_;
    }

    public static final int ENDKICKPETITIONMESSAGE_FIELD_NUMBER = 62;
    private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage endKickPetitionMessage_;
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     */
    public boolean hasEndKickPetitionMessage() {
      return ((bitField1_ & 0x20000000) == 0x20000000);
    }
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     */
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage() {
      return endKickPetitionMessage_;
    }

    public static final int STATISTICSMESSAGE_FIELD_NUMBER = 63;
    private de.pokerth.protocol.ProtoBuf.StatisticsMessage statisticsMessage_;
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     */
    public boolean hasStatisticsMessage() {
      return ((bitField1_ & 0x40000000) == 0x40000000);
    }
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     */
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage() {
      return statisticsMessage_;
    }

    public static final int CHATREQUESTMESSAGE_FIELD_NUMBER = 64;
    private de.pokerth.protocol.ProtoBuf.ChatRequestMessage chatRequestMessage_;
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     */
    public boolean hasChatRequestMessage() {
      return ((bitField1_ & 0x80000000) == 0x80000000);
    }
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage() {
      return chatRequestMessage_;
    }

    public static final int CHATMESSAGE_FIELD_NUMBER = 65;
    private de.pokerth.protocol.ProtoBuf.ChatMessage chatMessage_;
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     */
    public boolean hasChatMessage() {
      return ((bitField2_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage() {
      return chatMessage_;
    }

    public static final int CHATREJECTMESSAGE_FIELD_NUMBER = 66;
    private de.pokerth.protocol.ProtoBuf.ChatRejectMessage chatRejectMessage_;
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     */
    public boolean hasChatRejectMessage() {
      return ((bitField2_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage() {
      return chatRejectMessage_;
    }

    public static final int DIALOGMESSAGE_FIELD_NUMBER = 67;
    private de.pokerth.protocol.ProtoBuf.DialogMessage dialogMessage_;
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     */
    public boolean hasDialogMessage() {
      return ((bitField2_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     */
    public de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage() {
      return dialogMessage_;
    }

    public static final int TIMEOUTWARNINGMESSAGE_FIELD_NUMBER = 68;
    private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage timeoutWarningMessage_;
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     */
    public boolean hasTimeoutWarningMessage() {
      return ((bitField2_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     */
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage() {
      return timeoutWarningMessage_;
    }

    public static final int RESETTIMEOUTMESSAGE_FIELD_NUMBER = 69;
    private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage resetTimeoutMessage_;
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     */
    public boolean hasResetTimeoutMessage() {
      return ((bitField2_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage() {
      return resetTimeoutMessage_;
    }

    public static final int REPORTAVATARMESSAGE_FIELD_NUMBER = 70;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage reportAvatarMessage_;
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     */
    public boolean hasReportAvatarMessage() {
      return ((bitField2_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage() {
      return reportAvatarMessage_;
    }

    public static final int REPORTAVATARACKMESSAGE_FIELD_NUMBER = 71;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage reportAvatarAckMessage_;
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     */
    public boolean hasReportAvatarAckMessage() {
      return ((bitField2_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage() {
      return reportAvatarAckMessage_;
    }

    public static final int REPORTGAMEMESSAGE_FIELD_NUMBER = 72;
    private de.pokerth.protocol.ProtoBuf.ReportGameMessage reportGameMessage_;
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     */
    public boolean hasReportGameMessage() {
      return ((bitField2_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage() {
      return reportGameMessage_;
    }

    public static final int REPORTGAMEACKMESSAGE_FIELD_NUMBER = 73;
    private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage reportGameAckMessage_;
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     */
    public boolean hasReportGameAckMessage() {
      return ((bitField2_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage() {
      return reportGameAckMessage_;
    }

    public static final int ERRORMESSAGE_FIELD_NUMBER = 74;
    private de.pokerth.protocol.ProtoBuf.ErrorMessage errorMessage_;
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     */
    public boolean hasErrorMessage() {
      return ((bitField2_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     */
    public de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage() {
      return errorMessage_;
    }

    public static final int ADMINREMOVEGAMEMESSAGE_FIELD_NUMBER = 75;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage adminRemoveGameMessage_;
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     */
    public boolean hasAdminRemoveGameMessage() {
      return ((bitField2_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage() {
      return adminRemoveGameMessage_;
    }

    public static final int ADMINREMOVEGAMEACKMESSAGE_FIELD_NUMBER = 76;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage adminRemoveGameAckMessage_;
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     */
    public boolean hasAdminRemoveGameAckMessage() {
      return ((bitField2_ & 0x00000800) == 0x00000800);
    }
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage() {
      return adminRemoveGameAckMessage_;
    }

    public static final int ADMINBANPLAYERMESSAGE_FIELD_NUMBER = 77;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage adminBanPlayerMessage_;
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     */
    public boolean hasAdminBanPlayerMessage() {
      return ((bitField2_ & 0x00001000) == 0x00001000);
    }
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage() {
      return adminBanPlayerMessage_;
    }

    public static final int ADMINBANPLAYERACKMESSAGE_FIELD_NUMBER = 78;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage adminBanPlayerAckMessage_;
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     */
    public boolean hasAdminBanPlayerAckMessage() {
      return ((bitField2_ & 0x00002000) == 0x00002000);
    }
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     */
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage() {
      return adminBanPlayerAckMessage_;
    }

    public static final int GAMELISTSPECTATORJOINEDMESSAGE_FIELD_NUMBER = 79;
    private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage_;
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     */
    public boolean hasGameListSpectatorJoinedMessage() {
      return ((bitField2_ & 0x00004000) == 0x00004000);
    }
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage() {
      return gameListSpectatorJoinedMessage_;
    }

    public static final int GAMELISTSPECTATORLEFTMESSAGE_FIELD_NUMBER = 80;
    private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage gameListSpectatorLeftMessage_;
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     */
    public boolean hasGameListSpectatorLeftMessage() {
      return ((bitField2_ & 0x00008000) == 0x00008000);
    }
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage() {
      return gameListSpectatorLeftMessage_;
    }

    public static final int GAMESPECTATORJOINEDMESSAGE_FIELD_NUMBER = 81;
    private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage gameSpectatorJoinedMessage_;
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     */
    public boolean hasGameSpectatorJoinedMessage() {
      return ((bitField2_ & 0x00010000) == 0x00010000);
    }
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage() {
      return gameSpectatorJoinedMessage_;
    }

    public static final int GAMESPECTATORLEFTMESSAGE_FIELD_NUMBER = 82;
    private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage gameSpectatorLeftMessage_;
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     */
    public boolean hasGameSpectatorLeftMessage() {
      return ((bitField2_ & 0x00020000) == 0x00020000);
    }
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     */
    public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage() {
      return gameSpectatorLeftMessage_;
    }

    private void initFields() {
      messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
      announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMessageType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasAnnounceMessage()) {
        if (!getAnnounceMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInitMessage()) {
        if (!getInitMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAuthServerChallengeMessage()) {
        if (!getAuthServerChallengeMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAuthClientResponseMessage()) {
        if (!getAuthClientResponseMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAuthServerVerificationMessage()) {
        if (!getAuthServerVerificationMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInitAckMessage()) {
        if (!getInitAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarRequestMessage()) {
        if (!getAvatarRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarHeaderMessage()) {
        if (!getAvatarHeaderMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarDataMessage()) {
        if (!getAvatarDataMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarEndMessage()) {
        if (!getAvatarEndMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasUnknownAvatarMessage()) {
        if (!getUnknownAvatarMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayerListMessage()) {
        if (!getPlayerListMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListNewMessage()) {
        if (!getGameListNewMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListUpdateMessage()) {
        if (!getGameListUpdateMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListPlayerJoinedMessage()) {
        if (!getGameListPlayerJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListPlayerLeftMessage()) {
        if (!getGameListPlayerLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListAdminChangedMessage()) {
        if (!getGameListAdminChangedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayerInfoReplyMessage()) {
        if (!getPlayerInfoReplyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSubscriptionRequestMessage()) {
        if (!getSubscriptionRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinExistingGameMessage()) {
        if (!getJoinExistingGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinNewGameMessage()) {
        if (!getJoinNewGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRejoinExistingGameMessage()) {
        if (!getRejoinExistingGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinGameAckMessage()) {
        if (!getJoinGameAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinGameFailedMessage()) {
        if (!getJoinGameFailedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGamePlayerJoinedMessage()) {
        if (!getGamePlayerJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGamePlayerLeftMessage()) {
        if (!getGamePlayerLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameAdminChangedMessage()) {
        if (!getGameAdminChangedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRemovedFromGameMessage()) {
        if (!getRemovedFromGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasKickPlayerRequestMessage()) {
        if (!getKickPlayerRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLeaveGameRequestMessage()) {
        if (!getLeaveGameRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInvitePlayerToGameMessage()) {
        if (!getInvitePlayerToGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInviteNotifyMessage()) {
        if (!getInviteNotifyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRejectGameInvitationMessage()) {
        if (!getRejectGameInvitationMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRejectInvNotifyMessage()) {
        if (!getRejectInvNotifyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartEventMessage()) {
        if (!getStartEventMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartEventAckMessage()) {
        if (!getStartEventAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameStartInitialMessage()) {
        if (!getGameStartInitialMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameStartRejoinMessage()) {
        if (!getGameStartRejoinMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHandStartMessage()) {
        if (!getHandStartMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayersTurnMessage()) {
        if (!getPlayersTurnMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMyActionRequestMessage()) {
        if (!getMyActionRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasYourActionRejectedMessage()) {
        if (!getYourActionRejectedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayersActionDoneMessage()) {
        if (!getPlayersActionDoneMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDealFlopCardsMessage()) {
        if (!getDealFlopCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDealTurnCardMessage()) {
        if (!getDealTurnCardMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDealRiverCardMessage()) {
        if (!getDealRiverCardMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAllInShowCardsMessage()) {
        if (!getAllInShowCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndOfHandShowCardsMessage()) {
        if (!getEndOfHandShowCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndOfHandHideCardsMessage()) {
        if (!getEndOfHandHideCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAfterHandShowCardsMessage()) {
        if (!getAfterHandShowCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndOfGameMessage()) {
        if (!getEndOfGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayerIdChangedMessage()) {
        if (!getPlayerIdChangedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAskKickPlayerMessage()) {
        if (!getAskKickPlayerMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAskKickDeniedMessage()) {
        if (!getAskKickDeniedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartKickPetitionMessage()) {
        if (!getStartKickPetitionMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasVoteKickRequestMessage()) {
        if (!getVoteKickRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasVoteKickReplyMessage()) {
        if (!getVoteKickReplyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasKickPetitionUpdateMessage()) {
        if (!getKickPetitionUpdateMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndKickPetitionMessage()) {
        if (!getEndKickPetitionMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStatisticsMessage()) {
        if (!getStatisticsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasChatRequestMessage()) {
        if (!getChatRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasChatMessage()) {
        if (!getChatMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasChatRejectMessage()) {
        if (!getChatRejectMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDialogMessage()) {
        if (!getDialogMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTimeoutWarningMessage()) {
        if (!getTimeoutWarningMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportAvatarMessage()) {
        if (!getReportAvatarMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportAvatarAckMessage()) {
        if (!getReportAvatarAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportGameMessage()) {
        if (!getReportGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportGameAckMessage()) {
        if (!getReportGameAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasErrorMessage()) {
        if (!getErrorMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminRemoveGameMessage()) {
        if (!getAdminRemoveGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminRemoveGameAckMessage()) {
        if (!getAdminRemoveGameAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminBanPlayerMessage()) {
        if (!getAdminBanPlayerMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminBanPlayerAckMessage()) {
        if (!getAdminBanPlayerAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListSpectatorJoinedMessage()) {
        if (!getGameListSpectatorJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListSpectatorLeftMessage()) {
        if (!getGameListSpectatorLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameSpectatorJoinedMessage()) {
        if (!getGameSpectatorJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameSpectatorLeftMessage()) {
        if (!getGameSpectatorLeftMessage().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, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, announceMessage_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, initMessage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, authServerChallengeMessage_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, authClientResponseMessage_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, authServerVerificationMessage_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, initAckMessage_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, avatarRequestMessage_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, avatarHeaderMessage_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, avatarDataMessage_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, avatarEndMessage_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(12, unknownAvatarMessage_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(13, playerListMessage_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(14, gameListNewMessage_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(15, gameListUpdateMessage_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(16, gameListPlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(17, gameListPlayerLeftMessage_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(18, gameListAdminChangedMessage_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(19, playerInfoRequestMessage_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(20, playerInfoReplyMessage_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(21, subscriptionRequestMessage_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(22, joinExistingGameMessage_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(23, joinNewGameMessage_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(24, rejoinExistingGameMessage_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        output.writeMessage(25, joinGameAckMessage_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        output.writeMessage(26, joinGameFailedMessage_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        output.writeMessage(27, gamePlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        output.writeMessage(28, gamePlayerLeftMessage_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        output.writeMessage(29, gameAdminChangedMessage_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        output.writeMessage(30, removedFromGameMessage_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        output.writeMessage(31, kickPlayerRequestMessage_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        output.writeMessage(32, leaveGameRequestMessage_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(33, invitePlayerToGameMessage_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(34, inviteNotifyMessage_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(35, rejectGameInvitationMessage_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(36, rejectInvNotifyMessage_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(37, startEventMessage_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(38, startEventAckMessage_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(39, gameStartInitialMessage_);
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(40, gameStartRejoinMessage_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(41, handStartMessage_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(42, playersTurnMessage_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(43, myActionRequestMessage_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(44, yourActionRejectedMessage_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(45, playersActionDoneMessage_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(46, dealFlopCardsMessage_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(47, dealTurnCardMessage_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(48, dealRiverCardMessage_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(49, allInShowCardsMessage_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(50, endOfHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(51, endOfHandHideCardsMessage_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(52, showMyCardsRequestMessage_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(53, afterHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(54, endOfGameMessage_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(55, playerIdChangedMessage_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(56, askKickPlayerMessage_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        output.writeMessage(57, askKickDeniedMessage_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        output.writeMessage(58, startKickPetitionMessage_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        output.writeMessage(59, voteKickRequestMessage_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        output.writeMessage(60, voteKickReplyMessage_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        output.writeMessage(61, kickPetitionUpdateMessage_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        output.writeMessage(62, endKickPetitionMessage_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        output.writeMessage(63, statisticsMessage_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        output.writeMessage(64, chatRequestMessage_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(65, chatMessage_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(66, chatRejectMessage_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(67, dialogMessage_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(68, timeoutWarningMessage_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(69, resetTimeoutMessage_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(70, reportAvatarMessage_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(71, reportAvatarAckMessage_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(72, reportGameMessage_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(73, reportGameAckMessage_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(74, errorMessage_);
      }
      if (((bitField2_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(75, adminRemoveGameMessage_);
      }
      if (((bitField2_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(76, adminRemoveGameAckMessage_);
      }
      if (((bitField2_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(77, adminBanPlayerMessage_);
      }
      if (((bitField2_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(78, adminBanPlayerAckMessage_);
      }
      if (((bitField2_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(79, gameListSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(80, gameListSpectatorLeftMessage_);
      }
      if (((bitField2_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(81, gameSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(82, gameSpectatorLeftMessage_);
      }
      output.writeRawBytes(unknownFields);
    }

    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, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, announceMessage_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, initMessage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, authServerChallengeMessage_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, authClientResponseMessage_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, authServerVerificationMessage_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, initAckMessage_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, avatarRequestMessage_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, avatarHeaderMessage_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, avatarDataMessage_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, avatarEndMessage_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, unknownAvatarMessage_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, playerListMessage_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, gameListNewMessage_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, gameListUpdateMessage_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, gameListPlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, gameListPlayerLeftMessage_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, gameListAdminChangedMessage_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, playerInfoRequestMessage_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, playerInfoReplyMessage_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, subscriptionRequestMessage_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, joinExistingGameMessage_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, joinNewGameMessage_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, rejoinExistingGameMessage_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, joinGameAckMessage_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, joinGameFailedMessage_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, gamePlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, gamePlayerLeftMessage_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, gameAdminChangedMessage_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, removedFromGameMessage_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, kickPlayerRequestMessage_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, leaveGameRequestMessage_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, invitePlayerToGameMessage_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(34, inviteNotifyMessage_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, rejectGameInvitationMessage_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, rejectInvNotifyMessage_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, startEventMessage_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(38, startEventAckMessage_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, gameStartInitialMessage_);
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(40, gameStartRejoinMessage_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(41, handStartMessage_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(42, playersTurnMessage_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(43, myActionRequestMessage_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(44, yourActionRejectedMessage_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(45, playersActionDoneMessage_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(46, dealFlopCardsMessage_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(47, dealTurnCardMessage_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(48, dealRiverCardMessage_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(49, allInShowCardsMessage_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(50, endOfHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(51, endOfHandHideCardsMessage_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(52, showMyCardsRequestMessage_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(53, afterHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(54, endOfGameMessage_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(55, playerIdChangedMessage_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(56, askKickPlayerMessage_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(57, askKickDeniedMessage_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(58, startKickPetitionMessage_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(59, voteKickRequestMessage_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(60, voteKickReplyMessage_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(61, kickPetitionUpdateMessage_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(62, endKickPetitionMessage_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(63, statisticsMessage_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(64, chatRequestMessage_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(65, chatMessage_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(66, chatRejectMessage_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(67, dialogMessage_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(68, timeoutWarningMessage_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(69, resetTimeoutMessage_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(70, reportAvatarMessage_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(71, reportAvatarAckMessage_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(72, reportGameMessage_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(73, reportGameAckMessage_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(74, errorMessage_);
      }
      if (((bitField2_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(75, adminRemoveGameMessage_);
      }
      if (((bitField2_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(76, adminRemoveGameAckMessage_);
      }
      if (((bitField2_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(77, adminBanPlayerMessage_);
      }
      if (((bitField2_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(78, adminBanPlayerAckMessage_);
      }
      if (((bitField2_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(79, gameListSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(80, gameListSpectatorLeftMessage_);
      }
      if (((bitField2_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(81, gameSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(82, gameSpectatorLeftMessage_);
      }
      size += unknownFields.size();
      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 de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage 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(de.pokerth.protocol.ProtoBuf.PokerTHMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code PokerTHMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PokerTHMessage, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:PokerTHMessage)
        de.pokerth.protocol.ProtoBuf.PokerTHMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PokerTHMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
        bitField0_ = (bitField0_ & ~0x00000001);
        announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000008);
        authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000010);
        authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000020);
        initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000040);
        avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000080);
        avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000100);
        avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000200);
        avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000400);
        unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000800);
        playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00001000);
        gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00002000);
        gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00004000);
        gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00008000);
        gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00010000);
        gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00020000);
        playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00040000);
        playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00080000);
        subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00100000);
        joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00200000);
        joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00400000);
        rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00800000);
        joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x01000000);
        joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x02000000);
        gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x04000000);
        gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x08000000);
        gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x10000000);
        removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x20000000);
        kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x40000000);
        leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x80000000);
        invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000001);
        inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000002);
        rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000004);
        rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000008);
        startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000010);
        startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000020);
        gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000040);
        gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000080);
        handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000100);
        playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000200);
        myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000400);
        yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000800);
        playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00001000);
        dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00002000);
        dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00004000);
        dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00008000);
        allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00010000);
        endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00020000);
        endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00040000);
        showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00080000);
        afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00100000);
        endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00200000);
        playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00400000);
        askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00800000);
        askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x01000000);
        startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x02000000);
        voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x04000000);
        voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x08000000);
        kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x10000000);
        endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x20000000);
        statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x40000000);
        chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x80000000);
        chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000001);
        chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000002);
        dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000004);
        timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000008);
        resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000010);
        reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000020);
        reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000040);
        reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000080);
        reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000100);
        errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000200);
        adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000400);
        adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000800);
        adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00001000);
        adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00002000);
        gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00004000);
        gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00008000);
        gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00010000);
        gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00020000);
        return this;
      }

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

      public de.pokerth.protocol.ProtoBuf.PokerTHMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PokerTHMessage.getDefaultInstance();
      }

      public de.pokerth.protocol.ProtoBuf.PokerTHMessage build() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public de.pokerth.protocol.ProtoBuf.PokerTHMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = new de.pokerth.protocol.ProtoBuf.PokerTHMessage(this);
        int from_bitField0_ = bitField0_;
        int from_bitField1_ = bitField1_;
        int from_bitField2_ = bitField2_;
        int to_bitField0_ = 0;
        int to_bitField1_ = 0;
        int to_bitField2_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.announceMessage_ = announceMessage_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.initMessage_ = initMessage_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.authServerChallengeMessage_ = authServerChallengeMessage_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.authClientResponseMessage_ = authClientResponseMessage_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.authServerVerificationMessage_ = authServerVerificationMessage_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.initAckMessage_ = initAckMessage_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.avatarRequestMessage_ = avatarRequestMessage_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.avatarHeaderMessage_ = avatarHeaderMessage_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.avatarDataMessage_ = avatarDataMessage_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.avatarEndMessage_ = avatarEndMessage_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.unknownAvatarMessage_ = unknownAvatarMessage_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.playerListMessage_ = playerListMessage_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.gameListNewMessage_ = gameListNewMessage_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.gameListUpdateMessage_ = gameListUpdateMessage_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.gameListPlayerJoinedMessage_ = gameListPlayerJoinedMessage_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.gameListPlayerLeftMessage_ = gameListPlayerLeftMessage_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.gameListAdminChangedMessage_ = gameListAdminChangedMessage_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.playerInfoRequestMessage_ = playerInfoRequestMessage_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.playerInfoReplyMessage_ = playerInfoReplyMessage_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.subscriptionRequestMessage_ = subscriptionRequestMessage_;
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        result.joinExistingGameMessage_ = joinExistingGameMessage_;
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        result.joinNewGameMessage_ = joinNewGameMessage_;
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        result.rejoinExistingGameMessage_ = rejoinExistingGameMessage_;
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x01000000;
        }
        result.joinGameAckMessage_ = joinGameAckMessage_;
        if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
          to_bitField0_ |= 0x02000000;
        }
        result.joinGameFailedMessage_ = joinGameFailedMessage_;
        if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
          to_bitField0_ |= 0x04000000;
        }
        result.gamePlayerJoinedMessage_ = gamePlayerJoinedMessage_;
        if (((from_bitField0_ & 0x08000000) == 0x08000000)) {
          to_bitField0_ |= 0x08000000;
        }
        result.gamePlayerLeftMessage_ = gamePlayerLeftMessage_;
        if (((from_bitField0_ & 0x10000000) == 0x10000000)) {
          to_bitField0_ |= 0x10000000;
        }
        result.gameAdminChangedMessage_ = gameAdminChangedMessage_;
        if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
          to_bitField0_ |= 0x20000000;
        }
        result.removedFromGameMessage_ = removedFromGameMessage_;
        if (((from_bitField0_ & 0x40000000) == 0x40000000)) {
          to_bitField0_ |= 0x40000000;
        }
        result.kickPlayerRequestMessage_ = kickPlayerRequestMessage_;
        if (((from_bitField0_ & 0x80000000) == 0x80000000)) {
          to_bitField0_ |= 0x80000000;
        }
        result.leaveGameRequestMessage_ = leaveGameRequestMessage_;
        if (((from_bitField1_ & 0x00000001) == 0x00000001)) {
          to_bitField1_ |= 0x00000001;
        }
        result.invitePlayerToGameMessage_ = invitePlayerToGameMessage_;
        if (((from_bitField1_ & 0x00000002) == 0x00000002)) {
          to_bitField1_ |= 0x00000002;
        }
        result.inviteNotifyMessage_ = inviteNotifyMessage_;
        if (((from_bitField1_ & 0x00000004) == 0x00000004)) {
          to_bitField1_ |= 0x00000004;
        }
        result.rejectGameInvitationMessage_ = rejectGameInvitationMessage_;
        if (((from_bitField1_ & 0x00000008) == 0x00000008)) {
          to_bitField1_ |= 0x00000008;
        }
        result.rejectInvNotifyMessage_ = rejectInvNotifyMessage_;
        if (((from_bitField1_ & 0x00000010) == 0x00000010)) {
          to_bitField1_ |= 0x00000010;
        }
        result.startEventMessage_ = startEventMessage_;
        if (((from_bitField1_ & 0x00000020) == 0x00000020)) {
          to_bitField1_ |= 0x00000020;
        }
        result.startEventAckMessage_ = startEventAckMessage_;
        if (((from_bitField1_ & 0x00000040) == 0x00000040)) {
          to_bitField1_ |= 0x00000040;
        }
        result.gameStartInitialMessage_ = gameStartInitialMessage_;
        if (((from_bitField1_ & 0x00000080) == 0x00000080)) {
          to_bitField1_ |= 0x00000080;
        }
        result.gameStartRejoinMessage_ = gameStartRejoinMessage_;
        if (((from_bitField1_ & 0x00000100) == 0x00000100)) {
          to_bitField1_ |= 0x00000100;
        }
        result.handStartMessage_ = handStartMessage_;
        if (((from_bitField1_ & 0x00000200) == 0x00000200)) {
          to_bitField1_ |= 0x00000200;
        }
        result.playersTurnMessage_ = playersTurnMessage_;
        if (((from_bitField1_ & 0x00000400) == 0x00000400)) {
          to_bitField1_ |= 0x00000400;
        }
        result.myActionRequestMessage_ = myActionRequestMessage_;
        if (((from_bitField1_ & 0x00000800) == 0x00000800)) {
          to_bitField1_ |= 0x00000800;
        }
        result.yourActionRejectedMessage_ = yourActionRejectedMessage_;
        if (((from_bitField1_ & 0x00001000) == 0x00001000)) {
          to_bitField1_ |= 0x00001000;
        }
        result.playersActionDoneMessage_ = playersActionDoneMessage_;
        if (((from_bitField1_ & 0x00002000) == 0x00002000)) {
          to_bitField1_ |= 0x00002000;
        }
        result.dealFlopCardsMessage_ = dealFlopCardsMessage_;
        if (((from_bitField1_ & 0x00004000) == 0x00004000)) {
          to_bitField1_ |= 0x00004000;
        }
        result.dealTurnCardMessage_ = dealTurnCardMessage_;
        if (((from_bitField1_ & 0x00008000) == 0x00008000)) {
          to_bitField1_ |= 0x00008000;
        }
        result.dealRiverCardMessage_ = dealRiverCardMessage_;
        if (((from_bitField1_ & 0x00010000) == 0x00010000)) {
          to_bitField1_ |= 0x00010000;
        }
        result.allInShowCardsMessage_ = allInShowCardsMessage_;
        if (((from_bitField1_ & 0x00020000) == 0x00020000)) {
          to_bitField1_ |= 0x00020000;
        }
        result.endOfHandShowCardsMessage_ = endOfHandShowCardsMessage_;
        if (((from_bitField1_ & 0x00040000) == 0x00040000)) {
          to_bitField1_ |= 0x00040000;
        }
        result.endOfHandHideCardsMessage_ = endOfHandHideCardsMessage_;
        if (((from_bitField1_ & 0x00080000) == 0x00080000)) {
          to_bitField1_ |= 0x00080000;
        }
        result.showMyCardsRequestMessage_ = showMyCardsRequestMessage_;
        if (((from_bitField1_ & 0x00100000) == 0x00100000)) {
          to_bitField1_ |= 0x00100000;
        }
        result.afterHandShowCardsMessage_ = afterHandShowCardsMessage_;
        if (((from_bitField1_ & 0x00200000) == 0x00200000)) {
          to_bitField1_ |= 0x00200000;
        }
        result.endOfGameMessage_ = endOfGameMessage_;
        if (((from_bitField1_ & 0x00400000) == 0x00400000)) {
          to_bitField1_ |= 0x00400000;
        }
        result.playerIdChangedMessage_ = playerIdChangedMessage_;
        if (((from_bitField1_ & 0x00800000) == 0x00800000)) {
          to_bitField1_ |= 0x00800000;
        }
        result.askKickPlayerMessage_ = askKickPlayerMessage_;
        if (((from_bitField1_ & 0x01000000) == 0x01000000)) {
          to_bitField1_ |= 0x01000000;
        }
        result.askKickDeniedMessage_ = askKickDeniedMessage_;
        if (((from_bitField1_ & 0x02000000) == 0x02000000)) {
          to_bitField1_ |= 0x02000000;
        }
        result.startKickPetitionMessage_ = startKickPetitionMessage_;
        if (((from_bitField1_ & 0x04000000) == 0x04000000)) {
          to_bitField1_ |= 0x04000000;
        }
        result.voteKickRequestMessage_ = voteKickRequestMessage_;
        if (((from_bitField1_ & 0x08000000) == 0x08000000)) {
          to_bitField1_ |= 0x08000000;
        }
        result.voteKickReplyMessage_ = voteKickReplyMessage_;
        if (((from_bitField1_ & 0x10000000) == 0x10000000)) {
          to_bitField1_ |= 0x10000000;
        }
        result.kickPetitionUpdateMessage_ = kickPetitionUpdateMessage_;
        if (((from_bitField1_ & 0x20000000) == 0x20000000)) {
          to_bitField1_ |= 0x20000000;
        }
        result.endKickPetitionMessage_ = endKickPetitionMessage_;
        if (((from_bitField1_ & 0x40000000) == 0x40000000)) {
          to_bitField1_ |= 0x40000000;
        }
        result.statisticsMessage_ = statisticsMessage_;
        if (((from_bitField1_ & 0x80000000) == 0x80000000)) {
          to_bitField1_ |= 0x80000000;
        }
        result.chatRequestMessage_ = chatRequestMessage_;
        if (((from_bitField2_ & 0x00000001) == 0x00000001)) {
          to_bitField2_ |= 0x00000001;
        }
        result.chatMessage_ = chatMessage_;
        if (((from_bitField2_ & 0x00000002) == 0x00000002)) {
          to_bitField2_ |= 0x00000002;
        }
        result.chatRejectMessage_ = chatRejectMessage_;
        if (((from_bitField2_ & 0x00000004) == 0x00000004)) {
          to_bitField2_ |= 0x00000004;
        }
        result.dialogMessage_ = dialogMessage_;
        if (((from_bitField2_ & 0x00000008) == 0x00000008)) {
          to_bitField2_ |= 0x00000008;
        }
        result.timeoutWarningMessage_ = timeoutWarningMessage_;
        if (((from_bitField2_ & 0x00000010) == 0x00000010)) {
          to_bitField2_ |= 0x00000010;
        }
        result.resetTimeoutMessage_ = resetTimeoutMessage_;
        if (((from_bitField2_ & 0x00000020) == 0x00000020)) {
          to_bitField2_ |= 0x00000020;
        }
        result.reportAvatarMessage_ = reportAvatarMessage_;
        if (((from_bitField2_ & 0x00000040) == 0x00000040)) {
          to_bitField2_ |= 0x00000040;
        }
        result.reportAvatarAckMessage_ = reportAvatarAckMessage_;
        if (((from_bitField2_ & 0x00000080) == 0x00000080)) {
          to_bitField2_ |= 0x00000080;
        }
        result.reportGameMessage_ = reportGameMessage_;
        if (((from_bitField2_ & 0x00000100) == 0x00000100)) {
          to_bitField2_ |= 0x00000100;
        }
        result.reportGameAckMessage_ = reportGameAckMessage_;
        if (((from_bitField2_ & 0x00000200) == 0x00000200)) {
          to_bitField2_ |= 0x00000200;
        }
        result.errorMessage_ = errorMessage_;
        if (((from_bitField2_ & 0x00000400) == 0x00000400)) {
          to_bitField2_ |= 0x00000400;
        }
        result.adminRemoveGameMessage_ = adminRemoveGameMessage_;
        if (((from_bitField2_ & 0x00000800) == 0x00000800)) {
          to_bitField2_ |= 0x00000800;
        }
        result.adminRemoveGameAckMessage_ = adminRemoveGameAckMessage_;
        if (((from_bitField2_ & 0x00001000) == 0x00001000)) {
          to_bitField2_ |= 0x00001000;
        }
        result.adminBanPlayerMessage_ = adminBanPlayerMessage_;
        if (((from_bitField2_ & 0x00002000) == 0x00002000)) {
          to_bitField2_ |= 0x00002000;
        }
        result.adminBanPlayerAckMessage_ = adminBanPlayerAckMessage_;
        if (((from_bitField2_ & 0x00004000) == 0x00004000)) {
          to_bitField2_ |= 0x00004000;
        }
        result.gameListSpectatorJoinedMessage_ = gameListSpectatorJoinedMessage_;
        if (((from_bitField2_ & 0x00008000) == 0x00008000)) {
          to_bitField2_ |= 0x00008000;
        }
        result.gameListSpectatorLeftMessage_ = gameListSpectatorLeftMessage_;
        if (((from_bitField2_ & 0x00010000) == 0x00010000)) {
          to_bitField2_ |= 0x00010000;
        }
        result.gameSpectatorJoinedMessage_ = gameSpectatorJoinedMessage_;
        if (((from_bitField2_ & 0x00020000) == 0x00020000)) {
          to_bitField2_ |= 0x00020000;
        }
        result.gameSpectatorLeftMessage_ = gameSpectatorLeftMessage_;
        result.bitField0_ = to_bitField0_;
        result.bitField1_ = to_bitField1_;
        result.bitField2_ = to_bitField2_;
        return result;
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PokerTHMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PokerTHMessage.getDefaultInstance()) return this;
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasAnnounceMessage()) {
          mergeAnnounceMessage(other.getAnnounceMessage());
        }
        if (other.hasInitMessage()) {
          mergeInitMessage(other.getInitMessage());
        }
        if (other.hasAuthServerChallengeMessage()) {
          mergeAuthServerChallengeMessage(other.getAuthServerChallengeMessage());
        }
        if (other.hasAuthClientResponseMessage()) {
          mergeAuthClientResponseMessage(other.getAuthClientResponseMessage());
        }
        if (other.hasAuthServerVerificationMessage()) {
          mergeAuthServerVerificationMessage(other.getAuthServerVerificationMessage());
        }
        if (other.hasInitAckMessage()) {
          mergeInitAckMessage(other.getInitAckMessage());
        }
        if (other.hasAvatarRequestMessage()) {
          mergeAvatarRequestMessage(other.getAvatarRequestMessage());
        }
        if (other.hasAvatarHeaderMessage()) {
          mergeAvatarHeaderMessage(other.getAvatarHeaderMessage());
        }
        if (other.hasAvatarDataMessage()) {
          mergeAvatarDataMessage(other.getAvatarDataMessage());
        }
        if (other.hasAvatarEndMessage()) {
          mergeAvatarEndMessage(other.getAvatarEndMessage());
        }
        if (other.hasUnknownAvatarMessage()) {
          mergeUnknownAvatarMessage(other.getUnknownAvatarMessage());
        }
        if (other.hasPlayerListMessage()) {
          mergePlayerListMessage(other.getPlayerListMessage());
        }
        if (other.hasGameListNewMessage()) {
          mergeGameListNewMessage(other.getGameListNewMessage());
        }
        if (other.hasGameListUpdateMessage()) {
          mergeGameListUpdateMessage(other.getGameListUpdateMessage());
        }
        if (other.hasGameListPlayerJoinedMessage()) {
          mergeGameListPlayerJoinedMessage(other.getGameListPlayerJoinedMessage());
        }
        if (other.hasGameListPlayerLeftMessage()) {
          mergeGameListPlayerLeftMessage(other.getGameListPlayerLeftMessage());
        }
        if (other.hasGameListAdminChangedMessage()) {
          mergeGameListAdminChangedMessage(other.getGameListAdminChangedMessage());
        }
        if (other.hasPlayerInfoRequestMessage()) {
          mergePlayerInfoRequestMessage(other.getPlayerInfoRequestMessage());
        }
        if (other.hasPlayerInfoReplyMessage()) {
          mergePlayerInfoReplyMessage(other.getPlayerInfoReplyMessage());
        }
        if (other.hasSubscriptionRequestMessage()) {
          mergeSubscriptionRequestMessage(other.getSubscriptionRequestMessage());
        }
        if (other.hasJoinExistingGameMessage()) {
          mergeJoinExistingGameMessage(other.getJoinExistingGameMessage());
        }
        if (other.hasJoinNewGameMessage()) {
          mergeJoinNewGameMessage(other.getJoinNewGameMessage());
        }
        if (other.hasRejoinExistingGameMessage()) {
          mergeRejoinExistingGameMessage(other.getRejoinExistingGameMessage());
        }
        if (other.hasJoinGameAckMessage()) {
          mergeJoinGameAckMessage(other.getJoinGameAckMessage());
        }
        if (other.hasJoinGameFailedMessage()) {
          mergeJoinGameFailedMessage(other.getJoinGameFailedMessage());
        }
        if (other.hasGamePlayerJoinedMessage()) {
          mergeGamePlayerJoinedMessage(other.getGamePlayerJoinedMessage());
        }
        if (other.hasGamePlayerLeftMessage()) {
          mergeGamePlayerLeftMessage(other.getGamePlayerLeftMessage());
        }
        if (other.hasGameAdminChangedMessage()) {
          mergeGameAdminChangedMessage(other.getGameAdminChangedMessage());
        }
        if (other.hasRemovedFromGameMessage()) {
          mergeRemovedFromGameMessage(other.getRemovedFromGameMessage());
        }
        if (other.hasKickPlayerRequestMessage()) {
          mergeKickPlayerRequestMessage(other.getKickPlayerRequestMessage());
        }
        if (other.hasLeaveGameRequestMessage()) {
          mergeLeaveGameRequestMessage(other.getLeaveGameRequestMessage());
        }
        if (other.hasInvitePlayerToGameMessage()) {
          mergeInvitePlayerToGameMessage(other.getInvitePlayerToGameMessage());
        }
        if (other.hasInviteNotifyMessage()) {
          mergeInviteNotifyMessage(other.getInviteNotifyMessage());
        }
        if (other.hasRejectGameInvitationMessage()) {
          mergeRejectGameInvitationMessage(other.getRejectGameInvitationMessage());
        }
        if (other.hasRejectInvNotifyMessage()) {
          mergeRejectInvNotifyMessage(other.getRejectInvNotifyMessage());
        }
        if (other.hasStartEventMessage()) {
          mergeStartEventMessage(other.getStartEventMessage());
        }
        if (other.hasStartEventAckMessage()) {
          mergeStartEventAckMessage(other.getStartEventAckMessage());
        }
        if (other.hasGameStartInitialMessage()) {
          mergeGameStartInitialMessage(other.getGameStartInitialMessage());
        }
        if (other.hasGameStartRejoinMessage()) {
          mergeGameStartRejoinMessage(other.getGameStartRejoinMessage());
        }
        if (other.hasHandStartMessage()) {
          mergeHandStartMessage(other.getHandStartMessage());
        }
        if (other.hasPlayersTurnMessage()) {
          mergePlayersTurnMessage(other.getPlayersTurnMessage());
        }
        if (other.hasMyActionRequestMessage()) {
          mergeMyActionRequestMessage(other.getMyActionRequestMessage());
        }
        if (other.hasYourActionRejectedMessage()) {
          mergeYourActionRejectedMessage(other.getYourActionRejectedMessage());
        }
        if (other.hasPlayersActionDoneMessage()) {
          mergePlayersActionDoneMessage(other.getPlayersActionDoneMessage());
        }
        if (other.hasDealFlopCardsMessage()) {
          mergeDealFlopCardsMessage(other.getDealFlopCardsMessage());
        }
        if (other.hasDealTurnCardMessage()) {
          mergeDealTurnCardMessage(other.getDealTurnCardMessage());
        }
        if (other.hasDealRiverCardMessage()) {
          mergeDealRiverCardMessage(other.getDealRiverCardMessage());
        }
        if (other.hasAllInShowCardsMessage()) {
          mergeAllInShowCardsMessage(other.getAllInShowCardsMessage());
        }
        if (other.hasEndOfHandShowCardsMessage()) {
          mergeEndOfHandShowCardsMessage(other.getEndOfHandShowCardsMessage());
        }
        if (other.hasEndOfHandHideCardsMessage()) {
          mergeEndOfHandHideCardsMessage(other.getEndOfHandHideCardsMessage());
        }
        if (other.hasShowMyCardsRequestMessage()) {
          mergeShowMyCardsRequestMessage(other.getShowMyCardsRequestMessage());
        }
        if (other.hasAfterHandShowCardsMessage()) {
          mergeAfterHandShowCardsMessage(other.getAfterHandShowCardsMessage());
        }
        if (other.hasEndOfGameMessage()) {
          mergeEndOfGameMessage(other.getEndOfGameMessage());
        }
        if (other.hasPlayerIdChangedMessage()) {
          mergePlayerIdChangedMessage(other.getPlayerIdChangedMessage());
        }
        if (other.hasAskKickPlayerMessage()) {
          mergeAskKickPlayerMessage(other.getAskKickPlayerMessage());
        }
        if (other.hasAskKickDeniedMessage()) {
          mergeAskKickDeniedMessage(other.getAskKickDeniedMessage());
        }
        if (other.hasStartKickPetitionMessage()) {
          mergeStartKickPetitionMessage(other.getStartKickPetitionMessage());
        }
        if (other.hasVoteKickRequestMessage()) {
          mergeVoteKickRequestMessage(other.getVoteKickRequestMessage());
        }
        if (other.hasVoteKickReplyMessage()) {
          mergeVoteKickReplyMessage(other.getVoteKickReplyMessage());
        }
        if (other.hasKickPetitionUpdateMessage()) {
          mergeKickPetitionUpdateMessage(other.getKickPetitionUpdateMessage());
        }
        if (other.hasEndKickPetitionMessage()) {
          mergeEndKickPetitionMessage(other.getEndKickPetitionMessage());
        }
        if (other.hasStatisticsMessage()) {
          mergeStatisticsMessage(other.getStatisticsMessage());
        }
        if (other.hasChatRequestMessage()) {
          mergeChatRequestMessage(other.getChatRequestMessage());
        }
        if (other.hasChatMessage()) {
          mergeChatMessage(other.getChatMessage());
        }
        if (other.hasChatRejectMessage()) {
          mergeChatRejectMessage(other.getChatRejectMessage());
        }
        if (other.hasDialogMessage()) {
          mergeDialogMessage(other.getDialogMessage());
        }
        if (other.hasTimeoutWarningMessage()) {
          mergeTimeoutWarningMessage(other.getTimeoutWarningMessage());
        }
        if (other.hasResetTimeoutMessage()) {
          mergeResetTimeoutMessage(other.getResetTimeoutMessage());
        }
        if (other.hasReportAvatarMessage()) {
          mergeReportAvatarMessage(other.getReportAvatarMessage());
        }
        if (other.hasReportAvatarAckMessage()) {
          mergeReportAvatarAckMessage(other.getReportAvatarAckMessage());
        }
        if (other.hasReportGameMessage()) {
          mergeReportGameMessage(other.getReportGameMessage());
        }
        if (other.hasReportGameAckMessage()) {
          mergeReportGameAckMessage(other.getReportGameAckMessage());
        }
        if (other.hasErrorMessage()) {
          mergeErrorMessage(other.getErrorMessage());
        }
        if (other.hasAdminRemoveGameMessage()) {
          mergeAdminRemoveGameMessage(other.getAdminRemoveGameMessage());
        }
        if (other.hasAdminRemoveGameAckMessage()) {
          mergeAdminRemoveGameAckMessage(other.getAdminRemoveGameAckMessage());
        }
        if (other.hasAdminBanPlayerMessage()) {
          mergeAdminBanPlayerMessage(other.getAdminBanPlayerMessage());
        }
        if (other.hasAdminBanPlayerAckMessage()) {
          mergeAdminBanPlayerAckMessage(other.getAdminBanPlayerAckMessage());
        }
        if (other.hasGameListSpectatorJoinedMessage()) {
          mergeGameListSpectatorJoinedMessage(other.getGameListSpectatorJoinedMessage());
        }
        if (other.hasGameListSpectatorLeftMessage()) {
          mergeGameListSpectatorLeftMessage(other.getGameListSpectatorLeftMessage());
        }
        if (other.hasGameSpectatorJoinedMessage()) {
          mergeGameSpectatorJoinedMessage(other.getGameSpectatorJoinedMessage());
        }
        if (other.hasGameSpectatorLeftMessage()) {
          mergeGameSpectatorLeftMessage(other.getGameSpectatorLeftMessage());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMessageType()) {
          
          return false;
        }
        if (hasAnnounceMessage()) {
          if (!getAnnounceMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasInitMessage()) {
          if (!getInitMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAuthServerChallengeMessage()) {
          if (!getAuthServerChallengeMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAuthClientResponseMessage()) {
          if (!getAuthClientResponseMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAuthServerVerificationMessage()) {
          if (!getAuthServerVerificationMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasInitAckMessage()) {
          if (!getInitAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAvatarRequestMessage()) {
          if (!getAvatarRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAvatarHeaderMessage()) {
          if (!getAvatarHeaderMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAvatarDataMessage()) {
          if (!getAvatarDataMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAvatarEndMessage()) {
          if (!getAvatarEndMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasUnknownAvatarMessage()) {
          if (!getUnknownAvatarMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasPlayerListMessage()) {
          if (!getPlayerListMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListNewMessage()) {
          if (!getGameListNewMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListUpdateMessage()) {
          if (!getGameListUpdateMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListPlayerJoinedMessage()) {
          if (!getGameListPlayerJoinedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListPlayerLeftMessage()) {
          if (!getGameListPlayerLeftMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListAdminChangedMessage()) {
          if (!getGameListAdminChangedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasPlayerInfoReplyMessage()) {
          if (!getPlayerInfoReplyMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasSubscriptionRequestMessage()) {
          if (!getSubscriptionRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasJoinExistingGameMessage()) {
          if (!getJoinExistingGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasJoinNewGameMessage()) {
          if (!getJoinNewGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasRejoinExistingGameMessage()) {
          if (!getRejoinExistingGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasJoinGameAckMessage()) {
          if (!getJoinGameAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasJoinGameFailedMessage()) {
          if (!getJoinGameFailedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGamePlayerJoinedMessage()) {
          if (!getGamePlayerJoinedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGamePlayerLeftMessage()) {
          if (!getGamePlayerLeftMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameAdminChangedMessage()) {
          if (!getGameAdminChangedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasRemovedFromGameMessage()) {
          if (!getRemovedFromGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasKickPlayerRequestMessage()) {
          if (!getKickPlayerRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasLeaveGameRequestMessage()) {
          if (!getLeaveGameRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasInvitePlayerToGameMessage()) {
          if (!getInvitePlayerToGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasInviteNotifyMessage()) {
          if (!getInviteNotifyMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasRejectGameInvitationMessage()) {
          if (!getRejectGameInvitationMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasRejectInvNotifyMessage()) {
          if (!getRejectInvNotifyMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasStartEventMessage()) {
          if (!getStartEventMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasStartEventAckMessage()) {
          if (!getStartEventAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameStartInitialMessage()) {
          if (!getGameStartInitialMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameStartRejoinMessage()) {
          if (!getGameStartRejoinMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasHandStartMessage()) {
          if (!getHandStartMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasPlayersTurnMessage()) {
          if (!getPlayersTurnMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasMyActionRequestMessage()) {
          if (!getMyActionRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasYourActionRejectedMessage()) {
          if (!getYourActionRejectedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasPlayersActionDoneMessage()) {
          if (!getPlayersActionDoneMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasDealFlopCardsMessage()) {
          if (!getDealFlopCardsMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasDealTurnCardMessage()) {
          if (!getDealTurnCardMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasDealRiverCardMessage()) {
          if (!getDealRiverCardMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAllInShowCardsMessage()) {
          if (!getAllInShowCardsMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasEndOfHandShowCardsMessage()) {
          if (!getEndOfHandShowCardsMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasEndOfHandHideCardsMessage()) {
          if (!getEndOfHandHideCardsMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAfterHandShowCardsMessage()) {
          if (!getAfterHandShowCardsMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasEndOfGameMessage()) {
          if (!getEndOfGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasPlayerIdChangedMessage()) {
          if (!getPlayerIdChangedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAskKickPlayerMessage()) {
          if (!getAskKickPlayerMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAskKickDeniedMessage()) {
          if (!getAskKickDeniedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasStartKickPetitionMessage()) {
          if (!getStartKickPetitionMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasVoteKickRequestMessage()) {
          if (!getVoteKickRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasVoteKickReplyMessage()) {
          if (!getVoteKickReplyMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasKickPetitionUpdateMessage()) {
          if (!getKickPetitionUpdateMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasEndKickPetitionMessage()) {
          if (!getEndKickPetitionMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasStatisticsMessage()) {
          if (!getStatisticsMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasChatRequestMessage()) {
          if (!getChatRequestMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasChatMessage()) {
          if (!getChatMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasChatRejectMessage()) {
          if (!getChatRejectMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasDialogMessage()) {
          if (!getDialogMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasTimeoutWarningMessage()) {
          if (!getTimeoutWarningMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasReportAvatarMessage()) {
          if (!getReportAvatarMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasReportAvatarAckMessage()) {
          if (!getReportAvatarAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasReportGameMessage()) {
          if (!getReportGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasReportGameAckMessage()) {
          if (!getReportGameAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasErrorMessage()) {
          if (!getErrorMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAdminRemoveGameMessage()) {
          if (!getAdminRemoveGameMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAdminRemoveGameAckMessage()) {
          if (!getAdminRemoveGameAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAdminBanPlayerMessage()) {
          if (!getAdminBanPlayerMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasAdminBanPlayerAckMessage()) {
          if (!getAdminBanPlayerAckMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListSpectatorJoinedMessage()) {
          if (!getGameListSpectatorJoinedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameListSpectatorLeftMessage()) {
          if (!getGameListSpectatorLeftMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameSpectatorJoinedMessage()) {
          if (!getGameSpectatorJoinedMessage().isInitialized()) {
            
            return false;
          }
        }
        if (hasGameSpectatorLeftMessage()) {
          if (!getGameSpectatorLeftMessage().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

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

      private de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       */
      public boolean hasMessageType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType() {
        return messageType_;
      }
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       */
      public Builder setMessageType(de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        messageType_ = value;
        
        return this;
      }
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       */
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
        
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public boolean hasAnnounceMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage() {
        return announceMessage_;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder setAnnounceMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        announceMessage_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder setAnnounceMessage(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder builderForValue) {
        announceMessage_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder mergeAnnounceMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            announceMessage_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance()) {
          announceMessage_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.newBuilder(announceMessage_).mergeFrom(value).buildPartial();
        } else {
          announceMessage_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder clearAnnounceMessage() {
        announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.InitMessage initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public boolean hasInitMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage() {
        return initMessage_;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder setInitMessage(de.pokerth.protocol.ProtoBuf.InitMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        initMessage_ = value;

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder setInitMessage(
          de.pokerth.protocol.ProtoBuf.InitMessage.Builder builderForValue) {
        initMessage_ = builderForValue.build();

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder mergeInitMessage(de.pokerth.protocol.ProtoBuf.InitMessage value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            initMessage_ != de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance()) {
          initMessage_ =
            de.pokerth.protocol.ProtoBuf.InitMessage.newBuilder(initMessage_).mergeFrom(value).buildPartial();
        } else {
          initMessage_ = value;
        }

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder clearInitMessage() {
        initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public boolean hasAuthServerChallengeMessage() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage() {
        return authServerChallengeMessage_;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder setAuthServerChallengeMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        authServerChallengeMessage_ = value;

        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder setAuthServerChallengeMessage(
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder builderForValue) {
        authServerChallengeMessage_ = builderForValue.build();

        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder mergeAuthServerChallengeMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage value) {
        if (((bitField0_ & 0x00000008) == 0x00000008) &&
            authServerChallengeMessage_ != de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance()) {
          authServerChallengeMessage_ =
            de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.newBuilder(authServerChallengeMessage_).mergeFrom(value).buildPartial();
        } else {
          authServerChallengeMessage_ = value;
        }

        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder clearAuthServerChallengeMessage() {
        authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public boolean hasAuthClientResponseMessage() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage() {
        return authClientResponseMessage_;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder setAuthClientResponseMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        authClientResponseMessage_ = value;

        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder setAuthClientResponseMessage(
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder builderForValue) {
        authClientResponseMessage_ = builderForValue.build();

        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder mergeAuthClientResponseMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage value) {
        if (((bitField0_ & 0x00000010) == 0x00000010) &&
            authClientResponseMessage_ != de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance()) {
          authClientResponseMessage_ =
            de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.newBuilder(authClientResponseMessage_).mergeFrom(value).buildPartial();
        } else {
          authClientResponseMessage_ = value;
        }

        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder clearAuthClientResponseMessage() {
        authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public boolean hasAuthServerVerificationMessage() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage() {
        return authServerVerificationMessage_;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder setAuthServerVerificationMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        authServerVerificationMessage_ = value;

        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder setAuthServerVerificationMessage(
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder builderForValue) {
        authServerVerificationMessage_ = builderForValue.build();

        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder mergeAuthServerVerificationMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage value) {
        if (((bitField0_ & 0x00000020) == 0x00000020) &&
            authServerVerificationMessage_ != de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance()) {
          authServerVerificationMessage_ =
            de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.newBuilder(authServerVerificationMessage_).mergeFrom(value).buildPartial();
        } else {
          authServerVerificationMessage_ = value;
        }

        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder clearAuthServerVerificationMessage() {
        authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.InitAckMessage initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public boolean hasInitAckMessage() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage() {
        return initAckMessage_;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder setInitAckMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        initAckMessage_ = value;

        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder setInitAckMessage(
          de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder builderForValue) {
        initAckMessage_ = builderForValue.build();

        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder mergeInitAckMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage value) {
        if (((bitField0_ & 0x00000040) == 0x00000040) &&
            initAckMessage_ != de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance()) {
          initAckMessage_ =
            de.pokerth.protocol.ProtoBuf.InitAckMessage.newBuilder(initAckMessage_).mergeFrom(value).buildPartial();
        } else {
          initAckMessage_ = value;
        }

        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder clearInitAckMessage() {
        initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public boolean hasAvatarRequestMessage() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage() {
        return avatarRequestMessage_;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder setAvatarRequestMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarRequestMessage_ = value;

        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder setAvatarRequestMessage(
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder builderForValue) {
        avatarRequestMessage_ = builderForValue.build();

        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder mergeAvatarRequestMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage value) {
        if (((bitField0_ & 0x00000080) == 0x00000080) &&
            avatarRequestMessage_ != de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance()) {
          avatarRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.newBuilder(avatarRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarRequestMessage_ = value;
        }

        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder clearAvatarRequestMessage() {
        avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public boolean hasAvatarHeaderMessage() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage() {
        return avatarHeaderMessage_;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder setAvatarHeaderMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarHeaderMessage_ = value;

        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder setAvatarHeaderMessage(
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder builderForValue) {
        avatarHeaderMessage_ = builderForValue.build();

        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder mergeAvatarHeaderMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage value) {
        if (((bitField0_ & 0x00000100) == 0x00000100) &&
            avatarHeaderMessage_ != de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance()) {
          avatarHeaderMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.newBuilder(avatarHeaderMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarHeaderMessage_ = value;
        }

        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder clearAvatarHeaderMessage() {
        avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarDataMessage avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public boolean hasAvatarDataMessage() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage() {
        return avatarDataMessage_;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder setAvatarDataMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarDataMessage_ = value;

        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder setAvatarDataMessage(
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder builderForValue) {
        avatarDataMessage_ = builderForValue.build();

        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder mergeAvatarDataMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage value) {
        if (((bitField0_ & 0x00000200) == 0x00000200) &&
            avatarDataMessage_ != de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance()) {
          avatarDataMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarDataMessage.newBuilder(avatarDataMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarDataMessage_ = value;
        }

        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder clearAvatarDataMessage() {
        avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarEndMessage avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public boolean hasAvatarEndMessage() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage() {
        return avatarEndMessage_;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder setAvatarEndMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarEndMessage_ = value;

        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder setAvatarEndMessage(
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder builderForValue) {
        avatarEndMessage_ = builderForValue.build();

        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder mergeAvatarEndMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage value) {
        if (((bitField0_ & 0x00000400) == 0x00000400) &&
            avatarEndMessage_ != de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance()) {
          avatarEndMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarEndMessage.newBuilder(avatarEndMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarEndMessage_ = value;
        }

        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder clearAvatarEndMessage() {
        avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public boolean hasUnknownAvatarMessage() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage() {
        return unknownAvatarMessage_;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder setUnknownAvatarMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        unknownAvatarMessage_ = value;

        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder setUnknownAvatarMessage(
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder builderForValue) {
        unknownAvatarMessage_ = builderForValue.build();

        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder mergeUnknownAvatarMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage value) {
        if (((bitField0_ & 0x00000800) == 0x00000800) &&
            unknownAvatarMessage_ != de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance()) {
          unknownAvatarMessage_ =
            de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.newBuilder(unknownAvatarMessage_).mergeFrom(value).buildPartial();
        } else {
          unknownAvatarMessage_ = value;
        }

        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder clearUnknownAvatarMessage() {
        unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerListMessage playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public boolean hasPlayerListMessage() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage() {
        return playerListMessage_;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder setPlayerListMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerListMessage_ = value;

        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder setPlayerListMessage(
          de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder builderForValue) {
        playerListMessage_ = builderForValue.build();

        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder mergePlayerListMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage value) {
        if (((bitField0_ & 0x00001000) == 0x00001000) &&
            playerListMessage_ != de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance()) {
          playerListMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerListMessage.newBuilder(playerListMessage_).mergeFrom(value).buildPartial();
        } else {
          playerListMessage_ = value;
        }

        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder clearPlayerListMessage() {
        playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListNewMessage gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public boolean hasGameListNewMessage() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage() {
        return gameListNewMessage_;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder setGameListNewMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListNewMessage_ = value;

        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder setGameListNewMessage(
          de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder builderForValue) {
        gameListNewMessage_ = builderForValue.build();

        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder mergeGameListNewMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage value) {
        if (((bitField0_ & 0x00002000) == 0x00002000) &&
            gameListNewMessage_ != de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance()) {
          gameListNewMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListNewMessage.newBuilder(gameListNewMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListNewMessage_ = value;
        }

        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder clearGameListNewMessage() {
        gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public boolean hasGameListUpdateMessage() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage() {
        return gameListUpdateMessage_;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder setGameListUpdateMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListUpdateMessage_ = value;

        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder setGameListUpdateMessage(
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder builderForValue) {
        gameListUpdateMessage_ = builderForValue.build();

        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder mergeGameListUpdateMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage value) {
        if (((bitField0_ & 0x00004000) == 0x00004000) &&
            gameListUpdateMessage_ != de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance()) {
          gameListUpdateMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.newBuilder(gameListUpdateMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListUpdateMessage_ = value;
        }

        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder clearGameListUpdateMessage() {
        gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public boolean hasGameListPlayerJoinedMessage() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage() {
        return gameListPlayerJoinedMessage_;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder setGameListPlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListPlayerJoinedMessage_ = value;

        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder setGameListPlayerJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder builderForValue) {
        gameListPlayerJoinedMessage_ = builderForValue.build();

        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder mergeGameListPlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage value) {
        if (((bitField0_ & 0x00008000) == 0x00008000) &&
            gameListPlayerJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance()) {
          gameListPlayerJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.newBuilder(gameListPlayerJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListPlayerJoinedMessage_ = value;
        }

        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder clearGameListPlayerJoinedMessage() {
        gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public boolean hasGameListPlayerLeftMessage() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage() {
        return gameListPlayerLeftMessage_;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder setGameListPlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListPlayerLeftMessage_ = value;

        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder setGameListPlayerLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder builderForValue) {
        gameListPlayerLeftMessage_ = builderForValue.build();

        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder mergeGameListPlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage value) {
        if (((bitField0_ & 0x00010000) == 0x00010000) &&
            gameListPlayerLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance()) {
          gameListPlayerLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.newBuilder(gameListPlayerLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListPlayerLeftMessage_ = value;
        }

        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder clearGameListPlayerLeftMessage() {
        gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public boolean hasGameListAdminChangedMessage() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage() {
        return gameListAdminChangedMessage_;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder setGameListAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListAdminChangedMessage_ = value;

        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder setGameListAdminChangedMessage(
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder builderForValue) {
        gameListAdminChangedMessage_ = builderForValue.build();

        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder mergeGameListAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage value) {
        if (((bitField0_ & 0x00020000) == 0x00020000) &&
            gameListAdminChangedMessage_ != de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance()) {
          gameListAdminChangedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.newBuilder(gameListAdminChangedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListAdminChangedMessage_ = value;
        }

        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder clearGameListAdminChangedMessage() {
        gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public boolean hasPlayerInfoRequestMessage() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage() {
        return playerInfoRequestMessage_;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder setPlayerInfoRequestMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerInfoRequestMessage_ = value;

        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder setPlayerInfoRequestMessage(
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder builderForValue) {
        playerInfoRequestMessage_ = builderForValue.build();

        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder mergePlayerInfoRequestMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage value) {
        if (((bitField0_ & 0x00040000) == 0x00040000) &&
            playerInfoRequestMessage_ != de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance()) {
          playerInfoRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.newBuilder(playerInfoRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          playerInfoRequestMessage_ = value;
        }

        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder clearPlayerInfoRequestMessage() {
        playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00040000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public boolean hasPlayerInfoReplyMessage() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage() {
        return playerInfoReplyMessage_;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder setPlayerInfoReplyMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerInfoReplyMessage_ = value;

        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder setPlayerInfoReplyMessage(
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder builderForValue) {
        playerInfoReplyMessage_ = builderForValue.build();

        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder mergePlayerInfoReplyMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage value) {
        if (((bitField0_ & 0x00080000) == 0x00080000) &&
            playerInfoReplyMessage_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance()) {
          playerInfoReplyMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.newBuilder(playerInfoReplyMessage_).mergeFrom(value).buildPartial();
        } else {
          playerInfoReplyMessage_ = value;
        }

        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder clearPlayerInfoReplyMessage() {
        playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public boolean hasSubscriptionRequestMessage() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage() {
        return subscriptionRequestMessage_;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder setSubscriptionRequestMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        subscriptionRequestMessage_ = value;

        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder setSubscriptionRequestMessage(
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder builderForValue) {
        subscriptionRequestMessage_ = builderForValue.build();

        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder mergeSubscriptionRequestMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage value) {
        if (((bitField0_ & 0x00100000) == 0x00100000) &&
            subscriptionRequestMessage_ != de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance()) {
          subscriptionRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.newBuilder(subscriptionRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          subscriptionRequestMessage_ = value;
        }

        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder clearSubscriptionRequestMessage() {
        subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public boolean hasJoinExistingGameMessage() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage() {
        return joinExistingGameMessage_;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder setJoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinExistingGameMessage_ = value;

        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder setJoinExistingGameMessage(
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder builderForValue) {
        joinExistingGameMessage_ = builderForValue.build();

        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder mergeJoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage value) {
        if (((bitField0_ & 0x00200000) == 0x00200000) &&
            joinExistingGameMessage_ != de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance()) {
          joinExistingGameMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.newBuilder(joinExistingGameMessage_).mergeFrom(value).buildPartial();
        } else {
          joinExistingGameMessage_ = value;
        }

        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder clearJoinExistingGameMessage() {
        joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00200000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public boolean hasJoinNewGameMessage() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage() {
        return joinNewGameMessage_;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder setJoinNewGameMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinNewGameMessage_ = value;

        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder setJoinNewGameMessage(
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder builderForValue) {
        joinNewGameMessage_ = builderForValue.build();

        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder mergeJoinNewGameMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage value) {
        if (((bitField0_ & 0x00400000) == 0x00400000) &&
            joinNewGameMessage_ != de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance()) {
          joinNewGameMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.newBuilder(joinNewGameMessage_).mergeFrom(value).buildPartial();
        } else {
          joinNewGameMessage_ = value;
        }

        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder clearJoinNewGameMessage() {
        joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00400000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public boolean hasRejoinExistingGameMessage() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage() {
        return rejoinExistingGameMessage_;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder setRejoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rejoinExistingGameMessage_ = value;

        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder setRejoinExistingGameMessage(
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder builderForValue) {
        rejoinExistingGameMessage_ = builderForValue.build();

        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder mergeRejoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage value) {
        if (((bitField0_ & 0x00800000) == 0x00800000) &&
            rejoinExistingGameMessage_ != de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance()) {
          rejoinExistingGameMessage_ =
            de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.newBuilder(rejoinExistingGameMessage_).mergeFrom(value).buildPartial();
        } else {
          rejoinExistingGameMessage_ = value;
        }

        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder clearRejoinExistingGameMessage() {
        rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public boolean hasJoinGameAckMessage() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage() {
        return joinGameAckMessage_;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder setJoinGameAckMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinGameAckMessage_ = value;

        bitField0_ |= 0x01000000;
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder setJoinGameAckMessage(
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder builderForValue) {
        joinGameAckMessage_ = builderForValue.build();

        bitField0_ |= 0x01000000;
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder mergeJoinGameAckMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage value) {
        if (((bitField0_ & 0x01000000) == 0x01000000) &&
            joinGameAckMessage_ != de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance()) {
          joinGameAckMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.newBuilder(joinGameAckMessage_).mergeFrom(value).buildPartial();
        } else {
          joinGameAckMessage_ = value;
        }

        bitField0_ |= 0x01000000;
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder clearJoinGameAckMessage() {
        joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x01000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public boolean hasJoinGameFailedMessage() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage() {
        return joinGameFailedMessage_;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder setJoinGameFailedMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinGameFailedMessage_ = value;

        bitField0_ |= 0x02000000;
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder setJoinGameFailedMessage(
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder builderForValue) {
        joinGameFailedMessage_ = builderForValue.build();

        bitField0_ |= 0x02000000;
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder mergeJoinGameFailedMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage value) {
        if (((bitField0_ & 0x02000000) == 0x02000000) &&
            joinGameFailedMessage_ != de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance()) {
          joinGameFailedMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.newBuilder(joinGameFailedMessage_).mergeFrom(value).buildPartial();
        } else {
          joinGameFailedMessage_ = value;
        }

        bitField0_ |= 0x02000000;
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder clearJoinGameFailedMessage() {
        joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x02000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public boolean hasGamePlayerJoinedMessage() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage() {
        return gamePlayerJoinedMessage_;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder setGamePlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gamePlayerJoinedMessage_ = value;

        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder setGamePlayerJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder builderForValue) {
        gamePlayerJoinedMessage_ = builderForValue.build();

        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder mergeGamePlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage value) {
        if (((bitField0_ & 0x04000000) == 0x04000000) &&
            gamePlayerJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance()) {
          gamePlayerJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.newBuilder(gamePlayerJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gamePlayerJoinedMessage_ = value;
        }

        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder clearGamePlayerJoinedMessage() {
        gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x04000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public boolean hasGamePlayerLeftMessage() {
        return ((bitField0_ & 0x08000000) == 0x08000000);
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage() {
        return gamePlayerLeftMessage_;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder setGamePlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gamePlayerLeftMessage_ = value;

        bitField0_ |= 0x08000000;
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder setGamePlayerLeftMessage(
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder builderForValue) {
        gamePlayerLeftMessage_ = builderForValue.build();

        bitField0_ |= 0x08000000;
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder mergeGamePlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage value) {
        if (((bitField0_ & 0x08000000) == 0x08000000) &&
            gamePlayerLeftMessage_ != de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance()) {
          gamePlayerLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.newBuilder(gamePlayerLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gamePlayerLeftMessage_ = value;
        }

        bitField0_ |= 0x08000000;
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder clearGamePlayerLeftMessage() {
        gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x08000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public boolean hasGameAdminChangedMessage() {
        return ((bitField0_ & 0x10000000) == 0x10000000);
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage() {
        return gameAdminChangedMessage_;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder setGameAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameAdminChangedMessage_ = value;

        bitField0_ |= 0x10000000;
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder setGameAdminChangedMessage(
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder builderForValue) {
        gameAdminChangedMessage_ = builderForValue.build();

        bitField0_ |= 0x10000000;
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder mergeGameAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage value) {
        if (((bitField0_ & 0x10000000) == 0x10000000) &&
            gameAdminChangedMessage_ != de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance()) {
          gameAdminChangedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.newBuilder(gameAdminChangedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameAdminChangedMessage_ = value;
        }

        bitField0_ |= 0x10000000;
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder clearGameAdminChangedMessage() {
        gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x10000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public boolean hasRemovedFromGameMessage() {
        return ((bitField0_ & 0x20000000) == 0x20000000);
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage() {
        return removedFromGameMessage_;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder setRemovedFromGameMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        removedFromGameMessage_ = value;

        bitField0_ |= 0x20000000;
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder setRemovedFromGameMessage(
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder builderForValue) {
        removedFromGameMessage_ = builderForValue.build();

        bitField0_ |= 0x20000000;
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder mergeRemovedFromGameMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage value) {
        if (((bitField0_ & 0x20000000) == 0x20000000) &&
            removedFromGameMessage_ != de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance()) {
          removedFromGameMessage_ =
            de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.newBuilder(removedFromGameMessage_).mergeFrom(value).buildPartial();
        } else {
          removedFromGameMessage_ = value;
        }

        bitField0_ |= 0x20000000;
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder clearRemovedFromGameMessage() {
        removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x20000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public boolean hasKickPlayerRequestMessage() {
        return ((bitField0_ & 0x40000000) == 0x40000000);
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage() {
        return kickPlayerRequestMessage_;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder setKickPlayerRequestMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        kickPlayerRequestMessage_ = value;

        bitField0_ |= 0x40000000;
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder setKickPlayerRequestMessage(
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder builderForValue) {
        kickPlayerRequestMessage_ = builderForValue.build();

        bitField0_ |= 0x40000000;
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder mergeKickPlayerRequestMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage value) {
        if (((bitField0_ & 0x40000000) == 0x40000000) &&
            kickPlayerRequestMessage_ != de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance()) {
          kickPlayerRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.newBuilder(kickPlayerRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          kickPlayerRequestMessage_ = value;
        }

        bitField0_ |= 0x40000000;
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder clearKickPlayerRequestMessage() {
        kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x40000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public boolean hasLeaveGameRequestMessage() {
        return ((bitField0_ & 0x80000000) == 0x80000000);
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage() {
        return leaveGameRequestMessage_;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder setLeaveGameRequestMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        leaveGameRequestMessage_ = value;

        bitField0_ |= 0x80000000;
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder setLeaveGameRequestMessage(
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder builderForValue) {
        leaveGameRequestMessage_ = builderForValue.build();

        bitField0_ |= 0x80000000;
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder mergeLeaveGameRequestMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage value) {
        if (((bitField0_ & 0x80000000) == 0x80000000) &&
            leaveGameRequestMessage_ != de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance()) {
          leaveGameRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.newBuilder(leaveGameRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          leaveGameRequestMessage_ = value;
        }

        bitField0_ |= 0x80000000;
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder clearLeaveGameRequestMessage() {
        leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x80000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public boolean hasInvitePlayerToGameMessage() {
        return ((bitField1_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage() {
        return invitePlayerToGameMessage_;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder setInvitePlayerToGameMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        invitePlayerToGameMessage_ = value;

        bitField1_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder setInvitePlayerToGameMessage(
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder builderForValue) {
        invitePlayerToGameMessage_ = builderForValue.build();

        bitField1_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder mergeInvitePlayerToGameMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage value) {
        if (((bitField1_ & 0x00000001) == 0x00000001) &&
            invitePlayerToGameMessage_ != de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance()) {
          invitePlayerToGameMessage_ =
            de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.newBuilder(invitePlayerToGameMessage_).mergeFrom(value).buildPartial();
        } else {
          invitePlayerToGameMessage_ = value;
        }

        bitField1_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder clearInvitePlayerToGameMessage() {
        invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000001);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public boolean hasInviteNotifyMessage() {
        return ((bitField1_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage() {
        return inviteNotifyMessage_;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder setInviteNotifyMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        inviteNotifyMessage_ = value;

        bitField1_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder setInviteNotifyMessage(
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder builderForValue) {
        inviteNotifyMessage_ = builderForValue.build();

        bitField1_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder mergeInviteNotifyMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage value) {
        if (((bitField1_ & 0x00000002) == 0x00000002) &&
            inviteNotifyMessage_ != de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance()) {
          inviteNotifyMessage_ =
            de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.newBuilder(inviteNotifyMessage_).mergeFrom(value).buildPartial();
        } else {
          inviteNotifyMessage_ = value;
        }

        bitField1_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder clearInviteNotifyMessage() {
        inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000002);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public boolean hasRejectGameInvitationMessage() {
        return ((bitField1_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage() {
        return rejectGameInvitationMessage_;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder setRejectGameInvitationMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rejectGameInvitationMessage_ = value;

        bitField1_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder setRejectGameInvitationMessage(
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder builderForValue) {
        rejectGameInvitationMessage_ = builderForValue.build();

        bitField1_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder mergeRejectGameInvitationMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage value) {
        if (((bitField1_ & 0x00000004) == 0x00000004) &&
            rejectGameInvitationMessage_ != de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance()) {
          rejectGameInvitationMessage_ =
            de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.newBuilder(rejectGameInvitationMessage_).mergeFrom(value).buildPartial();
        } else {
          rejectGameInvitationMessage_ = value;
        }

        bitField1_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder clearRejectGameInvitationMessage() {
        rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000004);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public boolean hasRejectInvNotifyMessage() {
        return ((bitField1_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage() {
        return rejectInvNotifyMessage_;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder setRejectInvNotifyMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rejectInvNotifyMessage_ = value;

        bitField1_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder setRejectInvNotifyMessage(
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder builderForValue) {
        rejectInvNotifyMessage_ = builderForValue.build();

        bitField1_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder mergeRejectInvNotifyMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage value) {
        if (((bitField1_ & 0x00000008) == 0x00000008) &&
            rejectInvNotifyMessage_ != de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance()) {
          rejectInvNotifyMessage_ =
            de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.newBuilder(rejectInvNotifyMessage_).mergeFrom(value).buildPartial();
        } else {
          rejectInvNotifyMessage_ = value;
        }

        bitField1_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder clearRejectInvNotifyMessage() {
        rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000008);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.StartEventMessage startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public boolean hasStartEventMessage() {
        return ((bitField1_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage() {
        return startEventMessage_;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder setStartEventMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        startEventMessage_ = value;

        bitField1_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder setStartEventMessage(
          de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder builderForValue) {
        startEventMessage_ = builderForValue.build();

        bitField1_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder mergeStartEventMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage value) {
        if (((bitField1_ & 0x00000010) == 0x00000010) &&
            startEventMessage_ != de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance()) {
          startEventMessage_ =
            de.pokerth.protocol.ProtoBuf.StartEventMessage.newBuilder(startEventMessage_).mergeFrom(value).buildPartial();
        } else {
          startEventMessage_ = value;
        }

        bitField1_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder clearStartEventMessage() {
        startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000010);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.StartEventAckMessage startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public boolean hasStartEventAckMessage() {
        return ((bitField1_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage() {
        return startEventAckMessage_;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder setStartEventAckMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        startEventAckMessage_ = value;

        bitField1_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder setStartEventAckMessage(
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder builderForValue) {
        startEventAckMessage_ = builderForValue.build();

        bitField1_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder mergeStartEventAckMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage value) {
        if (((bitField1_ & 0x00000020) == 0x00000020) &&
            startEventAckMessage_ != de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance()) {
          startEventAckMessage_ =
            de.pokerth.protocol.ProtoBuf.StartEventAckMessage.newBuilder(startEventAckMessage_).mergeFrom(value).buildPartial();
        } else {
          startEventAckMessage_ = value;
        }

        bitField1_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder clearStartEventAckMessage() {
        startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000020);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public boolean hasGameStartInitialMessage() {
        return ((bitField1_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage() {
        return gameStartInitialMessage_;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder setGameStartInitialMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameStartInitialMessage_ = value;

        bitField1_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder setGameStartInitialMessage(
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder builderForValue) {
        gameStartInitialMessage_ = builderForValue.build();

        bitField1_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder mergeGameStartInitialMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage value) {
        if (((bitField1_ & 0x00000040) == 0x00000040) &&
            gameStartInitialMessage_ != de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance()) {
          gameStartInitialMessage_ =
            de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.newBuilder(gameStartInitialMessage_).mergeFrom(value).buildPartial();
        } else {
          gameStartInitialMessage_ = value;
        }

        bitField1_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder clearGameStartInitialMessage() {
        gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000040);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public boolean hasGameStartRejoinMessage() {
        return ((bitField1_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage() {
        return gameStartRejoinMessage_;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder setGameStartRejoinMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameStartRejoinMessage_ = value;

        bitField1_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder setGameStartRejoinMessage(
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder builderForValue) {
        gameStartRejoinMessage_ = builderForValue.build();

        bitField1_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder mergeGameStartRejoinMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage value) {
        if (((bitField1_ & 0x00000080) == 0x00000080) &&
            gameStartRejoinMessage_ != de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance()) {
          gameStartRejoinMessage_ =
            de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.newBuilder(gameStartRejoinMessage_).mergeFrom(value).buildPartial();
        } else {
          gameStartRejoinMessage_ = value;
        }

        bitField1_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder clearGameStartRejoinMessage() {
        gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000080);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.HandStartMessage handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public boolean hasHandStartMessage() {
        return ((bitField1_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage() {
        return handStartMessage_;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder setHandStartMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        handStartMessage_ = value;

        bitField1_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder setHandStartMessage(
          de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder builderForValue) {
        handStartMessage_ = builderForValue.build();

        bitField1_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder mergeHandStartMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage value) {
        if (((bitField1_ & 0x00000100) == 0x00000100) &&
            handStartMessage_ != de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance()) {
          handStartMessage_ =
            de.pokerth.protocol.ProtoBuf.HandStartMessage.newBuilder(handStartMessage_).mergeFrom(value).buildPartial();
        } else {
          handStartMessage_ = value;
        }

        bitField1_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder clearHandStartMessage() {
        handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000100);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public boolean hasPlayersTurnMessage() {
        return ((bitField1_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage() {
        return playersTurnMessage_;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder setPlayersTurnMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playersTurnMessage_ = value;

        bitField1_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder setPlayersTurnMessage(
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder builderForValue) {
        playersTurnMessage_ = builderForValue.build();

        bitField1_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder mergePlayersTurnMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage value) {
        if (((bitField1_ & 0x00000200) == 0x00000200) &&
            playersTurnMessage_ != de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance()) {
          playersTurnMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.newBuilder(playersTurnMessage_).mergeFrom(value).buildPartial();
        } else {
          playersTurnMessage_ = value;
        }

        bitField1_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder clearPlayersTurnMessage() {
        playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000200);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public boolean hasMyActionRequestMessage() {
        return ((bitField1_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage() {
        return myActionRequestMessage_;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder setMyActionRequestMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        myActionRequestMessage_ = value;

        bitField1_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder setMyActionRequestMessage(
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder builderForValue) {
        myActionRequestMessage_ = builderForValue.build();

        bitField1_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder mergeMyActionRequestMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage value) {
        if (((bitField1_ & 0x00000400) == 0x00000400) &&
            myActionRequestMessage_ != de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance()) {
          myActionRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.newBuilder(myActionRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          myActionRequestMessage_ = value;
        }

        bitField1_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder clearMyActionRequestMessage() {
        myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000400);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public boolean hasYourActionRejectedMessage() {
        return ((bitField1_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage() {
        return yourActionRejectedMessage_;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder setYourActionRejectedMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        yourActionRejectedMessage_ = value;

        bitField1_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder setYourActionRejectedMessage(
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder builderForValue) {
        yourActionRejectedMessage_ = builderForValue.build();

        bitField1_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder mergeYourActionRejectedMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage value) {
        if (((bitField1_ & 0x00000800) == 0x00000800) &&
            yourActionRejectedMessage_ != de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance()) {
          yourActionRejectedMessage_ =
            de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.newBuilder(yourActionRejectedMessage_).mergeFrom(value).buildPartial();
        } else {
          yourActionRejectedMessage_ = value;
        }

        bitField1_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder clearYourActionRejectedMessage() {
        yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00000800);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public boolean hasPlayersActionDoneMessage() {
        return ((bitField1_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage() {
        return playersActionDoneMessage_;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder setPlayersActionDoneMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playersActionDoneMessage_ = value;

        bitField1_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder setPlayersActionDoneMessage(
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder builderForValue) {
        playersActionDoneMessage_ = builderForValue.build();

        bitField1_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder mergePlayersActionDoneMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage value) {
        if (((bitField1_ & 0x00001000) == 0x00001000) &&
            playersActionDoneMessage_ != de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance()) {
          playersActionDoneMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.newBuilder(playersActionDoneMessage_).mergeFrom(value).buildPartial();
        } else {
          playersActionDoneMessage_ = value;
        }

        bitField1_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder clearPlayersActionDoneMessage() {
        playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00001000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public boolean hasDealFlopCardsMessage() {
        return ((bitField1_ & 0x00002000) == 0x00002000);
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage() {
        return dealFlopCardsMessage_;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder setDealFlopCardsMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dealFlopCardsMessage_ = value;

        bitField1_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder setDealFlopCardsMessage(
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder builderForValue) {
        dealFlopCardsMessage_ = builderForValue.build();

        bitField1_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder mergeDealFlopCardsMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage value) {
        if (((bitField1_ & 0x00002000) == 0x00002000) &&
            dealFlopCardsMessage_ != de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance()) {
          dealFlopCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.newBuilder(dealFlopCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          dealFlopCardsMessage_ = value;
        }

        bitField1_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder clearDealFlopCardsMessage() {
        dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00002000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public boolean hasDealTurnCardMessage() {
        return ((bitField1_ & 0x00004000) == 0x00004000);
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage() {
        return dealTurnCardMessage_;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder setDealTurnCardMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dealTurnCardMessage_ = value;

        bitField1_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder setDealTurnCardMessage(
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder builderForValue) {
        dealTurnCardMessage_ = builderForValue.build();

        bitField1_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder mergeDealTurnCardMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage value) {
        if (((bitField1_ & 0x00004000) == 0x00004000) &&
            dealTurnCardMessage_ != de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance()) {
          dealTurnCardMessage_ =
            de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.newBuilder(dealTurnCardMessage_).mergeFrom(value).buildPartial();
        } else {
          dealTurnCardMessage_ = value;
        }

        bitField1_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder clearDealTurnCardMessage() {
        dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00004000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public boolean hasDealRiverCardMessage() {
        return ((bitField1_ & 0x00008000) == 0x00008000);
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage() {
        return dealRiverCardMessage_;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder setDealRiverCardMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dealRiverCardMessage_ = value;

        bitField1_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder setDealRiverCardMessage(
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder builderForValue) {
        dealRiverCardMessage_ = builderForValue.build();

        bitField1_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder mergeDealRiverCardMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage value) {
        if (((bitField1_ & 0x00008000) == 0x00008000) &&
            dealRiverCardMessage_ != de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance()) {
          dealRiverCardMessage_ =
            de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.newBuilder(dealRiverCardMessage_).mergeFrom(value).buildPartial();
        } else {
          dealRiverCardMessage_ = value;
        }

        bitField1_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder clearDealRiverCardMessage() {
        dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00008000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public boolean hasAllInShowCardsMessage() {
        return ((bitField1_ & 0x00010000) == 0x00010000);
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage() {
        return allInShowCardsMessage_;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder setAllInShowCardsMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        allInShowCardsMessage_ = value;

        bitField1_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder setAllInShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder builderForValue) {
        allInShowCardsMessage_ = builderForValue.build();

        bitField1_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder mergeAllInShowCardsMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage value) {
        if (((bitField1_ & 0x00010000) == 0x00010000) &&
            allInShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance()) {
          allInShowCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.newBuilder(allInShowCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          allInShowCardsMessage_ = value;
        }

        bitField1_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder clearAllInShowCardsMessage() {
        allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00010000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public boolean hasEndOfHandShowCardsMessage() {
        return ((bitField1_ & 0x00020000) == 0x00020000);
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage() {
        return endOfHandShowCardsMessage_;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder setEndOfHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endOfHandShowCardsMessage_ = value;

        bitField1_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder setEndOfHandShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder builderForValue) {
        endOfHandShowCardsMessage_ = builderForValue.build();

        bitField1_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder mergeEndOfHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage value) {
        if (((bitField1_ & 0x00020000) == 0x00020000) &&
            endOfHandShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance()) {
          endOfHandShowCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.newBuilder(endOfHandShowCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          endOfHandShowCardsMessage_ = value;
        }

        bitField1_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder clearEndOfHandShowCardsMessage() {
        endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00020000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public boolean hasEndOfHandHideCardsMessage() {
        return ((bitField1_ & 0x00040000) == 0x00040000);
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage() {
        return endOfHandHideCardsMessage_;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder setEndOfHandHideCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endOfHandHideCardsMessage_ = value;

        bitField1_ |= 0x00040000;
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder setEndOfHandHideCardsMessage(
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder builderForValue) {
        endOfHandHideCardsMessage_ = builderForValue.build();

        bitField1_ |= 0x00040000;
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder mergeEndOfHandHideCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage value) {
        if (((bitField1_ & 0x00040000) == 0x00040000) &&
            endOfHandHideCardsMessage_ != de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance()) {
          endOfHandHideCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.newBuilder(endOfHandHideCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          endOfHandHideCardsMessage_ = value;
        }

        bitField1_ |= 0x00040000;
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder clearEndOfHandHideCardsMessage() {
        endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00040000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public boolean hasShowMyCardsRequestMessage() {
        return ((bitField1_ & 0x00080000) == 0x00080000);
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage() {
        return showMyCardsRequestMessage_;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder setShowMyCardsRequestMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        showMyCardsRequestMessage_ = value;

        bitField1_ |= 0x00080000;
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder setShowMyCardsRequestMessage(
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder builderForValue) {
        showMyCardsRequestMessage_ = builderForValue.build();

        bitField1_ |= 0x00080000;
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder mergeShowMyCardsRequestMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage value) {
        if (((bitField1_ & 0x00080000) == 0x00080000) &&
            showMyCardsRequestMessage_ != de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance()) {
          showMyCardsRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.newBuilder(showMyCardsRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          showMyCardsRequestMessage_ = value;
        }

        bitField1_ |= 0x00080000;
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder clearShowMyCardsRequestMessage() {
        showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00080000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public boolean hasAfterHandShowCardsMessage() {
        return ((bitField1_ & 0x00100000) == 0x00100000);
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage() {
        return afterHandShowCardsMessage_;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder setAfterHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        afterHandShowCardsMessage_ = value;

        bitField1_ |= 0x00100000;
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder setAfterHandShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder builderForValue) {
        afterHandShowCardsMessage_ = builderForValue.build();

        bitField1_ |= 0x00100000;
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder mergeAfterHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage value) {
        if (((bitField1_ & 0x00100000) == 0x00100000) &&
            afterHandShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance()) {
          afterHandShowCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.newBuilder(afterHandShowCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          afterHandShowCardsMessage_ = value;
        }

        bitField1_ |= 0x00100000;
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder clearAfterHandShowCardsMessage() {
        afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00100000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.EndOfGameMessage endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public boolean hasEndOfGameMessage() {
        return ((bitField1_ & 0x00200000) == 0x00200000);
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage() {
        return endOfGameMessage_;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder setEndOfGameMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endOfGameMessage_ = value;

        bitField1_ |= 0x00200000;
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder setEndOfGameMessage(
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder builderForValue) {
        endOfGameMessage_ = builderForValue.build();

        bitField1_ |= 0x00200000;
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder mergeEndOfGameMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage value) {
        if (((bitField1_ & 0x00200000) == 0x00200000) &&
            endOfGameMessage_ != de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance()) {
          endOfGameMessage_ =
            de.pokerth.protocol.ProtoBuf.EndOfGameMessage.newBuilder(endOfGameMessage_).mergeFrom(value).buildPartial();
        } else {
          endOfGameMessage_ = value;
        }

        bitField1_ |= 0x00200000;
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder clearEndOfGameMessage() {
        endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00200000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public boolean hasPlayerIdChangedMessage() {
        return ((bitField1_ & 0x00400000) == 0x00400000);
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage() {
        return playerIdChangedMessage_;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder setPlayerIdChangedMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerIdChangedMessage_ = value;

        bitField1_ |= 0x00400000;
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder setPlayerIdChangedMessage(
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder builderForValue) {
        playerIdChangedMessage_ = builderForValue.build();

        bitField1_ |= 0x00400000;
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder mergePlayerIdChangedMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage value) {
        if (((bitField1_ & 0x00400000) == 0x00400000) &&
            playerIdChangedMessage_ != de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance()) {
          playerIdChangedMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.newBuilder(playerIdChangedMessage_).mergeFrom(value).buildPartial();
        } else {
          playerIdChangedMessage_ = value;
        }

        bitField1_ |= 0x00400000;
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder clearPlayerIdChangedMessage() {
        playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00400000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public boolean hasAskKickPlayerMessage() {
        return ((bitField1_ & 0x00800000) == 0x00800000);
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage() {
        return askKickPlayerMessage_;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder setAskKickPlayerMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        askKickPlayerMessage_ = value;

        bitField1_ |= 0x00800000;
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder setAskKickPlayerMessage(
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder builderForValue) {
        askKickPlayerMessage_ = builderForValue.build();

        bitField1_ |= 0x00800000;
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder mergeAskKickPlayerMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage value) {
        if (((bitField1_ & 0x00800000) == 0x00800000) &&
            askKickPlayerMessage_ != de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance()) {
          askKickPlayerMessage_ =
            de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.newBuilder(askKickPlayerMessage_).mergeFrom(value).buildPartial();
        } else {
          askKickPlayerMessage_ = value;
        }

        bitField1_ |= 0x00800000;
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder clearAskKickPlayerMessage() {
        askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x00800000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public boolean hasAskKickDeniedMessage() {
        return ((bitField1_ & 0x01000000) == 0x01000000);
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage() {
        return askKickDeniedMessage_;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder setAskKickDeniedMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        askKickDeniedMessage_ = value;

        bitField1_ |= 0x01000000;
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder setAskKickDeniedMessage(
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder builderForValue) {
        askKickDeniedMessage_ = builderForValue.build();

        bitField1_ |= 0x01000000;
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder mergeAskKickDeniedMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage value) {
        if (((bitField1_ & 0x01000000) == 0x01000000) &&
            askKickDeniedMessage_ != de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance()) {
          askKickDeniedMessage_ =
            de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.newBuilder(askKickDeniedMessage_).mergeFrom(value).buildPartial();
        } else {
          askKickDeniedMessage_ = value;
        }

        bitField1_ |= 0x01000000;
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder clearAskKickDeniedMessage() {
        askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x01000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public boolean hasStartKickPetitionMessage() {
        return ((bitField1_ & 0x02000000) == 0x02000000);
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage() {
        return startKickPetitionMessage_;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder setStartKickPetitionMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        startKickPetitionMessage_ = value;

        bitField1_ |= 0x02000000;
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder setStartKickPetitionMessage(
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder builderForValue) {
        startKickPetitionMessage_ = builderForValue.build();

        bitField1_ |= 0x02000000;
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder mergeStartKickPetitionMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage value) {
        if (((bitField1_ & 0x02000000) == 0x02000000) &&
            startKickPetitionMessage_ != de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance()) {
          startKickPetitionMessage_ =
            de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.newBuilder(startKickPetitionMessage_).mergeFrom(value).buildPartial();
        } else {
          startKickPetitionMessage_ = value;
        }

        bitField1_ |= 0x02000000;
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder clearStartKickPetitionMessage() {
        startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x02000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public boolean hasVoteKickRequestMessage() {
        return ((bitField1_ & 0x04000000) == 0x04000000);
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage() {
        return voteKickRequestMessage_;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder setVoteKickRequestMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        voteKickRequestMessage_ = value;

        bitField1_ |= 0x04000000;
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder setVoteKickRequestMessage(
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder builderForValue) {
        voteKickRequestMessage_ = builderForValue.build();

        bitField1_ |= 0x04000000;
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder mergeVoteKickRequestMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage value) {
        if (((bitField1_ & 0x04000000) == 0x04000000) &&
            voteKickRequestMessage_ != de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance()) {
          voteKickRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.newBuilder(voteKickRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          voteKickRequestMessage_ = value;
        }

        bitField1_ |= 0x04000000;
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder clearVoteKickRequestMessage() {
        voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x04000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public boolean hasVoteKickReplyMessage() {
        return ((bitField1_ & 0x08000000) == 0x08000000);
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage() {
        return voteKickReplyMessage_;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder setVoteKickReplyMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        voteKickReplyMessage_ = value;

        bitField1_ |= 0x08000000;
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder setVoteKickReplyMessage(
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder builderForValue) {
        voteKickReplyMessage_ = builderForValue.build();

        bitField1_ |= 0x08000000;
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder mergeVoteKickReplyMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage value) {
        if (((bitField1_ & 0x08000000) == 0x08000000) &&
            voteKickReplyMessage_ != de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance()) {
          voteKickReplyMessage_ =
            de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.newBuilder(voteKickReplyMessage_).mergeFrom(value).buildPartial();
        } else {
          voteKickReplyMessage_ = value;
        }

        bitField1_ |= 0x08000000;
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder clearVoteKickReplyMessage() {
        voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x08000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public boolean hasKickPetitionUpdateMessage() {
        return ((bitField1_ & 0x10000000) == 0x10000000);
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage() {
        return kickPetitionUpdateMessage_;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder setKickPetitionUpdateMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        kickPetitionUpdateMessage_ = value;

        bitField1_ |= 0x10000000;
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder setKickPetitionUpdateMessage(
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder builderForValue) {
        kickPetitionUpdateMessage_ = builderForValue.build();

        bitField1_ |= 0x10000000;
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder mergeKickPetitionUpdateMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage value) {
        if (((bitField1_ & 0x10000000) == 0x10000000) &&
            kickPetitionUpdateMessage_ != de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance()) {
          kickPetitionUpdateMessage_ =
            de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.newBuilder(kickPetitionUpdateMessage_).mergeFrom(value).buildPartial();
        } else {
          kickPetitionUpdateMessage_ = value;
        }

        bitField1_ |= 0x10000000;
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder clearKickPetitionUpdateMessage() {
        kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x10000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public boolean hasEndKickPetitionMessage() {
        return ((bitField1_ & 0x20000000) == 0x20000000);
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage() {
        return endKickPetitionMessage_;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder setEndKickPetitionMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endKickPetitionMessage_ = value;

        bitField1_ |= 0x20000000;
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder setEndKickPetitionMessage(
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder builderForValue) {
        endKickPetitionMessage_ = builderForValue.build();

        bitField1_ |= 0x20000000;
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder mergeEndKickPetitionMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage value) {
        if (((bitField1_ & 0x20000000) == 0x20000000) &&
            endKickPetitionMessage_ != de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance()) {
          endKickPetitionMessage_ =
            de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.newBuilder(endKickPetitionMessage_).mergeFrom(value).buildPartial();
        } else {
          endKickPetitionMessage_ = value;
        }

        bitField1_ |= 0x20000000;
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder clearEndKickPetitionMessage() {
        endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x20000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.StatisticsMessage statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public boolean hasStatisticsMessage() {
        return ((bitField1_ & 0x40000000) == 0x40000000);
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage() {
        return statisticsMessage_;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder setStatisticsMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statisticsMessage_ = value;

        bitField1_ |= 0x40000000;
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder setStatisticsMessage(
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder builderForValue) {
        statisticsMessage_ = builderForValue.build();

        bitField1_ |= 0x40000000;
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder mergeStatisticsMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage value) {
        if (((bitField1_ & 0x40000000) == 0x40000000) &&
            statisticsMessage_ != de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance()) {
          statisticsMessage_ =
            de.pokerth.protocol.ProtoBuf.StatisticsMessage.newBuilder(statisticsMessage_).mergeFrom(value).buildPartial();
        } else {
          statisticsMessage_ = value;
        }

        bitField1_ |= 0x40000000;
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder clearStatisticsMessage() {
        statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x40000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ChatRequestMessage chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public boolean hasChatRequestMessage() {
        return ((bitField1_ & 0x80000000) == 0x80000000);
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage() {
        return chatRequestMessage_;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder setChatRequestMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        chatRequestMessage_ = value;

        bitField1_ |= 0x80000000;
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder setChatRequestMessage(
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder builderForValue) {
        chatRequestMessage_ = builderForValue.build();

        bitField1_ |= 0x80000000;
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder mergeChatRequestMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage value) {
        if (((bitField1_ & 0x80000000) == 0x80000000) &&
            chatRequestMessage_ != de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance()) {
          chatRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.ChatRequestMessage.newBuilder(chatRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          chatRequestMessage_ = value;
        }

        bitField1_ |= 0x80000000;
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder clearChatRequestMessage() {
        chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();

        bitField1_ = (bitField1_ & ~0x80000000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ChatMessage chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public boolean hasChatMessage() {
        return ((bitField2_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage() {
        return chatMessage_;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder setChatMessage(de.pokerth.protocol.ProtoBuf.ChatMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        chatMessage_ = value;

        bitField2_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder setChatMessage(
          de.pokerth.protocol.ProtoBuf.ChatMessage.Builder builderForValue) {
        chatMessage_ = builderForValue.build();

        bitField2_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder mergeChatMessage(de.pokerth.protocol.ProtoBuf.ChatMessage value) {
        if (((bitField2_ & 0x00000001) == 0x00000001) &&
            chatMessage_ != de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance()) {
          chatMessage_ =
            de.pokerth.protocol.ProtoBuf.ChatMessage.newBuilder(chatMessage_).mergeFrom(value).buildPartial();
        } else {
          chatMessage_ = value;
        }

        bitField2_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder clearChatMessage() {
        chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000001);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ChatRejectMessage chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public boolean hasChatRejectMessage() {
        return ((bitField2_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage() {
        return chatRejectMessage_;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder setChatRejectMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        chatRejectMessage_ = value;

        bitField2_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder setChatRejectMessage(
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder builderForValue) {
        chatRejectMessage_ = builderForValue.build();

        bitField2_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder mergeChatRejectMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage value) {
        if (((bitField2_ & 0x00000002) == 0x00000002) &&
            chatRejectMessage_ != de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance()) {
          chatRejectMessage_ =
            de.pokerth.protocol.ProtoBuf.ChatRejectMessage.newBuilder(chatRejectMessage_).mergeFrom(value).buildPartial();
        } else {
          chatRejectMessage_ = value;
        }

        bitField2_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder clearChatRejectMessage() {
        chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000002);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.DialogMessage dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public boolean hasDialogMessage() {
        return ((bitField2_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage() {
        return dialogMessage_;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder setDialogMessage(de.pokerth.protocol.ProtoBuf.DialogMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dialogMessage_ = value;

        bitField2_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder setDialogMessage(
          de.pokerth.protocol.ProtoBuf.DialogMessage.Builder builderForValue) {
        dialogMessage_ = builderForValue.build();

        bitField2_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder mergeDialogMessage(de.pokerth.protocol.ProtoBuf.DialogMessage value) {
        if (((bitField2_ & 0x00000004) == 0x00000004) &&
            dialogMessage_ != de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance()) {
          dialogMessage_ =
            de.pokerth.protocol.ProtoBuf.DialogMessage.newBuilder(dialogMessage_).mergeFrom(value).buildPartial();
        } else {
          dialogMessage_ = value;
        }

        bitField2_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder clearDialogMessage() {
        dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000004);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public boolean hasTimeoutWarningMessage() {
        return ((bitField2_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage() {
        return timeoutWarningMessage_;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder setTimeoutWarningMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        timeoutWarningMessage_ = value;

        bitField2_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder setTimeoutWarningMessage(
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder builderForValue) {
        timeoutWarningMessage_ = builderForValue.build();

        bitField2_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder mergeTimeoutWarningMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage value) {
        if (((bitField2_ & 0x00000008) == 0x00000008) &&
            timeoutWarningMessage_ != de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance()) {
          timeoutWarningMessage_ =
            de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.newBuilder(timeoutWarningMessage_).mergeFrom(value).buildPartial();
        } else {
          timeoutWarningMessage_ = value;
        }

        bitField2_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder clearTimeoutWarningMessage() {
        timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000008);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public boolean hasResetTimeoutMessage() {
        return ((bitField2_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage() {
        return resetTimeoutMessage_;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder setResetTimeoutMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        resetTimeoutMessage_ = value;

        bitField2_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder setResetTimeoutMessage(
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder builderForValue) {
        resetTimeoutMessage_ = builderForValue.build();

        bitField2_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder mergeResetTimeoutMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage value) {
        if (((bitField2_ & 0x00000010) == 0x00000010) &&
            resetTimeoutMessage_ != de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance()) {
          resetTimeoutMessage_ =
            de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.newBuilder(resetTimeoutMessage_).mergeFrom(value).buildPartial();
        } else {
          resetTimeoutMessage_ = value;
        }

        bitField2_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder clearResetTimeoutMessage() {
        resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000010);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public boolean hasReportAvatarMessage() {
        return ((bitField2_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage() {
        return reportAvatarMessage_;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder setReportAvatarMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportAvatarMessage_ = value;

        bitField2_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder setReportAvatarMessage(
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder builderForValue) {
        reportAvatarMessage_ = builderForValue.build();

        bitField2_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder mergeReportAvatarMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage value) {
        if (((bitField2_ & 0x00000020) == 0x00000020) &&
            reportAvatarMessage_ != de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance()) {
          reportAvatarMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.newBuilder(reportAvatarMessage_).mergeFrom(value).buildPartial();
        } else {
          reportAvatarMessage_ = value;
        }

        bitField2_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder clearReportAvatarMessage() {
        reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000020);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public boolean hasReportAvatarAckMessage() {
        return ((bitField2_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage() {
        return reportAvatarAckMessage_;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder setReportAvatarAckMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportAvatarAckMessage_ = value;

        bitField2_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder setReportAvatarAckMessage(
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder builderForValue) {
        reportAvatarAckMessage_ = builderForValue.build();

        bitField2_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder mergeReportAvatarAckMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage value) {
        if (((bitField2_ & 0x00000040) == 0x00000040) &&
            reportAvatarAckMessage_ != de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance()) {
          reportAvatarAckMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.newBuilder(reportAvatarAckMessage_).mergeFrom(value).buildPartial();
        } else {
          reportAvatarAckMessage_ = value;
        }

        bitField2_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder clearReportAvatarAckMessage() {
        reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000040);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ReportGameMessage reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public boolean hasReportGameMessage() {
        return ((bitField2_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage() {
        return reportGameMessage_;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder setReportGameMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportGameMessage_ = value;

        bitField2_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder setReportGameMessage(
          de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder builderForValue) {
        reportGameMessage_ = builderForValue.build();

        bitField2_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder mergeReportGameMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage value) {
        if (((bitField2_ & 0x00000080) == 0x00000080) &&
            reportGameMessage_ != de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance()) {
          reportGameMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportGameMessage.newBuilder(reportGameMessage_).mergeFrom(value).buildPartial();
        } else {
          reportGameMessage_ = value;
        }

        bitField2_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder clearReportGameMessage() {
        reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000080);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public boolean hasReportGameAckMessage() {
        return ((bitField2_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage() {
        return reportGameAckMessage_;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder setReportGameAckMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportGameAckMessage_ = value;

        bitField2_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder setReportGameAckMessage(
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder builderForValue) {
        reportGameAckMessage_ = builderForValue.build();

        bitField2_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder mergeReportGameAckMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage value) {
        if (((bitField2_ & 0x00000100) == 0x00000100) &&
            reportGameAckMessage_ != de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance()) {
          reportGameAckMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.newBuilder(reportGameAckMessage_).mergeFrom(value).buildPartial();
        } else {
          reportGameAckMessage_ = value;
        }

        bitField2_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder clearReportGameAckMessage() {
        reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000100);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.ErrorMessage errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public boolean hasErrorMessage() {
        return ((bitField2_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage() {
        return errorMessage_;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder setErrorMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        errorMessage_ = value;

        bitField2_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder setErrorMessage(
          de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder builderForValue) {
        errorMessage_ = builderForValue.build();

        bitField2_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder mergeErrorMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage value) {
        if (((bitField2_ & 0x00000200) == 0x00000200) &&
            errorMessage_ != de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance()) {
          errorMessage_ =
            de.pokerth.protocol.ProtoBuf.ErrorMessage.newBuilder(errorMessage_).mergeFrom(value).buildPartial();
        } else {
          errorMessage_ = value;
        }

        bitField2_ |= 0x00000200;
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder clearErrorMessage() {
        errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000200);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public boolean hasAdminRemoveGameMessage() {
        return ((bitField2_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage() {
        return adminRemoveGameMessage_;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder setAdminRemoveGameMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminRemoveGameMessage_ = value;

        bitField2_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder setAdminRemoveGameMessage(
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder builderForValue) {
        adminRemoveGameMessage_ = builderForValue.build();

        bitField2_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder mergeAdminRemoveGameMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage value) {
        if (((bitField2_ & 0x00000400) == 0x00000400) &&
            adminRemoveGameMessage_ != de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance()) {
          adminRemoveGameMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.newBuilder(adminRemoveGameMessage_).mergeFrom(value).buildPartial();
        } else {
          adminRemoveGameMessage_ = value;
        }

        bitField2_ |= 0x00000400;
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder clearAdminRemoveGameMessage() {
        adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000400);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public boolean hasAdminRemoveGameAckMessage() {
        return ((bitField2_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage() {
        return adminRemoveGameAckMessage_;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder setAdminRemoveGameAckMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminRemoveGameAckMessage_ = value;

        bitField2_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder setAdminRemoveGameAckMessage(
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder builderForValue) {
        adminRemoveGameAckMessage_ = builderForValue.build();

        bitField2_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder mergeAdminRemoveGameAckMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage value) {
        if (((bitField2_ & 0x00000800) == 0x00000800) &&
            adminRemoveGameAckMessage_ != de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance()) {
          adminRemoveGameAckMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.newBuilder(adminRemoveGameAckMessage_).mergeFrom(value).buildPartial();
        } else {
          adminRemoveGameAckMessage_ = value;
        }

        bitField2_ |= 0x00000800;
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder clearAdminRemoveGameAckMessage() {
        adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00000800);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public boolean hasAdminBanPlayerMessage() {
        return ((bitField2_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage() {
        return adminBanPlayerMessage_;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder setAdminBanPlayerMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminBanPlayerMessage_ = value;

        bitField2_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder setAdminBanPlayerMessage(
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder builderForValue) {
        adminBanPlayerMessage_ = builderForValue.build();

        bitField2_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder mergeAdminBanPlayerMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage value) {
        if (((bitField2_ & 0x00001000) == 0x00001000) &&
            adminBanPlayerMessage_ != de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance()) {
          adminBanPlayerMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.newBuilder(adminBanPlayerMessage_).mergeFrom(value).buildPartial();
        } else {
          adminBanPlayerMessage_ = value;
        }

        bitField2_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder clearAdminBanPlayerMessage() {
        adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00001000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public boolean hasAdminBanPlayerAckMessage() {
        return ((bitField2_ & 0x00002000) == 0x00002000);
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage() {
        return adminBanPlayerAckMessage_;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder setAdminBanPlayerAckMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminBanPlayerAckMessage_ = value;

        bitField2_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder setAdminBanPlayerAckMessage(
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder builderForValue) {
        adminBanPlayerAckMessage_ = builderForValue.build();

        bitField2_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder mergeAdminBanPlayerAckMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage value) {
        if (((bitField2_ & 0x00002000) == 0x00002000) &&
            adminBanPlayerAckMessage_ != de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance()) {
          adminBanPlayerAckMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.newBuilder(adminBanPlayerAckMessage_).mergeFrom(value).buildPartial();
        } else {
          adminBanPlayerAckMessage_ = value;
        }

        bitField2_ |= 0x00002000;
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder clearAdminBanPlayerAckMessage() {
        adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00002000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public boolean hasGameListSpectatorJoinedMessage() {
        return ((bitField2_ & 0x00004000) == 0x00004000);
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage() {
        return gameListSpectatorJoinedMessage_;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder setGameListSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListSpectatorJoinedMessage_ = value;

        bitField2_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder setGameListSpectatorJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder builderForValue) {
        gameListSpectatorJoinedMessage_ = builderForValue.build();

        bitField2_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder mergeGameListSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage value) {
        if (((bitField2_ & 0x00004000) == 0x00004000) &&
            gameListSpectatorJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance()) {
          gameListSpectatorJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.newBuilder(gameListSpectatorJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListSpectatorJoinedMessage_ = value;
        }

        bitField2_ |= 0x00004000;
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder clearGameListSpectatorJoinedMessage() {
        gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00004000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public boolean hasGameListSpectatorLeftMessage() {
        return ((bitField2_ & 0x00008000) == 0x00008000);
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage() {
        return gameListSpectatorLeftMessage_;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder setGameListSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListSpectatorLeftMessage_ = value;

        bitField2_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder setGameListSpectatorLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder builderForValue) {
        gameListSpectatorLeftMessage_ = builderForValue.build();

        bitField2_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder mergeGameListSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage value) {
        if (((bitField2_ & 0x00008000) == 0x00008000) &&
            gameListSpectatorLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance()) {
          gameListSpectatorLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.newBuilder(gameListSpectatorLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListSpectatorLeftMessage_ = value;
        }

        bitField2_ |= 0x00008000;
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder clearGameListSpectatorLeftMessage() {
        gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00008000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public boolean hasGameSpectatorJoinedMessage() {
        return ((bitField2_ & 0x00010000) == 0x00010000);
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage() {
        return gameSpectatorJoinedMessage_;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder setGameSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameSpectatorJoinedMessage_ = value;

        bitField2_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder setGameSpectatorJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder builderForValue) {
        gameSpectatorJoinedMessage_ = builderForValue.build();

        bitField2_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder mergeGameSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage value) {
        if (((bitField2_ & 0x00010000) == 0x00010000) &&
            gameSpectatorJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance()) {
          gameSpectatorJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.newBuilder(gameSpectatorJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameSpectatorJoinedMessage_ = value;
        }

        bitField2_ |= 0x00010000;
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder clearGameSpectatorJoinedMessage() {
        gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00010000);
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public boolean hasGameSpectatorLeftMessage() {
        return ((bitField2_ & 0x00020000) == 0x00020000);
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage() {
        return gameSpectatorLeftMessage_;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder setGameSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameSpectatorLeftMessage_ = value;

        bitField2_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder setGameSpectatorLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder builderForValue) {
        gameSpectatorLeftMessage_ = builderForValue.build();

        bitField2_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder mergeGameSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage value) {
        if (((bitField2_ & 0x00020000) == 0x00020000) &&
            gameSpectatorLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance()) {
          gameSpectatorLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.newBuilder(gameSpectatorLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gameSpectatorLeftMessage_ = value;
        }

        bitField2_ |= 0x00020000;
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder clearGameSpectatorLeftMessage() {
        gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();

        bitField2_ = (bitField2_ & ~0x00020000);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PokerTHMessage)
    }

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

    // @@protoc_insertion_point(class_scope:PokerTHMessage)
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
