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

package io.grasscutter.net.proto.player;

/**
 * <pre>
 * CmdId: 27700
 * </pre>
 *
 * Protobuf type {@code PlayerLoginRsp}
 */
public final class PlayerLoginRsp extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:PlayerLoginRsp)
    PlayerLoginRspOrBuilder {
private static final long serialVersionUID = 0L;
  // Use PlayerLoginRsp.newBuilder() to construct.
  private PlayerLoginRsp(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private PlayerLoginRsp() {
    birthday_ = "";
    clientSilenceMd5_ = "";
    jFJKEDFAFPM_ = com.google.protobuf.ByteString.EMPTY;
    hOHOGGJOAOP_ = "";
    fDEDHCEKMIP_ = com.google.protobuf.ByteString.EMPTY;
    clientVersionSuffix_ = "";
    clientSilenceVersionSuffix_ = "";
    shortAbilityHashMap_ = java.util.Collections.emptyList();
    featureBlockInfoList_ = java.util.Collections.emptyList();
    clientMd5_ = "";
    aPHAAHPDDJB_ = "";
    countryCode_ = "";
    nextResourceUrl_ = "";
    msg_ = "";
  }

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

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private PlayerLoginRsp(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10: {
            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              abilityHashMap_ = com.google.protobuf.MapField.newMapField(
                  AbilityHashMapDefaultEntryHolder.defaultEntry);
              mutable_bitField0_ |= 0x00000001;
            }
            com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer>
            abilityHashMap__ = input.readMessage(
                AbilityHashMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
            abilityHashMap_.getMutableMap().put(
                abilityHashMap__.getKey(), abilityHashMap__.getValue());
            break;
          }
          case 16: {

            dJCHBDAPKOB_ = input.readBool();
            break;
          }
          case 24: {

            pAKNLFOEBLB_ = input.readUInt32();
            break;
          }
          case 32: {

            iKCCNHPCMKL_ = input.readUInt32();
            break;
          }
          case 48: {

            targetUid_ = input.readUInt32();
            break;
          }
          case 56: {

            retcode_ = input.readInt32();
            break;
          }
          case 66: {

            jFJKEDFAFPM_ = input.readBytes();
            break;
          }
          case 72: {

            isRelogin_ = input.readBool();
            break;
          }
          case 80: {

            abilityHashCode_ = input.readInt32();
            break;
          }
          case 90: {
            java.lang.String s = input.readStringRequireUtf8();

            aPHAAHPDDJB_ = s;
            break;
          }
          case 104: {

            dHNKFDJHDBF_ = input.readBool();
            break;
          }
          case 112: {

            loginRand_ = input.readUInt64();
            break;
          }
          case 120: {

            eDMOCOCJPHH_ = input.readUInt32();
            break;
          }
          case 1066: {
            if (!((mutable_bitField0_ & 0x00000002) != 0)) {
              blockInfoMap_ = com.google.protobuf.MapField.newMapField(
                  BlockInfoMapDefaultEntryHolder.defaultEntry);
              mutable_bitField0_ |= 0x00000002;
            }
            com.google.protobuf.MapEntry<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>
            blockInfoMap__ = input.readMessage(
                BlockInfoMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
            blockInfoMap_.getMutableMap().put(
                blockInfoMap__.getKey(), blockInfoMap__.getValue());
            break;
          }
          case 1656: {

            oEENKBPDLCB_ = input.readBool();
            break;
          }
          case 1754: {
            java.lang.String s = input.readStringRequireUtf8();

            msg_ = s;
            break;
          }
          case 2152: {

            dFHNPLKJGMF_ = input.readBool();
            break;
          }
          case 3066: {
            if (!((mutable_bitField0_ & 0x00000008) != 0)) {
              featureBlockInfoList_ = new java.util.ArrayList<io.grasscutter.net.proto.define.FeatureBlockInfo>();
              mutable_bitField0_ |= 0x00000008;
            }
            featureBlockInfoList_.add(
                input.readMessage(io.grasscutter.net.proto.define.FeatureBlockInfo.parser(), extensionRegistry));
            break;
          }
          case 3410: {
            io.grasscutter.net.proto.define.ResVersionConfig.Builder subBuilder = null;
            if (nextResVersionConfig_ != null) {
              subBuilder = nextResVersionConfig_.toBuilder();
            }
            nextResVersionConfig_ = input.readMessage(io.grasscutter.net.proto.define.ResVersionConfig.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(nextResVersionConfig_);
              nextResVersionConfig_ = subBuilder.buildPartial();
            }

            break;
          }
          case 4418: {
            java.lang.String s = input.readStringRequireUtf8();

            clientSilenceVersionSuffix_ = s;
            break;
          }
          case 6192: {

            jJAFFHDCEFG_ = input.readBool();
            break;
          }
          case 8490: {

            fDEDHCEKMIP_ = input.readBytes();
            break;
          }
          case 8594: {
            io.grasscutter.net.proto.define.ResVersionConfig.Builder subBuilder = null;
            if (resVersionConfig_ != null) {
              subBuilder = resVersionConfig_.toBuilder();
            }
            resVersionConfig_ = input.readMessage(io.grasscutter.net.proto.define.ResVersionConfig.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(resVersionConfig_);
              resVersionConfig_ = subBuilder.buildPartial();
            }

            break;
          }
          case 9458: {
            java.lang.String s = input.readStringRequireUtf8();

            clientMd5_ = s;
            break;
          }
          case 10074: {
            if (!((mutable_bitField0_ & 0x00000004) != 0)) {
              shortAbilityHashMap_ = new java.util.ArrayList<io.grasscutter.net.proto.player.ShortAbilityHashPair>();
              mutable_bitField0_ |= 0x00000004;
            }
            shortAbilityHashMap_.add(
                input.readMessage(io.grasscutter.net.proto.player.ShortAbilityHashPair.parser(), extensionRegistry));
            break;
          }
          case 10104: {

            gHEJILPPKAL_ = input.readUInt32();
            break;
          }
          case 11258: {
            io.grasscutter.net.proto.define.StopServerInfo.Builder subBuilder = null;
            if (cNONEIKAGEM_ != null) {
              subBuilder = cNONEIKAGEM_.toBuilder();
            }
            cNONEIKAGEM_ = input.readMessage(io.grasscutter.net.proto.define.StopServerInfo.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(cNONEIKAGEM_);
              cNONEIKAGEM_ = subBuilder.buildPartial();
            }

            break;
          }
          case 11392: {

            mFLNKIPGBHH_ = input.readBool();
            break;
          }
          case 11578: {
            java.lang.String s = input.readStringRequireUtf8();

            birthday_ = s;
            break;
          }
          case 12306: {
            java.lang.String s = input.readStringRequireUtf8();

            hOHOGGJOAOP_ = s;
            break;
          }
          case 14050: {
            java.lang.String s = input.readStringRequireUtf8();

            clientVersionSuffix_ = s;
            break;
          }
          case 14522: {
            java.lang.String s = input.readStringRequireUtf8();

            countryCode_ = s;
            break;
          }
          case 14545: {

            totalTickTime_ = input.readDouble();
            break;
          }
          case 15330: {
            java.lang.String s = input.readStringRequireUtf8();

            nextResourceUrl_ = s;
            break;
          }
          case 15440: {

            pJLHHCIILFB_ = input.readBool();
            break;
          }
          case 15818: {
            java.lang.String s = input.readStringRequireUtf8();

            clientSilenceMd5_ = s;
            break;
          }
          case 15968: {

            nGIOMIKNNCL_ = input.readBool();
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000008) != 0)) {
        featureBlockInfoList_ = java.util.Collections.unmodifiableList(featureBlockInfoList_);
      }
      if (((mutable_bitField0_ & 0x00000004) != 0)) {
        shortAbilityHashMap_ = java.util.Collections.unmodifiableList(shortAbilityHashMap_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_descriptor;
  }

  @SuppressWarnings({"rawtypes"})
  @java.lang.Override
  protected com.google.protobuf.MapField internalGetMapField(
      int number) {
    switch (number) {
      case 1:
        return internalGetAbilityHashMap();
      case 133:
        return internalGetBlockInfoMap();
      default:
        throw new RuntimeException(
            "Invalid map field number: " + number);
    }
  }
  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            io.grasscutter.net.proto.player.PlayerLoginRsp.class, io.grasscutter.net.proto.player.PlayerLoginRsp.Builder.class);
  }

  public static final int BIRTHDAY_FIELD_NUMBER = 1447;
  private volatile java.lang.Object birthday_;
  /**
   * <code>string birthday = 1447;</code>
   * @return The birthday.
   */
  @java.lang.Override
  public java.lang.String getBirthday() {
    java.lang.Object ref = birthday_;
    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();
      birthday_ = s;
      return s;
    }
  }
  /**
   * <code>string birthday = 1447;</code>
   * @return The bytes for birthday.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getBirthdayBytes() {
    java.lang.Object ref = birthday_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      birthday_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CNONEIKAGEM_FIELD_NUMBER = 1407;
  private io.grasscutter.net.proto.define.StopServerInfo cNONEIKAGEM_;
  /**
   * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
   * @return Whether the cNONEIKAGEM field is set.
   */
  @java.lang.Override
  public boolean hasCNONEIKAGEM() {
    return cNONEIKAGEM_ != null;
  }
  /**
   * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
   * @return The cNONEIKAGEM.
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.StopServerInfo getCNONEIKAGEM() {
    return cNONEIKAGEM_ == null ? io.grasscutter.net.proto.define.StopServerInfo.getDefaultInstance() : cNONEIKAGEM_;
  }
  /**
   * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.StopServerInfoOrBuilder getCNONEIKAGEMOrBuilder() {
    return getCNONEIKAGEM();
  }

  public static final int CLIENT_SILENCE_MD5_FIELD_NUMBER = 1977;
  private volatile java.lang.Object clientSilenceMd5_;
  /**
   * <code>string client_silence_md5 = 1977;</code>
   * @return The clientSilenceMd5.
   */
  @java.lang.Override
  public java.lang.String getClientSilenceMd5() {
    java.lang.Object ref = clientSilenceMd5_;
    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();
      clientSilenceMd5_ = s;
      return s;
    }
  }
  /**
   * <code>string client_silence_md5 = 1977;</code>
   * @return The bytes for clientSilenceMd5.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getClientSilenceMd5Bytes() {
    java.lang.Object ref = clientSilenceMd5_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      clientSilenceMd5_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int JFJKEDFAFPM_FIELD_NUMBER = 8;
  private com.google.protobuf.ByteString jFJKEDFAFPM_;
  /**
   * <code>bytes JFJKEDFAFPM = 8;</code>
   * @return The jFJKEDFAFPM.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getJFJKEDFAFPM() {
    return jFJKEDFAFPM_;
  }

  public static final int RES_VERSION_CONFIG_FIELD_NUMBER = 1074;
  private io.grasscutter.net.proto.define.ResVersionConfig resVersionConfig_;
  /**
   * <code>.ResVersionConfig res_version_config = 1074;</code>
   * @return Whether the resVersionConfig field is set.
   */
  @java.lang.Override
  public boolean hasResVersionConfig() {
    return resVersionConfig_ != null;
  }
  /**
   * <code>.ResVersionConfig res_version_config = 1074;</code>
   * @return The resVersionConfig.
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.ResVersionConfig getResVersionConfig() {
    return resVersionConfig_ == null ? io.grasscutter.net.proto.define.ResVersionConfig.getDefaultInstance() : resVersionConfig_;
  }
  /**
   * <code>.ResVersionConfig res_version_config = 1074;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.ResVersionConfigOrBuilder getResVersionConfigOrBuilder() {
    return getResVersionConfig();
  }

  public static final int HOHOGGJOAOP_FIELD_NUMBER = 1538;
  private volatile java.lang.Object hOHOGGJOAOP_;
  /**
   * <code>string HOHOGGJOAOP = 1538;</code>
   * @return The hOHOGGJOAOP.
   */
  @java.lang.Override
  public java.lang.String getHOHOGGJOAOP() {
    java.lang.Object ref = hOHOGGJOAOP_;
    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();
      hOHOGGJOAOP_ = s;
      return s;
    }
  }
  /**
   * <code>string HOHOGGJOAOP = 1538;</code>
   * @return The bytes for hOHOGGJOAOP.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getHOHOGGJOAOPBytes() {
    java.lang.Object ref = hOHOGGJOAOP_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      hOHOGGJOAOP_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int FDEDHCEKMIP_FIELD_NUMBER = 1061;
  private com.google.protobuf.ByteString fDEDHCEKMIP_;
  /**
   * <code>bytes FDEDHCEKMIP = 1061;</code>
   * @return The fDEDHCEKMIP.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getFDEDHCEKMIP() {
    return fDEDHCEKMIP_;
  }

  public static final int CLIENT_VERSION_SUFFIX_FIELD_NUMBER = 1756;
  private volatile java.lang.Object clientVersionSuffix_;
  /**
   * <code>string client_version_suffix = 1756;</code>
   * @return The clientVersionSuffix.
   */
  @java.lang.Override
  public java.lang.String getClientVersionSuffix() {
    java.lang.Object ref = clientVersionSuffix_;
    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();
      clientVersionSuffix_ = s;
      return s;
    }
  }
  /**
   * <code>string client_version_suffix = 1756;</code>
   * @return The bytes for clientVersionSuffix.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getClientVersionSuffixBytes() {
    java.lang.Object ref = clientVersionSuffix_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      clientVersionSuffix_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CLIENT_SILENCE_VERSION_SUFFIX_FIELD_NUMBER = 552;
  private volatile java.lang.Object clientSilenceVersionSuffix_;
  /**
   * <code>string client_silence_version_suffix = 552;</code>
   * @return The clientSilenceVersionSuffix.
   */
  @java.lang.Override
  public java.lang.String getClientSilenceVersionSuffix() {
    java.lang.Object ref = clientSilenceVersionSuffix_;
    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();
      clientSilenceVersionSuffix_ = s;
      return s;
    }
  }
  /**
   * <code>string client_silence_version_suffix = 552;</code>
   * @return The bytes for clientSilenceVersionSuffix.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getClientSilenceVersionSuffixBytes() {
    java.lang.Object ref = clientSilenceVersionSuffix_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      clientSilenceVersionSuffix_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ABILITY_HASH_MAP_FIELD_NUMBER = 1;
  private static final class AbilityHashMapDefaultEntryHolder {
    static final com.google.protobuf.MapEntry<
        java.lang.String, java.lang.Integer> defaultEntry =
            com.google.protobuf.MapEntry
            .<java.lang.String, java.lang.Integer>newDefaultInstance(
                io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_AbilityHashMapEntry_descriptor, 
                com.google.protobuf.WireFormat.FieldType.STRING,
                "",
                com.google.protobuf.WireFormat.FieldType.INT32,
                0);
  }
  private com.google.protobuf.MapField<
      java.lang.String, java.lang.Integer> abilityHashMap_;
  private com.google.protobuf.MapField<java.lang.String, java.lang.Integer>
  internalGetAbilityHashMap() {
    if (abilityHashMap_ == null) {
      return com.google.protobuf.MapField.emptyMapField(
          AbilityHashMapDefaultEntryHolder.defaultEntry);
    }
    return abilityHashMap_;
  }

  public int getAbilityHashMapCount() {
    return internalGetAbilityHashMap().getMap().size();
  }
  /**
   * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
   */

  @java.lang.Override
  public boolean containsAbilityHashMap(
      java.lang.String key) {
    if (key == null) { throw new java.lang.NullPointerException(); }
    return internalGetAbilityHashMap().getMap().containsKey(key);
  }
  /**
   * Use {@link #getAbilityHashMapMap()} instead.
   */
  @java.lang.Override
  @java.lang.Deprecated
  public java.util.Map<java.lang.String, java.lang.Integer> getAbilityHashMap() {
    return getAbilityHashMapMap();
  }
  /**
   * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
   */
  @java.lang.Override

  public java.util.Map<java.lang.String, java.lang.Integer> getAbilityHashMapMap() {
    return internalGetAbilityHashMap().getMap();
  }
  /**
   * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
   */
  @java.lang.Override

  public int getAbilityHashMapOrDefault(
      java.lang.String key,
      int defaultValue) {
    if (key == null) { throw new java.lang.NullPointerException(); }
    java.util.Map<java.lang.String, java.lang.Integer> map =
        internalGetAbilityHashMap().getMap();
    return map.containsKey(key) ? map.get(key) : defaultValue;
  }
  /**
   * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
   */
  @java.lang.Override

  public int getAbilityHashMapOrThrow(
      java.lang.String key) {
    if (key == null) { throw new java.lang.NullPointerException(); }
    java.util.Map<java.lang.String, java.lang.Integer> map =
        internalGetAbilityHashMap().getMap();
    if (!map.containsKey(key)) {
      throw new java.lang.IllegalArgumentException();
    }
    return map.get(key);
  }

  public static final int BLOCK_INFO_MAP_FIELD_NUMBER = 133;
  private static final class BlockInfoMapDefaultEntryHolder {
    static final com.google.protobuf.MapEntry<
        java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> defaultEntry =
            com.google.protobuf.MapEntry
            .<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>newDefaultInstance(
                io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_BlockInfoMapEntry_descriptor, 
                com.google.protobuf.WireFormat.FieldType.UINT32,
                0,
                com.google.protobuf.WireFormat.FieldType.MESSAGE,
                io.grasscutter.net.proto.define.BlockInfo.getDefaultInstance());
  }
  private com.google.protobuf.MapField<
      java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> blockInfoMap_;
  private com.google.protobuf.MapField<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>
  internalGetBlockInfoMap() {
    if (blockInfoMap_ == null) {
      return com.google.protobuf.MapField.emptyMapField(
          BlockInfoMapDefaultEntryHolder.defaultEntry);
    }
    return blockInfoMap_;
  }

  public int getBlockInfoMapCount() {
    return internalGetBlockInfoMap().getMap().size();
  }
  /**
   * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
   */

  @java.lang.Override
  public boolean containsBlockInfoMap(
      int key) {
    
    return internalGetBlockInfoMap().getMap().containsKey(key);
  }
  /**
   * Use {@link #getBlockInfoMapMap()} instead.
   */
  @java.lang.Override
  @java.lang.Deprecated
  public java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> getBlockInfoMap() {
    return getBlockInfoMapMap();
  }
  /**
   * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
   */
  @java.lang.Override

  public java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> getBlockInfoMapMap() {
    return internalGetBlockInfoMap().getMap();
  }
  /**
   * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
   */
  @java.lang.Override

  public io.grasscutter.net.proto.define.BlockInfo getBlockInfoMapOrDefault(
      int key,
      io.grasscutter.net.proto.define.BlockInfo defaultValue) {
    
    java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> map =
        internalGetBlockInfoMap().getMap();
    return map.containsKey(key) ? map.get(key) : defaultValue;
  }
  /**
   * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
   */
  @java.lang.Override

  public io.grasscutter.net.proto.define.BlockInfo getBlockInfoMapOrThrow(
      int key) {
    
    java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> map =
        internalGetBlockInfoMap().getMap();
    if (!map.containsKey(key)) {
      throw new java.lang.IllegalArgumentException();
    }
    return map.get(key);
  }

  public static final int SHORT_ABILITY_HASH_MAP_FIELD_NUMBER = 1259;
  private java.util.List<io.grasscutter.net.proto.player.ShortAbilityHashPair> shortAbilityHashMap_;
  /**
   * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
   */
  @java.lang.Override
  public java.util.List<io.grasscutter.net.proto.player.ShortAbilityHashPair> getShortAbilityHashMapList() {
    return shortAbilityHashMap_;
  }
  /**
   * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
   */
  @java.lang.Override
  public java.util.List<? extends io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder> 
      getShortAbilityHashMapOrBuilderList() {
    return shortAbilityHashMap_;
  }
  /**
   * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
   */
  @java.lang.Override
  public int getShortAbilityHashMapCount() {
    return shortAbilityHashMap_.size();
  }
  /**
   * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.player.ShortAbilityHashPair getShortAbilityHashMap(int index) {
    return shortAbilityHashMap_.get(index);
  }
  /**
   * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder getShortAbilityHashMapOrBuilder(
      int index) {
    return shortAbilityHashMap_.get(index);
  }

  public static final int FEATURE_BLOCK_INFO_LIST_FIELD_NUMBER = 383;
  private java.util.List<io.grasscutter.net.proto.define.FeatureBlockInfo> featureBlockInfoList_;
  /**
   * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
   */
  @java.lang.Override
  public java.util.List<io.grasscutter.net.proto.define.FeatureBlockInfo> getFeatureBlockInfoListList() {
    return featureBlockInfoList_;
  }
  /**
   * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
   */
  @java.lang.Override
  public java.util.List<? extends io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder> 
      getFeatureBlockInfoListOrBuilderList() {
    return featureBlockInfoList_;
  }
  /**
   * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
   */
  @java.lang.Override
  public int getFeatureBlockInfoListCount() {
    return featureBlockInfoList_.size();
  }
  /**
   * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.FeatureBlockInfo getFeatureBlockInfoList(int index) {
    return featureBlockInfoList_.get(index);
  }
  /**
   * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder getFeatureBlockInfoListOrBuilder(
      int index) {
    return featureBlockInfoList_.get(index);
  }

  public static final int CLIENT_MD5_FIELD_NUMBER = 1182;
  private volatile java.lang.Object clientMd5_;
  /**
   * <code>string client_md5 = 1182;</code>
   * @return The clientMd5.
   */
  @java.lang.Override
  public java.lang.String getClientMd5() {
    java.lang.Object ref = clientMd5_;
    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();
      clientMd5_ = s;
      return s;
    }
  }
  /**
   * <code>string client_md5 = 1182;</code>
   * @return The bytes for clientMd5.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getClientMd5Bytes() {
    java.lang.Object ref = clientMd5_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      clientMd5_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int APHAAHPDDJB_FIELD_NUMBER = 11;
  private volatile java.lang.Object aPHAAHPDDJB_;
  /**
   * <code>string APHAAHPDDJB = 11;</code>
   * @return The aPHAAHPDDJB.
   */
  @java.lang.Override
  public java.lang.String getAPHAAHPDDJB() {
    java.lang.Object ref = aPHAAHPDDJB_;
    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();
      aPHAAHPDDJB_ = s;
      return s;
    }
  }
  /**
   * <code>string APHAAHPDDJB = 11;</code>
   * @return The bytes for aPHAAHPDDJB.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getAPHAAHPDDJBBytes() {
    java.lang.Object ref = aPHAAHPDDJB_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      aPHAAHPDDJB_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int NEXT_RES_VERSION_CONFIG_FIELD_NUMBER = 426;
  private io.grasscutter.net.proto.define.ResVersionConfig nextResVersionConfig_;
  /**
   * <code>.ResVersionConfig next_res_version_config = 426;</code>
   * @return Whether the nextResVersionConfig field is set.
   */
  @java.lang.Override
  public boolean hasNextResVersionConfig() {
    return nextResVersionConfig_ != null;
  }
  /**
   * <code>.ResVersionConfig next_res_version_config = 426;</code>
   * @return The nextResVersionConfig.
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.ResVersionConfig getNextResVersionConfig() {
    return nextResVersionConfig_ == null ? io.grasscutter.net.proto.define.ResVersionConfig.getDefaultInstance() : nextResVersionConfig_;
  }
  /**
   * <code>.ResVersionConfig next_res_version_config = 426;</code>
   */
  @java.lang.Override
  public io.grasscutter.net.proto.define.ResVersionConfigOrBuilder getNextResVersionConfigOrBuilder() {
    return getNextResVersionConfig();
  }

  public static final int COUNTRY_CODE_FIELD_NUMBER = 1815;
  private volatile java.lang.Object countryCode_;
  /**
   * <code>string country_code = 1815;</code>
   * @return The countryCode.
   */
  @java.lang.Override
  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();
      countryCode_ = s;
      return s;
    }
  }
  /**
   * <code>string country_code = 1815;</code>
   * @return The bytes for countryCode.
   */
  @java.lang.Override
  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 NEXT_RESOURCE_URL_FIELD_NUMBER = 1916;
  private volatile java.lang.Object nextResourceUrl_;
  /**
   * <code>string next_resource_url = 1916;</code>
   * @return The nextResourceUrl.
   */
  @java.lang.Override
  public java.lang.String getNextResourceUrl() {
    java.lang.Object ref = nextResourceUrl_;
    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();
      nextResourceUrl_ = s;
      return s;
    }
  }
  /**
   * <code>string next_resource_url = 1916;</code>
   * @return The bytes for nextResourceUrl.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getNextResourceUrlBytes() {
    java.lang.Object ref = nextResourceUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      nextResourceUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MSG_FIELD_NUMBER = 219;
  private volatile java.lang.Object msg_;
  /**
   * <code>string msg = 219;</code>
   * @return The msg.
   */
  @java.lang.Override
  public java.lang.String getMsg() {
    java.lang.Object ref = msg_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      msg_ = s;
      return s;
    }
  }
  /**
   * <code>string msg = 219;</code>
   * @return The bytes for msg.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMsgBytes() {
    java.lang.Object ref = msg_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      msg_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int GHEJILPPKAL_FIELD_NUMBER = 1263;
  private int gHEJILPPKAL_;
  /**
   * <code>uint32 GHEJILPPKAL = 1263;</code>
   * @return The gHEJILPPKAL.
   */
  @java.lang.Override
  public int getGHEJILPPKAL() {
    return gHEJILPPKAL_;
  }

  public static final int JJAFFHDCEFG_FIELD_NUMBER = 774;
  private boolean jJAFFHDCEFG_;
  /**
   * <code>bool JJAFFHDCEFG = 774;</code>
   * @return The jJAFFHDCEFG.
   */
  @java.lang.Override
  public boolean getJJAFFHDCEFG() {
    return jJAFFHDCEFG_;
  }

  public static final int PJLHHCIILFB_FIELD_NUMBER = 1930;
  private boolean pJLHHCIILFB_;
  /**
   * <code>bool PJLHHCIILFB = 1930;</code>
   * @return The pJLHHCIILFB.
   */
  @java.lang.Override
  public boolean getPJLHHCIILFB() {
    return pJLHHCIILFB_;
  }

  public static final int DFHNPLKJGMF_FIELD_NUMBER = 269;
  private boolean dFHNPLKJGMF_;
  /**
   * <code>bool DFHNPLKJGMF = 269;</code>
   * @return The dFHNPLKJGMF.
   */
  @java.lang.Override
  public boolean getDFHNPLKJGMF() {
    return dFHNPLKJGMF_;
  }

  public static final int NGIOMIKNNCL_FIELD_NUMBER = 1996;
  private boolean nGIOMIKNNCL_;
  /**
   * <code>bool NGIOMIKNNCL = 1996;</code>
   * @return The nGIOMIKNNCL.
   */
  @java.lang.Override
  public boolean getNGIOMIKNNCL() {
    return nGIOMIKNNCL_;
  }

  public static final int TOTAL_TICK_TIME_FIELD_NUMBER = 1818;
  private double totalTickTime_;
  /**
   * <code>double total_tick_time = 1818;</code>
   * @return The totalTickTime.
   */
  @java.lang.Override
  public double getTotalTickTime() {
    return totalTickTime_;
  }

  public static final int IS_RELOGIN_FIELD_NUMBER = 9;
  private boolean isRelogin_;
  /**
   * <code>bool is_relogin = 9;</code>
   * @return The isRelogin.
   */
  @java.lang.Override
  public boolean getIsRelogin() {
    return isRelogin_;
  }

  public static final int DHNKFDJHDBF_FIELD_NUMBER = 13;
  private boolean dHNKFDJHDBF_;
  /**
   * <code>bool DHNKFDJHDBF = 13;</code>
   * @return The dHNKFDJHDBF.
   */
  @java.lang.Override
  public boolean getDHNKFDJHDBF() {
    return dHNKFDJHDBF_;
  }

  public static final int PAKNLFOEBLB_FIELD_NUMBER = 3;
  private int pAKNLFOEBLB_;
  /**
   * <code>uint32 PAKNLFOEBLB = 3;</code>
   * @return The pAKNLFOEBLB.
   */
  @java.lang.Override
  public int getPAKNLFOEBLB() {
    return pAKNLFOEBLB_;
  }

  public static final int LOGIN_RAND_FIELD_NUMBER = 14;
  private long loginRand_;
  /**
   * <code>uint64 login_rand = 14;</code>
   * @return The loginRand.
   */
  @java.lang.Override
  public long getLoginRand() {
    return loginRand_;
  }

  public static final int OEENKBPDLCB_FIELD_NUMBER = 207;
  private boolean oEENKBPDLCB_;
  /**
   * <code>bool OEENKBPDLCB = 207;</code>
   * @return The oEENKBPDLCB.
   */
  @java.lang.Override
  public boolean getOEENKBPDLCB() {
    return oEENKBPDLCB_;
  }

  public static final int DJCHBDAPKOB_FIELD_NUMBER = 2;
  private boolean dJCHBDAPKOB_;
  /**
   * <code>bool DJCHBDAPKOB = 2;</code>
   * @return The dJCHBDAPKOB.
   */
  @java.lang.Override
  public boolean getDJCHBDAPKOB() {
    return dJCHBDAPKOB_;
  }

  public static final int MFLNKIPGBHH_FIELD_NUMBER = 1424;
  private boolean mFLNKIPGBHH_;
  /**
   * <code>bool MFLNKIPGBHH = 1424;</code>
   * @return The mFLNKIPGBHH.
   */
  @java.lang.Override
  public boolean getMFLNKIPGBHH() {
    return mFLNKIPGBHH_;
  }

  public static final int EDMOCOCJPHH_FIELD_NUMBER = 15;
  private int eDMOCOCJPHH_;
  /**
   * <code>uint32 EDMOCOCJPHH = 15;</code>
   * @return The eDMOCOCJPHH.
   */
  @java.lang.Override
  public int getEDMOCOCJPHH() {
    return eDMOCOCJPHH_;
  }

  public static final int ABILITY_HASH_CODE_FIELD_NUMBER = 10;
  private int abilityHashCode_;
  /**
   * <code>int32 ability_hash_code = 10;</code>
   * @return The abilityHashCode.
   */
  @java.lang.Override
  public int getAbilityHashCode() {
    return abilityHashCode_;
  }

  public static final int RETCODE_FIELD_NUMBER = 7;
  private int retcode_;
  /**
   * <code>int32 retcode = 7;</code>
   * @return The retcode.
   */
  @java.lang.Override
  public int getRetcode() {
    return retcode_;
  }

  public static final int TARGET_UID_FIELD_NUMBER = 6;
  private int targetUid_;
  /**
   * <code>uint32 target_uid = 6;</code>
   * @return The targetUid.
   */
  @java.lang.Override
  public int getTargetUid() {
    return targetUid_;
  }

  public static final int IKCCNHPCMKL_FIELD_NUMBER = 4;
  private int iKCCNHPCMKL_;
  /**
   * <code>uint32 IKCCNHPCMKL = 4;</code>
   * @return The iKCCNHPCMKL.
   */
  @java.lang.Override
  public int getIKCCNHPCMKL() {
    return iKCCNHPCMKL_;
  }

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

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    com.google.protobuf.GeneratedMessageV3
      .serializeStringMapTo(
        output,
        internalGetAbilityHashMap(),
        AbilityHashMapDefaultEntryHolder.defaultEntry,
        1);
    if (dJCHBDAPKOB_ != false) {
      output.writeBool(2, dJCHBDAPKOB_);
    }
    if (pAKNLFOEBLB_ != 0) {
      output.writeUInt32(3, pAKNLFOEBLB_);
    }
    if (iKCCNHPCMKL_ != 0) {
      output.writeUInt32(4, iKCCNHPCMKL_);
    }
    if (targetUid_ != 0) {
      output.writeUInt32(6, targetUid_);
    }
    if (retcode_ != 0) {
      output.writeInt32(7, retcode_);
    }
    if (!jFJKEDFAFPM_.isEmpty()) {
      output.writeBytes(8, jFJKEDFAFPM_);
    }
    if (isRelogin_ != false) {
      output.writeBool(9, isRelogin_);
    }
    if (abilityHashCode_ != 0) {
      output.writeInt32(10, abilityHashCode_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(aPHAAHPDDJB_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 11, aPHAAHPDDJB_);
    }
    if (dHNKFDJHDBF_ != false) {
      output.writeBool(13, dHNKFDJHDBF_);
    }
    if (loginRand_ != 0L) {
      output.writeUInt64(14, loginRand_);
    }
    if (eDMOCOCJPHH_ != 0) {
      output.writeUInt32(15, eDMOCOCJPHH_);
    }
    com.google.protobuf.GeneratedMessageV3
      .serializeIntegerMapTo(
        output,
        internalGetBlockInfoMap(),
        BlockInfoMapDefaultEntryHolder.defaultEntry,
        133);
    if (oEENKBPDLCB_ != false) {
      output.writeBool(207, oEENKBPDLCB_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 219, msg_);
    }
    if (dFHNPLKJGMF_ != false) {
      output.writeBool(269, dFHNPLKJGMF_);
    }
    for (int i = 0; i < featureBlockInfoList_.size(); i++) {
      output.writeMessage(383, featureBlockInfoList_.get(i));
    }
    if (nextResVersionConfig_ != null) {
      output.writeMessage(426, getNextResVersionConfig());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientSilenceVersionSuffix_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 552, clientSilenceVersionSuffix_);
    }
    if (jJAFFHDCEFG_ != false) {
      output.writeBool(774, jJAFFHDCEFG_);
    }
    if (!fDEDHCEKMIP_.isEmpty()) {
      output.writeBytes(1061, fDEDHCEKMIP_);
    }
    if (resVersionConfig_ != null) {
      output.writeMessage(1074, getResVersionConfig());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientMd5_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1182, clientMd5_);
    }
    for (int i = 0; i < shortAbilityHashMap_.size(); i++) {
      output.writeMessage(1259, shortAbilityHashMap_.get(i));
    }
    if (gHEJILPPKAL_ != 0) {
      output.writeUInt32(1263, gHEJILPPKAL_);
    }
    if (cNONEIKAGEM_ != null) {
      output.writeMessage(1407, getCNONEIKAGEM());
    }
    if (mFLNKIPGBHH_ != false) {
      output.writeBool(1424, mFLNKIPGBHH_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(birthday_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1447, birthday_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hOHOGGJOAOP_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1538, hOHOGGJOAOP_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientVersionSuffix_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1756, clientVersionSuffix_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(countryCode_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1815, countryCode_);
    }
    if (totalTickTime_ != 0D) {
      output.writeDouble(1818, totalTickTime_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextResourceUrl_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1916, nextResourceUrl_);
    }
    if (pJLHHCIILFB_ != false) {
      output.writeBool(1930, pJLHHCIILFB_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientSilenceMd5_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1977, clientSilenceMd5_);
    }
    if (nGIOMIKNNCL_ != false) {
      output.writeBool(1996, nGIOMIKNNCL_);
    }
    unknownFields.writeTo(output);
  }

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

    size = 0;
    for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry
         : internalGetAbilityHashMap().getMap().entrySet()) {
      com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer>
      abilityHashMap__ = AbilityHashMapDefaultEntryHolder.defaultEntry.newBuilderForType()
          .setKey(entry.getKey())
          .setValue(entry.getValue())
          .build();
      size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, abilityHashMap__);
    }
    if (dJCHBDAPKOB_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(2, dJCHBDAPKOB_);
    }
    if (pAKNLFOEBLB_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(3, pAKNLFOEBLB_);
    }
    if (iKCCNHPCMKL_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(4, iKCCNHPCMKL_);
    }
    if (targetUid_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(6, targetUid_);
    }
    if (retcode_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(7, retcode_);
    }
    if (!jFJKEDFAFPM_.isEmpty()) {
      size += com.google.protobuf.CodedOutputStream
        .computeBytesSize(8, jFJKEDFAFPM_);
    }
    if (isRelogin_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(9, isRelogin_);
    }
    if (abilityHashCode_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(10, abilityHashCode_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(aPHAAHPDDJB_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, aPHAAHPDDJB_);
    }
    if (dHNKFDJHDBF_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(13, dHNKFDJHDBF_);
    }
    if (loginRand_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(14, loginRand_);
    }
    if (eDMOCOCJPHH_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(15, eDMOCOCJPHH_);
    }
    for (java.util.Map.Entry<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> entry
         : internalGetBlockInfoMap().getMap().entrySet()) {
      com.google.protobuf.MapEntry<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>
      blockInfoMap__ = BlockInfoMapDefaultEntryHolder.defaultEntry.newBuilderForType()
          .setKey(entry.getKey())
          .setValue(entry.getValue())
          .build();
      size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(133, blockInfoMap__);
    }
    if (oEENKBPDLCB_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(207, oEENKBPDLCB_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(219, msg_);
    }
    if (dFHNPLKJGMF_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(269, dFHNPLKJGMF_);
    }
    for (int i = 0; i < featureBlockInfoList_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(383, featureBlockInfoList_.get(i));
    }
    if (nextResVersionConfig_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(426, getNextResVersionConfig());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientSilenceVersionSuffix_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(552, clientSilenceVersionSuffix_);
    }
    if (jJAFFHDCEFG_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(774, jJAFFHDCEFG_);
    }
    if (!fDEDHCEKMIP_.isEmpty()) {
      size += com.google.protobuf.CodedOutputStream
        .computeBytesSize(1061, fDEDHCEKMIP_);
    }
    if (resVersionConfig_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1074, getResVersionConfig());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientMd5_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1182, clientMd5_);
    }
    for (int i = 0; i < shortAbilityHashMap_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1259, shortAbilityHashMap_.get(i));
    }
    if (gHEJILPPKAL_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(1263, gHEJILPPKAL_);
    }
    if (cNONEIKAGEM_ != null) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(1407, getCNONEIKAGEM());
    }
    if (mFLNKIPGBHH_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(1424, mFLNKIPGBHH_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(birthday_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1447, birthday_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hOHOGGJOAOP_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1538, hOHOGGJOAOP_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientVersionSuffix_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1756, clientVersionSuffix_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(countryCode_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1815, countryCode_);
    }
    if (totalTickTime_ != 0D) {
      size += com.google.protobuf.CodedOutputStream
        .computeDoubleSize(1818, totalTickTime_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextResourceUrl_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1916, nextResourceUrl_);
    }
    if (pJLHHCIILFB_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(1930, pJLHHCIILFB_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clientSilenceMd5_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1977, clientSilenceMd5_);
    }
    if (nGIOMIKNNCL_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(1996, nGIOMIKNNCL_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof io.grasscutter.net.proto.player.PlayerLoginRsp)) {
      return super.equals(obj);
    }
    io.grasscutter.net.proto.player.PlayerLoginRsp other = (io.grasscutter.net.proto.player.PlayerLoginRsp) obj;

    if (!getBirthday()
        .equals(other.getBirthday())) return false;
    if (hasCNONEIKAGEM() != other.hasCNONEIKAGEM()) return false;
    if (hasCNONEIKAGEM()) {
      if (!getCNONEIKAGEM()
          .equals(other.getCNONEIKAGEM())) return false;
    }
    if (!getClientSilenceMd5()
        .equals(other.getClientSilenceMd5())) return false;
    if (!getJFJKEDFAFPM()
        .equals(other.getJFJKEDFAFPM())) return false;
    if (hasResVersionConfig() != other.hasResVersionConfig()) return false;
    if (hasResVersionConfig()) {
      if (!getResVersionConfig()
          .equals(other.getResVersionConfig())) return false;
    }
    if (!getHOHOGGJOAOP()
        .equals(other.getHOHOGGJOAOP())) return false;
    if (!getFDEDHCEKMIP()
        .equals(other.getFDEDHCEKMIP())) return false;
    if (!getClientVersionSuffix()
        .equals(other.getClientVersionSuffix())) return false;
    if (!getClientSilenceVersionSuffix()
        .equals(other.getClientSilenceVersionSuffix())) return false;
    if (!internalGetAbilityHashMap().equals(
        other.internalGetAbilityHashMap())) return false;
    if (!internalGetBlockInfoMap().equals(
        other.internalGetBlockInfoMap())) return false;
    if (!getShortAbilityHashMapList()
        .equals(other.getShortAbilityHashMapList())) return false;
    if (!getFeatureBlockInfoListList()
        .equals(other.getFeatureBlockInfoListList())) return false;
    if (!getClientMd5()
        .equals(other.getClientMd5())) return false;
    if (!getAPHAAHPDDJB()
        .equals(other.getAPHAAHPDDJB())) return false;
    if (hasNextResVersionConfig() != other.hasNextResVersionConfig()) return false;
    if (hasNextResVersionConfig()) {
      if (!getNextResVersionConfig()
          .equals(other.getNextResVersionConfig())) return false;
    }
    if (!getCountryCode()
        .equals(other.getCountryCode())) return false;
    if (!getNextResourceUrl()
        .equals(other.getNextResourceUrl())) return false;
    if (!getMsg()
        .equals(other.getMsg())) return false;
    if (getGHEJILPPKAL()
        != other.getGHEJILPPKAL()) return false;
    if (getJJAFFHDCEFG()
        != other.getJJAFFHDCEFG()) return false;
    if (getPJLHHCIILFB()
        != other.getPJLHHCIILFB()) return false;
    if (getDFHNPLKJGMF()
        != other.getDFHNPLKJGMF()) return false;
    if (getNGIOMIKNNCL()
        != other.getNGIOMIKNNCL()) return false;
    if (java.lang.Double.doubleToLongBits(getTotalTickTime())
        != java.lang.Double.doubleToLongBits(
            other.getTotalTickTime())) return false;
    if (getIsRelogin()
        != other.getIsRelogin()) return false;
    if (getDHNKFDJHDBF()
        != other.getDHNKFDJHDBF()) return false;
    if (getPAKNLFOEBLB()
        != other.getPAKNLFOEBLB()) return false;
    if (getLoginRand()
        != other.getLoginRand()) return false;
    if (getOEENKBPDLCB()
        != other.getOEENKBPDLCB()) return false;
    if (getDJCHBDAPKOB()
        != other.getDJCHBDAPKOB()) return false;
    if (getMFLNKIPGBHH()
        != other.getMFLNKIPGBHH()) return false;
    if (getEDMOCOCJPHH()
        != other.getEDMOCOCJPHH()) return false;
    if (getAbilityHashCode()
        != other.getAbilityHashCode()) return false;
    if (getRetcode()
        != other.getRetcode()) return false;
    if (getTargetUid()
        != other.getTargetUid()) return false;
    if (getIKCCNHPCMKL()
        != other.getIKCCNHPCMKL()) return false;
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + BIRTHDAY_FIELD_NUMBER;
    hash = (53 * hash) + getBirthday().hashCode();
    if (hasCNONEIKAGEM()) {
      hash = (37 * hash) + CNONEIKAGEM_FIELD_NUMBER;
      hash = (53 * hash) + getCNONEIKAGEM().hashCode();
    }
    hash = (37 * hash) + CLIENT_SILENCE_MD5_FIELD_NUMBER;
    hash = (53 * hash) + getClientSilenceMd5().hashCode();
    hash = (37 * hash) + JFJKEDFAFPM_FIELD_NUMBER;
    hash = (53 * hash) + getJFJKEDFAFPM().hashCode();
    if (hasResVersionConfig()) {
      hash = (37 * hash) + RES_VERSION_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getResVersionConfig().hashCode();
    }
    hash = (37 * hash) + HOHOGGJOAOP_FIELD_NUMBER;
    hash = (53 * hash) + getHOHOGGJOAOP().hashCode();
    hash = (37 * hash) + FDEDHCEKMIP_FIELD_NUMBER;
    hash = (53 * hash) + getFDEDHCEKMIP().hashCode();
    hash = (37 * hash) + CLIENT_VERSION_SUFFIX_FIELD_NUMBER;
    hash = (53 * hash) + getClientVersionSuffix().hashCode();
    hash = (37 * hash) + CLIENT_SILENCE_VERSION_SUFFIX_FIELD_NUMBER;
    hash = (53 * hash) + getClientSilenceVersionSuffix().hashCode();
    if (!internalGetAbilityHashMap().getMap().isEmpty()) {
      hash = (37 * hash) + ABILITY_HASH_MAP_FIELD_NUMBER;
      hash = (53 * hash) + internalGetAbilityHashMap().hashCode();
    }
    if (!internalGetBlockInfoMap().getMap().isEmpty()) {
      hash = (37 * hash) + BLOCK_INFO_MAP_FIELD_NUMBER;
      hash = (53 * hash) + internalGetBlockInfoMap().hashCode();
    }
    if (getShortAbilityHashMapCount() > 0) {
      hash = (37 * hash) + SHORT_ABILITY_HASH_MAP_FIELD_NUMBER;
      hash = (53 * hash) + getShortAbilityHashMapList().hashCode();
    }
    if (getFeatureBlockInfoListCount() > 0) {
      hash = (37 * hash) + FEATURE_BLOCK_INFO_LIST_FIELD_NUMBER;
      hash = (53 * hash) + getFeatureBlockInfoListList().hashCode();
    }
    hash = (37 * hash) + CLIENT_MD5_FIELD_NUMBER;
    hash = (53 * hash) + getClientMd5().hashCode();
    hash = (37 * hash) + APHAAHPDDJB_FIELD_NUMBER;
    hash = (53 * hash) + getAPHAAHPDDJB().hashCode();
    if (hasNextResVersionConfig()) {
      hash = (37 * hash) + NEXT_RES_VERSION_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getNextResVersionConfig().hashCode();
    }
    hash = (37 * hash) + COUNTRY_CODE_FIELD_NUMBER;
    hash = (53 * hash) + getCountryCode().hashCode();
    hash = (37 * hash) + NEXT_RESOURCE_URL_FIELD_NUMBER;
    hash = (53 * hash) + getNextResourceUrl().hashCode();
    hash = (37 * hash) + MSG_FIELD_NUMBER;
    hash = (53 * hash) + getMsg().hashCode();
    hash = (37 * hash) + GHEJILPPKAL_FIELD_NUMBER;
    hash = (53 * hash) + getGHEJILPPKAL();
    hash = (37 * hash) + JJAFFHDCEFG_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getJJAFFHDCEFG());
    hash = (37 * hash) + PJLHHCIILFB_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getPJLHHCIILFB());
    hash = (37 * hash) + DFHNPLKJGMF_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getDFHNPLKJGMF());
    hash = (37 * hash) + NGIOMIKNNCL_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getNGIOMIKNNCL());
    hash = (37 * hash) + TOTAL_TICK_TIME_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        java.lang.Double.doubleToLongBits(getTotalTickTime()));
    hash = (37 * hash) + IS_RELOGIN_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getIsRelogin());
    hash = (37 * hash) + DHNKFDJHDBF_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getDHNKFDJHDBF());
    hash = (37 * hash) + PAKNLFOEBLB_FIELD_NUMBER;
    hash = (53 * hash) + getPAKNLFOEBLB();
    hash = (37 * hash) + LOGIN_RAND_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getLoginRand());
    hash = (37 * hash) + OEENKBPDLCB_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getOEENKBPDLCB());
    hash = (37 * hash) + DJCHBDAPKOB_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getDJCHBDAPKOB());
    hash = (37 * hash) + MFLNKIPGBHH_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getMFLNKIPGBHH());
    hash = (37 * hash) + EDMOCOCJPHH_FIELD_NUMBER;
    hash = (53 * hash) + getEDMOCOCJPHH();
    hash = (37 * hash) + ABILITY_HASH_CODE_FIELD_NUMBER;
    hash = (53 * hash) + getAbilityHashCode();
    hash = (37 * hash) + RETCODE_FIELD_NUMBER;
    hash = (53 * hash) + getRetcode();
    hash = (37 * hash) + TARGET_UID_FIELD_NUMBER;
    hash = (53 * hash) + getTargetUid();
    hash = (37 * hash) + IKCCNHPCMKL_FIELD_NUMBER;
    hash = (53 * hash) + getIKCCNHPCMKL();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static io.grasscutter.net.proto.player.PlayerLoginRsp parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(io.grasscutter.net.proto.player.PlayerLoginRsp prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * <pre>
   * CmdId: 27700
   * </pre>
   *
   * Protobuf type {@code PlayerLoginRsp}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:PlayerLoginRsp)
      io.grasscutter.net.proto.player.PlayerLoginRspOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetAbilityHashMap();
        case 133:
          return internalGetBlockInfoMap();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMutableMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetMutableAbilityHashMap();
        case 133:
          return internalGetMutableBlockInfoMap();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grasscutter.net.proto.player.PlayerLoginRsp.class, io.grasscutter.net.proto.player.PlayerLoginRsp.Builder.class);
    }

    // Construct using io.grasscutter.net.proto.player.PlayerLoginRsp.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
        getShortAbilityHashMapFieldBuilder();
        getFeatureBlockInfoListFieldBuilder();
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      birthday_ = "";

      if (cNONEIKAGEMBuilder_ == null) {
        cNONEIKAGEM_ = null;
      } else {
        cNONEIKAGEM_ = null;
        cNONEIKAGEMBuilder_ = null;
      }
      clientSilenceMd5_ = "";

      jFJKEDFAFPM_ = com.google.protobuf.ByteString.EMPTY;

      if (resVersionConfigBuilder_ == null) {
        resVersionConfig_ = null;
      } else {
        resVersionConfig_ = null;
        resVersionConfigBuilder_ = null;
      }
      hOHOGGJOAOP_ = "";

      fDEDHCEKMIP_ = com.google.protobuf.ByteString.EMPTY;

      clientVersionSuffix_ = "";

      clientSilenceVersionSuffix_ = "";

      internalGetMutableAbilityHashMap().clear();
      internalGetMutableBlockInfoMap().clear();
      if (shortAbilityHashMapBuilder_ == null) {
        shortAbilityHashMap_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
      } else {
        shortAbilityHashMapBuilder_.clear();
      }
      if (featureBlockInfoListBuilder_ == null) {
        featureBlockInfoList_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
      } else {
        featureBlockInfoListBuilder_.clear();
      }
      clientMd5_ = "";

      aPHAAHPDDJB_ = "";

      if (nextResVersionConfigBuilder_ == null) {
        nextResVersionConfig_ = null;
      } else {
        nextResVersionConfig_ = null;
        nextResVersionConfigBuilder_ = null;
      }
      countryCode_ = "";

      nextResourceUrl_ = "";

      msg_ = "";

      gHEJILPPKAL_ = 0;

      jJAFFHDCEFG_ = false;

      pJLHHCIILFB_ = false;

      dFHNPLKJGMF_ = false;

      nGIOMIKNNCL_ = false;

      totalTickTime_ = 0D;

      isRelogin_ = false;

      dHNKFDJHDBF_ = false;

      pAKNLFOEBLB_ = 0;

      loginRand_ = 0L;

      oEENKBPDLCB_ = false;

      dJCHBDAPKOB_ = false;

      mFLNKIPGBHH_ = false;

      eDMOCOCJPHH_ = 0;

      abilityHashCode_ = 0;

      retcode_ = 0;

      targetUid_ = 0;

      iKCCNHPCMKL_ = 0;

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return io.grasscutter.net.proto.player.Player.internal_static_PlayerLoginRsp_descriptor;
    }

    @java.lang.Override
    public io.grasscutter.net.proto.player.PlayerLoginRsp getDefaultInstanceForType() {
      return io.grasscutter.net.proto.player.PlayerLoginRsp.getDefaultInstance();
    }

    @java.lang.Override
    public io.grasscutter.net.proto.player.PlayerLoginRsp build() {
      io.grasscutter.net.proto.player.PlayerLoginRsp result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public io.grasscutter.net.proto.player.PlayerLoginRsp buildPartial() {
      io.grasscutter.net.proto.player.PlayerLoginRsp result = new io.grasscutter.net.proto.player.PlayerLoginRsp(this);
      int from_bitField0_ = bitField0_;
      result.birthday_ = birthday_;
      if (cNONEIKAGEMBuilder_ == null) {
        result.cNONEIKAGEM_ = cNONEIKAGEM_;
      } else {
        result.cNONEIKAGEM_ = cNONEIKAGEMBuilder_.build();
      }
      result.clientSilenceMd5_ = clientSilenceMd5_;
      result.jFJKEDFAFPM_ = jFJKEDFAFPM_;
      if (resVersionConfigBuilder_ == null) {
        result.resVersionConfig_ = resVersionConfig_;
      } else {
        result.resVersionConfig_ = resVersionConfigBuilder_.build();
      }
      result.hOHOGGJOAOP_ = hOHOGGJOAOP_;
      result.fDEDHCEKMIP_ = fDEDHCEKMIP_;
      result.clientVersionSuffix_ = clientVersionSuffix_;
      result.clientSilenceVersionSuffix_ = clientSilenceVersionSuffix_;
      result.abilityHashMap_ = internalGetAbilityHashMap();
      result.abilityHashMap_.makeImmutable();
      result.blockInfoMap_ = internalGetBlockInfoMap();
      result.blockInfoMap_.makeImmutable();
      if (shortAbilityHashMapBuilder_ == null) {
        if (((bitField0_ & 0x00000004) != 0)) {
          shortAbilityHashMap_ = java.util.Collections.unmodifiableList(shortAbilityHashMap_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.shortAbilityHashMap_ = shortAbilityHashMap_;
      } else {
        result.shortAbilityHashMap_ = shortAbilityHashMapBuilder_.build();
      }
      if (featureBlockInfoListBuilder_ == null) {
        if (((bitField0_ & 0x00000008) != 0)) {
          featureBlockInfoList_ = java.util.Collections.unmodifiableList(featureBlockInfoList_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.featureBlockInfoList_ = featureBlockInfoList_;
      } else {
        result.featureBlockInfoList_ = featureBlockInfoListBuilder_.build();
      }
      result.clientMd5_ = clientMd5_;
      result.aPHAAHPDDJB_ = aPHAAHPDDJB_;
      if (nextResVersionConfigBuilder_ == null) {
        result.nextResVersionConfig_ = nextResVersionConfig_;
      } else {
        result.nextResVersionConfig_ = nextResVersionConfigBuilder_.build();
      }
      result.countryCode_ = countryCode_;
      result.nextResourceUrl_ = nextResourceUrl_;
      result.msg_ = msg_;
      result.gHEJILPPKAL_ = gHEJILPPKAL_;
      result.jJAFFHDCEFG_ = jJAFFHDCEFG_;
      result.pJLHHCIILFB_ = pJLHHCIILFB_;
      result.dFHNPLKJGMF_ = dFHNPLKJGMF_;
      result.nGIOMIKNNCL_ = nGIOMIKNNCL_;
      result.totalTickTime_ = totalTickTime_;
      result.isRelogin_ = isRelogin_;
      result.dHNKFDJHDBF_ = dHNKFDJHDBF_;
      result.pAKNLFOEBLB_ = pAKNLFOEBLB_;
      result.loginRand_ = loginRand_;
      result.oEENKBPDLCB_ = oEENKBPDLCB_;
      result.dJCHBDAPKOB_ = dJCHBDAPKOB_;
      result.mFLNKIPGBHH_ = mFLNKIPGBHH_;
      result.eDMOCOCJPHH_ = eDMOCOCJPHH_;
      result.abilityHashCode_ = abilityHashCode_;
      result.retcode_ = retcode_;
      result.targetUid_ = targetUid_;
      result.iKCCNHPCMKL_ = iKCCNHPCMKL_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }
    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.setField(field, value);
    }
    @java.lang.Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }
    @java.lang.Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }
    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }
    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }
    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof io.grasscutter.net.proto.player.PlayerLoginRsp) {
        return mergeFrom((io.grasscutter.net.proto.player.PlayerLoginRsp)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(io.grasscutter.net.proto.player.PlayerLoginRsp other) {
      if (other == io.grasscutter.net.proto.player.PlayerLoginRsp.getDefaultInstance()) return this;
      if (!other.getBirthday().isEmpty()) {
        birthday_ = other.birthday_;
        onChanged();
      }
      if (other.hasCNONEIKAGEM()) {
        mergeCNONEIKAGEM(other.getCNONEIKAGEM());
      }
      if (!other.getClientSilenceMd5().isEmpty()) {
        clientSilenceMd5_ = other.clientSilenceMd5_;
        onChanged();
      }
      if (other.getJFJKEDFAFPM() != com.google.protobuf.ByteString.EMPTY) {
        setJFJKEDFAFPM(other.getJFJKEDFAFPM());
      }
      if (other.hasResVersionConfig()) {
        mergeResVersionConfig(other.getResVersionConfig());
      }
      if (!other.getHOHOGGJOAOP().isEmpty()) {
        hOHOGGJOAOP_ = other.hOHOGGJOAOP_;
        onChanged();
      }
      if (other.getFDEDHCEKMIP() != com.google.protobuf.ByteString.EMPTY) {
        setFDEDHCEKMIP(other.getFDEDHCEKMIP());
      }
      if (!other.getClientVersionSuffix().isEmpty()) {
        clientVersionSuffix_ = other.clientVersionSuffix_;
        onChanged();
      }
      if (!other.getClientSilenceVersionSuffix().isEmpty()) {
        clientSilenceVersionSuffix_ = other.clientSilenceVersionSuffix_;
        onChanged();
      }
      internalGetMutableAbilityHashMap().mergeFrom(
          other.internalGetAbilityHashMap());
      internalGetMutableBlockInfoMap().mergeFrom(
          other.internalGetBlockInfoMap());
      if (shortAbilityHashMapBuilder_ == null) {
        if (!other.shortAbilityHashMap_.isEmpty()) {
          if (shortAbilityHashMap_.isEmpty()) {
            shortAbilityHashMap_ = other.shortAbilityHashMap_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureShortAbilityHashMapIsMutable();
            shortAbilityHashMap_.addAll(other.shortAbilityHashMap_);
          }
          onChanged();
        }
      } else {
        if (!other.shortAbilityHashMap_.isEmpty()) {
          if (shortAbilityHashMapBuilder_.isEmpty()) {
            shortAbilityHashMapBuilder_.dispose();
            shortAbilityHashMapBuilder_ = null;
            shortAbilityHashMap_ = other.shortAbilityHashMap_;
            bitField0_ = (bitField0_ & ~0x00000004);
            shortAbilityHashMapBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getShortAbilityHashMapFieldBuilder() : null;
          } else {
            shortAbilityHashMapBuilder_.addAllMessages(other.shortAbilityHashMap_);
          }
        }
      }
      if (featureBlockInfoListBuilder_ == null) {
        if (!other.featureBlockInfoList_.isEmpty()) {
          if (featureBlockInfoList_.isEmpty()) {
            featureBlockInfoList_ = other.featureBlockInfoList_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureFeatureBlockInfoListIsMutable();
            featureBlockInfoList_.addAll(other.featureBlockInfoList_);
          }
          onChanged();
        }
      } else {
        if (!other.featureBlockInfoList_.isEmpty()) {
          if (featureBlockInfoListBuilder_.isEmpty()) {
            featureBlockInfoListBuilder_.dispose();
            featureBlockInfoListBuilder_ = null;
            featureBlockInfoList_ = other.featureBlockInfoList_;
            bitField0_ = (bitField0_ & ~0x00000008);
            featureBlockInfoListBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getFeatureBlockInfoListFieldBuilder() : null;
          } else {
            featureBlockInfoListBuilder_.addAllMessages(other.featureBlockInfoList_);
          }
        }
      }
      if (!other.getClientMd5().isEmpty()) {
        clientMd5_ = other.clientMd5_;
        onChanged();
      }
      if (!other.getAPHAAHPDDJB().isEmpty()) {
        aPHAAHPDDJB_ = other.aPHAAHPDDJB_;
        onChanged();
      }
      if (other.hasNextResVersionConfig()) {
        mergeNextResVersionConfig(other.getNextResVersionConfig());
      }
      if (!other.getCountryCode().isEmpty()) {
        countryCode_ = other.countryCode_;
        onChanged();
      }
      if (!other.getNextResourceUrl().isEmpty()) {
        nextResourceUrl_ = other.nextResourceUrl_;
        onChanged();
      }
      if (!other.getMsg().isEmpty()) {
        msg_ = other.msg_;
        onChanged();
      }
      if (other.getGHEJILPPKAL() != 0) {
        setGHEJILPPKAL(other.getGHEJILPPKAL());
      }
      if (other.getJJAFFHDCEFG() != false) {
        setJJAFFHDCEFG(other.getJJAFFHDCEFG());
      }
      if (other.getPJLHHCIILFB() != false) {
        setPJLHHCIILFB(other.getPJLHHCIILFB());
      }
      if (other.getDFHNPLKJGMF() != false) {
        setDFHNPLKJGMF(other.getDFHNPLKJGMF());
      }
      if (other.getNGIOMIKNNCL() != false) {
        setNGIOMIKNNCL(other.getNGIOMIKNNCL());
      }
      if (other.getTotalTickTime() != 0D) {
        setTotalTickTime(other.getTotalTickTime());
      }
      if (other.getIsRelogin() != false) {
        setIsRelogin(other.getIsRelogin());
      }
      if (other.getDHNKFDJHDBF() != false) {
        setDHNKFDJHDBF(other.getDHNKFDJHDBF());
      }
      if (other.getPAKNLFOEBLB() != 0) {
        setPAKNLFOEBLB(other.getPAKNLFOEBLB());
      }
      if (other.getLoginRand() != 0L) {
        setLoginRand(other.getLoginRand());
      }
      if (other.getOEENKBPDLCB() != false) {
        setOEENKBPDLCB(other.getOEENKBPDLCB());
      }
      if (other.getDJCHBDAPKOB() != false) {
        setDJCHBDAPKOB(other.getDJCHBDAPKOB());
      }
      if (other.getMFLNKIPGBHH() != false) {
        setMFLNKIPGBHH(other.getMFLNKIPGBHH());
      }
      if (other.getEDMOCOCJPHH() != 0) {
        setEDMOCOCJPHH(other.getEDMOCOCJPHH());
      }
      if (other.getAbilityHashCode() != 0) {
        setAbilityHashCode(other.getAbilityHashCode());
      }
      if (other.getRetcode() != 0) {
        setRetcode(other.getRetcode());
      }
      if (other.getTargetUid() != 0) {
        setTargetUid(other.getTargetUid());
      }
      if (other.getIKCCNHPCMKL() != 0) {
        setIKCCNHPCMKL(other.getIKCCNHPCMKL());
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

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

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

    private java.lang.Object birthday_ = "";
    /**
     * <code>string birthday = 1447;</code>
     * @return The birthday.
     */
    public java.lang.String getBirthday() {
      java.lang.Object ref = birthday_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        birthday_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string birthday = 1447;</code>
     * @return The bytes for birthday.
     */
    public com.google.protobuf.ByteString
        getBirthdayBytes() {
      java.lang.Object ref = birthday_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        birthday_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string birthday = 1447;</code>
     * @param value The birthday to set.
     * @return This builder for chaining.
     */
    public Builder setBirthday(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      birthday_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string birthday = 1447;</code>
     * @return This builder for chaining.
     */
    public Builder clearBirthday() {
      
      birthday_ = getDefaultInstance().getBirthday();
      onChanged();
      return this;
    }
    /**
     * <code>string birthday = 1447;</code>
     * @param value The bytes for birthday to set.
     * @return This builder for chaining.
     */
    public Builder setBirthdayBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      birthday_ = value;
      onChanged();
      return this;
    }

    private io.grasscutter.net.proto.define.StopServerInfo cNONEIKAGEM_;
    private com.google.protobuf.SingleFieldBuilderV3<
        io.grasscutter.net.proto.define.StopServerInfo, io.grasscutter.net.proto.define.StopServerInfo.Builder, io.grasscutter.net.proto.define.StopServerInfoOrBuilder> cNONEIKAGEMBuilder_;
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     * @return Whether the cNONEIKAGEM field is set.
     */
    public boolean hasCNONEIKAGEM() {
      return cNONEIKAGEMBuilder_ != null || cNONEIKAGEM_ != null;
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     * @return The cNONEIKAGEM.
     */
    public io.grasscutter.net.proto.define.StopServerInfo getCNONEIKAGEM() {
      if (cNONEIKAGEMBuilder_ == null) {
        return cNONEIKAGEM_ == null ? io.grasscutter.net.proto.define.StopServerInfo.getDefaultInstance() : cNONEIKAGEM_;
      } else {
        return cNONEIKAGEMBuilder_.getMessage();
      }
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    public Builder setCNONEIKAGEM(io.grasscutter.net.proto.define.StopServerInfo value) {
      if (cNONEIKAGEMBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        cNONEIKAGEM_ = value;
        onChanged();
      } else {
        cNONEIKAGEMBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    public Builder setCNONEIKAGEM(
        io.grasscutter.net.proto.define.StopServerInfo.Builder builderForValue) {
      if (cNONEIKAGEMBuilder_ == null) {
        cNONEIKAGEM_ = builderForValue.build();
        onChanged();
      } else {
        cNONEIKAGEMBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    public Builder mergeCNONEIKAGEM(io.grasscutter.net.proto.define.StopServerInfo value) {
      if (cNONEIKAGEMBuilder_ == null) {
        if (cNONEIKAGEM_ != null) {
          cNONEIKAGEM_ =
            io.grasscutter.net.proto.define.StopServerInfo.newBuilder(cNONEIKAGEM_).mergeFrom(value).buildPartial();
        } else {
          cNONEIKAGEM_ = value;
        }
        onChanged();
      } else {
        cNONEIKAGEMBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    public Builder clearCNONEIKAGEM() {
      if (cNONEIKAGEMBuilder_ == null) {
        cNONEIKAGEM_ = null;
        onChanged();
      } else {
        cNONEIKAGEM_ = null;
        cNONEIKAGEMBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    public io.grasscutter.net.proto.define.StopServerInfo.Builder getCNONEIKAGEMBuilder() {
      
      onChanged();
      return getCNONEIKAGEMFieldBuilder().getBuilder();
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    public io.grasscutter.net.proto.define.StopServerInfoOrBuilder getCNONEIKAGEMOrBuilder() {
      if (cNONEIKAGEMBuilder_ != null) {
        return cNONEIKAGEMBuilder_.getMessageOrBuilder();
      } else {
        return cNONEIKAGEM_ == null ?
            io.grasscutter.net.proto.define.StopServerInfo.getDefaultInstance() : cNONEIKAGEM_;
      }
    }
    /**
     * <code>.StopServerInfo CNONEIKAGEM = 1407;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        io.grasscutter.net.proto.define.StopServerInfo, io.grasscutter.net.proto.define.StopServerInfo.Builder, io.grasscutter.net.proto.define.StopServerInfoOrBuilder> 
        getCNONEIKAGEMFieldBuilder() {
      if (cNONEIKAGEMBuilder_ == null) {
        cNONEIKAGEMBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            io.grasscutter.net.proto.define.StopServerInfo, io.grasscutter.net.proto.define.StopServerInfo.Builder, io.grasscutter.net.proto.define.StopServerInfoOrBuilder>(
                getCNONEIKAGEM(),
                getParentForChildren(),
                isClean());
        cNONEIKAGEM_ = null;
      }
      return cNONEIKAGEMBuilder_;
    }

    private java.lang.Object clientSilenceMd5_ = "";
    /**
     * <code>string client_silence_md5 = 1977;</code>
     * @return The clientSilenceMd5.
     */
    public java.lang.String getClientSilenceMd5() {
      java.lang.Object ref = clientSilenceMd5_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        clientSilenceMd5_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string client_silence_md5 = 1977;</code>
     * @return The bytes for clientSilenceMd5.
     */
    public com.google.protobuf.ByteString
        getClientSilenceMd5Bytes() {
      java.lang.Object ref = clientSilenceMd5_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSilenceMd5_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string client_silence_md5 = 1977;</code>
     * @param value The clientSilenceMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setClientSilenceMd5(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      clientSilenceMd5_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string client_silence_md5 = 1977;</code>
     * @return This builder for chaining.
     */
    public Builder clearClientSilenceMd5() {
      
      clientSilenceMd5_ = getDefaultInstance().getClientSilenceMd5();
      onChanged();
      return this;
    }
    /**
     * <code>string client_silence_md5 = 1977;</code>
     * @param value The bytes for clientSilenceMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setClientSilenceMd5Bytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      clientSilenceMd5_ = value;
      onChanged();
      return this;
    }

    private com.google.protobuf.ByteString jFJKEDFAFPM_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>bytes JFJKEDFAFPM = 8;</code>
     * @return The jFJKEDFAFPM.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getJFJKEDFAFPM() {
      return jFJKEDFAFPM_;
    }
    /**
     * <code>bytes JFJKEDFAFPM = 8;</code>
     * @param value The jFJKEDFAFPM to set.
     * @return This builder for chaining.
     */
    public Builder setJFJKEDFAFPM(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      jFJKEDFAFPM_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bytes JFJKEDFAFPM = 8;</code>
     * @return This builder for chaining.
     */
    public Builder clearJFJKEDFAFPM() {
      
      jFJKEDFAFPM_ = getDefaultInstance().getJFJKEDFAFPM();
      onChanged();
      return this;
    }

    private io.grasscutter.net.proto.define.ResVersionConfig resVersionConfig_;
    private com.google.protobuf.SingleFieldBuilderV3<
        io.grasscutter.net.proto.define.ResVersionConfig, io.grasscutter.net.proto.define.ResVersionConfig.Builder, io.grasscutter.net.proto.define.ResVersionConfigOrBuilder> resVersionConfigBuilder_;
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     * @return Whether the resVersionConfig field is set.
     */
    public boolean hasResVersionConfig() {
      return resVersionConfigBuilder_ != null || resVersionConfig_ != null;
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     * @return The resVersionConfig.
     */
    public io.grasscutter.net.proto.define.ResVersionConfig getResVersionConfig() {
      if (resVersionConfigBuilder_ == null) {
        return resVersionConfig_ == null ? io.grasscutter.net.proto.define.ResVersionConfig.getDefaultInstance() : resVersionConfig_;
      } else {
        return resVersionConfigBuilder_.getMessage();
      }
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    public Builder setResVersionConfig(io.grasscutter.net.proto.define.ResVersionConfig value) {
      if (resVersionConfigBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        resVersionConfig_ = value;
        onChanged();
      } else {
        resVersionConfigBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    public Builder setResVersionConfig(
        io.grasscutter.net.proto.define.ResVersionConfig.Builder builderForValue) {
      if (resVersionConfigBuilder_ == null) {
        resVersionConfig_ = builderForValue.build();
        onChanged();
      } else {
        resVersionConfigBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    public Builder mergeResVersionConfig(io.grasscutter.net.proto.define.ResVersionConfig value) {
      if (resVersionConfigBuilder_ == null) {
        if (resVersionConfig_ != null) {
          resVersionConfig_ =
            io.grasscutter.net.proto.define.ResVersionConfig.newBuilder(resVersionConfig_).mergeFrom(value).buildPartial();
        } else {
          resVersionConfig_ = value;
        }
        onChanged();
      } else {
        resVersionConfigBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    public Builder clearResVersionConfig() {
      if (resVersionConfigBuilder_ == null) {
        resVersionConfig_ = null;
        onChanged();
      } else {
        resVersionConfig_ = null;
        resVersionConfigBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    public io.grasscutter.net.proto.define.ResVersionConfig.Builder getResVersionConfigBuilder() {
      
      onChanged();
      return getResVersionConfigFieldBuilder().getBuilder();
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    public io.grasscutter.net.proto.define.ResVersionConfigOrBuilder getResVersionConfigOrBuilder() {
      if (resVersionConfigBuilder_ != null) {
        return resVersionConfigBuilder_.getMessageOrBuilder();
      } else {
        return resVersionConfig_ == null ?
            io.grasscutter.net.proto.define.ResVersionConfig.getDefaultInstance() : resVersionConfig_;
      }
    }
    /**
     * <code>.ResVersionConfig res_version_config = 1074;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        io.grasscutter.net.proto.define.ResVersionConfig, io.grasscutter.net.proto.define.ResVersionConfig.Builder, io.grasscutter.net.proto.define.ResVersionConfigOrBuilder> 
        getResVersionConfigFieldBuilder() {
      if (resVersionConfigBuilder_ == null) {
        resVersionConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            io.grasscutter.net.proto.define.ResVersionConfig, io.grasscutter.net.proto.define.ResVersionConfig.Builder, io.grasscutter.net.proto.define.ResVersionConfigOrBuilder>(
                getResVersionConfig(),
                getParentForChildren(),
                isClean());
        resVersionConfig_ = null;
      }
      return resVersionConfigBuilder_;
    }

    private java.lang.Object hOHOGGJOAOP_ = "";
    /**
     * <code>string HOHOGGJOAOP = 1538;</code>
     * @return The hOHOGGJOAOP.
     */
    public java.lang.String getHOHOGGJOAOP() {
      java.lang.Object ref = hOHOGGJOAOP_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        hOHOGGJOAOP_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string HOHOGGJOAOP = 1538;</code>
     * @return The bytes for hOHOGGJOAOP.
     */
    public com.google.protobuf.ByteString
        getHOHOGGJOAOPBytes() {
      java.lang.Object ref = hOHOGGJOAOP_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hOHOGGJOAOP_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string HOHOGGJOAOP = 1538;</code>
     * @param value The hOHOGGJOAOP to set.
     * @return This builder for chaining.
     */
    public Builder setHOHOGGJOAOP(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      hOHOGGJOAOP_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string HOHOGGJOAOP = 1538;</code>
     * @return This builder for chaining.
     */
    public Builder clearHOHOGGJOAOP() {
      
      hOHOGGJOAOP_ = getDefaultInstance().getHOHOGGJOAOP();
      onChanged();
      return this;
    }
    /**
     * <code>string HOHOGGJOAOP = 1538;</code>
     * @param value The bytes for hOHOGGJOAOP to set.
     * @return This builder for chaining.
     */
    public Builder setHOHOGGJOAOPBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      hOHOGGJOAOP_ = value;
      onChanged();
      return this;
    }

    private com.google.protobuf.ByteString fDEDHCEKMIP_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>bytes FDEDHCEKMIP = 1061;</code>
     * @return The fDEDHCEKMIP.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getFDEDHCEKMIP() {
      return fDEDHCEKMIP_;
    }
    /**
     * <code>bytes FDEDHCEKMIP = 1061;</code>
     * @param value The fDEDHCEKMIP to set.
     * @return This builder for chaining.
     */
    public Builder setFDEDHCEKMIP(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      fDEDHCEKMIP_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bytes FDEDHCEKMIP = 1061;</code>
     * @return This builder for chaining.
     */
    public Builder clearFDEDHCEKMIP() {
      
      fDEDHCEKMIP_ = getDefaultInstance().getFDEDHCEKMIP();
      onChanged();
      return this;
    }

    private java.lang.Object clientVersionSuffix_ = "";
    /**
     * <code>string client_version_suffix = 1756;</code>
     * @return The clientVersionSuffix.
     */
    public java.lang.String getClientVersionSuffix() {
      java.lang.Object ref = clientVersionSuffix_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        clientVersionSuffix_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string client_version_suffix = 1756;</code>
     * @return The bytes for clientVersionSuffix.
     */
    public com.google.protobuf.ByteString
        getClientVersionSuffixBytes() {
      java.lang.Object ref = clientVersionSuffix_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientVersionSuffix_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string client_version_suffix = 1756;</code>
     * @param value The clientVersionSuffix to set.
     * @return This builder for chaining.
     */
    public Builder setClientVersionSuffix(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      clientVersionSuffix_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string client_version_suffix = 1756;</code>
     * @return This builder for chaining.
     */
    public Builder clearClientVersionSuffix() {
      
      clientVersionSuffix_ = getDefaultInstance().getClientVersionSuffix();
      onChanged();
      return this;
    }
    /**
     * <code>string client_version_suffix = 1756;</code>
     * @param value The bytes for clientVersionSuffix to set.
     * @return This builder for chaining.
     */
    public Builder setClientVersionSuffixBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      clientVersionSuffix_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object clientSilenceVersionSuffix_ = "";
    /**
     * <code>string client_silence_version_suffix = 552;</code>
     * @return The clientSilenceVersionSuffix.
     */
    public java.lang.String getClientSilenceVersionSuffix() {
      java.lang.Object ref = clientSilenceVersionSuffix_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        clientSilenceVersionSuffix_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string client_silence_version_suffix = 552;</code>
     * @return The bytes for clientSilenceVersionSuffix.
     */
    public com.google.protobuf.ByteString
        getClientSilenceVersionSuffixBytes() {
      java.lang.Object ref = clientSilenceVersionSuffix_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSilenceVersionSuffix_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string client_silence_version_suffix = 552;</code>
     * @param value The clientSilenceVersionSuffix to set.
     * @return This builder for chaining.
     */
    public Builder setClientSilenceVersionSuffix(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      clientSilenceVersionSuffix_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string client_silence_version_suffix = 552;</code>
     * @return This builder for chaining.
     */
    public Builder clearClientSilenceVersionSuffix() {
      
      clientSilenceVersionSuffix_ = getDefaultInstance().getClientSilenceVersionSuffix();
      onChanged();
      return this;
    }
    /**
     * <code>string client_silence_version_suffix = 552;</code>
     * @param value The bytes for clientSilenceVersionSuffix to set.
     * @return This builder for chaining.
     */
    public Builder setClientSilenceVersionSuffixBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      clientSilenceVersionSuffix_ = value;
      onChanged();
      return this;
    }

    private com.google.protobuf.MapField<
        java.lang.String, java.lang.Integer> abilityHashMap_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.Integer>
    internalGetAbilityHashMap() {
      if (abilityHashMap_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AbilityHashMapDefaultEntryHolder.defaultEntry);
      }
      return abilityHashMap_;
    }
    private com.google.protobuf.MapField<java.lang.String, java.lang.Integer>
    internalGetMutableAbilityHashMap() {
      onChanged();;
      if (abilityHashMap_ == null) {
        abilityHashMap_ = com.google.protobuf.MapField.newMapField(
            AbilityHashMapDefaultEntryHolder.defaultEntry);
      }
      if (!abilityHashMap_.isMutable()) {
        abilityHashMap_ = abilityHashMap_.copy();
      }
      return abilityHashMap_;
    }

    public int getAbilityHashMapCount() {
      return internalGetAbilityHashMap().getMap().size();
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */

    @java.lang.Override
    public boolean containsAbilityHashMap(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      return internalGetAbilityHashMap().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAbilityHashMapMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.Integer> getAbilityHashMap() {
      return getAbilityHashMapMap();
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.Integer> getAbilityHashMapMap() {
      return internalGetAbilityHashMap().getMap();
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */
    @java.lang.Override

    public int getAbilityHashMapOrDefault(
        java.lang.String key,
        int defaultValue) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.Integer> map =
          internalGetAbilityHashMap().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */
    @java.lang.Override

    public int getAbilityHashMapOrThrow(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      java.util.Map<java.lang.String, java.lang.Integer> map =
          internalGetAbilityHashMap().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public Builder clearAbilityHashMap() {
      internalGetMutableAbilityHashMap().getMutableMap()
          .clear();
      return this;
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */

    public Builder removeAbilityHashMap(
        java.lang.String key) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      internalGetMutableAbilityHashMap().getMutableMap()
          .remove(key);
      return this;
    }
    /**
     * Use alternate mutation accessors instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.Integer>
    getMutableAbilityHashMap() {
      return internalGetMutableAbilityHashMap().getMutableMap();
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */
    public Builder putAbilityHashMap(
        java.lang.String key,
        int value) {
      if (key == null) { throw new java.lang.NullPointerException(); }
      
      internalGetMutableAbilityHashMap().getMutableMap()
          .put(key, value);
      return this;
    }
    /**
     * <code>map&lt;string, int32&gt; ability_hash_map = 1;</code>
     */

    public Builder putAllAbilityHashMap(
        java.util.Map<java.lang.String, java.lang.Integer> values) {
      internalGetMutableAbilityHashMap().getMutableMap()
          .putAll(values);
      return this;
    }

    private com.google.protobuf.MapField<
        java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> blockInfoMap_;
    private com.google.protobuf.MapField<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>
    internalGetBlockInfoMap() {
      if (blockInfoMap_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            BlockInfoMapDefaultEntryHolder.defaultEntry);
      }
      return blockInfoMap_;
    }
    private com.google.protobuf.MapField<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>
    internalGetMutableBlockInfoMap() {
      onChanged();;
      if (blockInfoMap_ == null) {
        blockInfoMap_ = com.google.protobuf.MapField.newMapField(
            BlockInfoMapDefaultEntryHolder.defaultEntry);
      }
      if (!blockInfoMap_.isMutable()) {
        blockInfoMap_ = blockInfoMap_.copy();
      }
      return blockInfoMap_;
    }

    public int getBlockInfoMapCount() {
      return internalGetBlockInfoMap().getMap().size();
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */

    @java.lang.Override
    public boolean containsBlockInfoMap(
        int key) {
      
      return internalGetBlockInfoMap().getMap().containsKey(key);
    }
    /**
     * Use {@link #getBlockInfoMapMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> getBlockInfoMap() {
      return getBlockInfoMapMap();
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> getBlockInfoMapMap() {
      return internalGetBlockInfoMap().getMap();
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */
    @java.lang.Override

    public io.grasscutter.net.proto.define.BlockInfo getBlockInfoMapOrDefault(
        int key,
        io.grasscutter.net.proto.define.BlockInfo defaultValue) {
      
      java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> map =
          internalGetBlockInfoMap().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */
    @java.lang.Override

    public io.grasscutter.net.proto.define.BlockInfo getBlockInfoMapOrThrow(
        int key) {
      
      java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> map =
          internalGetBlockInfoMap().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public Builder clearBlockInfoMap() {
      internalGetMutableBlockInfoMap().getMutableMap()
          .clear();
      return this;
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */

    public Builder removeBlockInfoMap(
        int key) {
      
      internalGetMutableBlockInfoMap().getMutableMap()
          .remove(key);
      return this;
    }
    /**
     * Use alternate mutation accessors instead.
     */
    @java.lang.Deprecated
    public java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo>
    getMutableBlockInfoMap() {
      return internalGetMutableBlockInfoMap().getMutableMap();
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */
    public Builder putBlockInfoMap(
        int key,
        io.grasscutter.net.proto.define.BlockInfo value) {
      
      if (value == null) { throw new java.lang.NullPointerException(); }
      internalGetMutableBlockInfoMap().getMutableMap()
          .put(key, value);
      return this;
    }
    /**
     * <code>map&lt;uint32, .BlockInfo&gt; block_info_map = 133;</code>
     */

    public Builder putAllBlockInfoMap(
        java.util.Map<java.lang.Integer, io.grasscutter.net.proto.define.BlockInfo> values) {
      internalGetMutableBlockInfoMap().getMutableMap()
          .putAll(values);
      return this;
    }

    private java.util.List<io.grasscutter.net.proto.player.ShortAbilityHashPair> shortAbilityHashMap_ =
      java.util.Collections.emptyList();
    private void ensureShortAbilityHashMapIsMutable() {
      if (!((bitField0_ & 0x00000004) != 0)) {
        shortAbilityHashMap_ = new java.util.ArrayList<io.grasscutter.net.proto.player.ShortAbilityHashPair>(shortAbilityHashMap_);
        bitField0_ |= 0x00000004;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        io.grasscutter.net.proto.player.ShortAbilityHashPair, io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder, io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder> shortAbilityHashMapBuilder_;

    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public java.util.List<io.grasscutter.net.proto.player.ShortAbilityHashPair> getShortAbilityHashMapList() {
      if (shortAbilityHashMapBuilder_ == null) {
        return java.util.Collections.unmodifiableList(shortAbilityHashMap_);
      } else {
        return shortAbilityHashMapBuilder_.getMessageList();
      }
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public int getShortAbilityHashMapCount() {
      if (shortAbilityHashMapBuilder_ == null) {
        return shortAbilityHashMap_.size();
      } else {
        return shortAbilityHashMapBuilder_.getCount();
      }
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public io.grasscutter.net.proto.player.ShortAbilityHashPair getShortAbilityHashMap(int index) {
      if (shortAbilityHashMapBuilder_ == null) {
        return shortAbilityHashMap_.get(index);
      } else {
        return shortAbilityHashMapBuilder_.getMessage(index);
      }
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder setShortAbilityHashMap(
        int index, io.grasscutter.net.proto.player.ShortAbilityHashPair value) {
      if (shortAbilityHashMapBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.set(index, value);
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder setShortAbilityHashMap(
        int index, io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder builderForValue) {
      if (shortAbilityHashMapBuilder_ == null) {
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.set(index, builderForValue.build());
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder addShortAbilityHashMap(io.grasscutter.net.proto.player.ShortAbilityHashPair value) {
      if (shortAbilityHashMapBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.add(value);
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder addShortAbilityHashMap(
        int index, io.grasscutter.net.proto.player.ShortAbilityHashPair value) {
      if (shortAbilityHashMapBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.add(index, value);
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder addShortAbilityHashMap(
        io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder builderForValue) {
      if (shortAbilityHashMapBuilder_ == null) {
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.add(builderForValue.build());
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder addShortAbilityHashMap(
        int index, io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder builderForValue) {
      if (shortAbilityHashMapBuilder_ == null) {
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.add(index, builderForValue.build());
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder addAllShortAbilityHashMap(
        java.lang.Iterable<? extends io.grasscutter.net.proto.player.ShortAbilityHashPair> values) {
      if (shortAbilityHashMapBuilder_ == null) {
        ensureShortAbilityHashMapIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, shortAbilityHashMap_);
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder clearShortAbilityHashMap() {
      if (shortAbilityHashMapBuilder_ == null) {
        shortAbilityHashMap_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.clear();
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public Builder removeShortAbilityHashMap(int index) {
      if (shortAbilityHashMapBuilder_ == null) {
        ensureShortAbilityHashMapIsMutable();
        shortAbilityHashMap_.remove(index);
        onChanged();
      } else {
        shortAbilityHashMapBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder getShortAbilityHashMapBuilder(
        int index) {
      return getShortAbilityHashMapFieldBuilder().getBuilder(index);
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder getShortAbilityHashMapOrBuilder(
        int index) {
      if (shortAbilityHashMapBuilder_ == null) {
        return shortAbilityHashMap_.get(index);  } else {
        return shortAbilityHashMapBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public java.util.List<? extends io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder> 
         getShortAbilityHashMapOrBuilderList() {
      if (shortAbilityHashMapBuilder_ != null) {
        return shortAbilityHashMapBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(shortAbilityHashMap_);
      }
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder addShortAbilityHashMapBuilder() {
      return getShortAbilityHashMapFieldBuilder().addBuilder(
          io.grasscutter.net.proto.player.ShortAbilityHashPair.getDefaultInstance());
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder addShortAbilityHashMapBuilder(
        int index) {
      return getShortAbilityHashMapFieldBuilder().addBuilder(
          index, io.grasscutter.net.proto.player.ShortAbilityHashPair.getDefaultInstance());
    }
    /**
     * <code>repeated .ShortAbilityHashPair short_ability_hash_map = 1259;</code>
     */
    public java.util.List<io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder> 
         getShortAbilityHashMapBuilderList() {
      return getShortAbilityHashMapFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        io.grasscutter.net.proto.player.ShortAbilityHashPair, io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder, io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder> 
        getShortAbilityHashMapFieldBuilder() {
      if (shortAbilityHashMapBuilder_ == null) {
        shortAbilityHashMapBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            io.grasscutter.net.proto.player.ShortAbilityHashPair, io.grasscutter.net.proto.player.ShortAbilityHashPair.Builder, io.grasscutter.net.proto.player.ShortAbilityHashPairOrBuilder>(
                shortAbilityHashMap_,
                ((bitField0_ & 0x00000004) != 0),
                getParentForChildren(),
                isClean());
        shortAbilityHashMap_ = null;
      }
      return shortAbilityHashMapBuilder_;
    }

    private java.util.List<io.grasscutter.net.proto.define.FeatureBlockInfo> featureBlockInfoList_ =
      java.util.Collections.emptyList();
    private void ensureFeatureBlockInfoListIsMutable() {
      if (!((bitField0_ & 0x00000008) != 0)) {
        featureBlockInfoList_ = new java.util.ArrayList<io.grasscutter.net.proto.define.FeatureBlockInfo>(featureBlockInfoList_);
        bitField0_ |= 0x00000008;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        io.grasscutter.net.proto.define.FeatureBlockInfo, io.grasscutter.net.proto.define.FeatureBlockInfo.Builder, io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder> featureBlockInfoListBuilder_;

    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public java.util.List<io.grasscutter.net.proto.define.FeatureBlockInfo> getFeatureBlockInfoListList() {
      if (featureBlockInfoListBuilder_ == null) {
        return java.util.Collections.unmodifiableList(featureBlockInfoList_);
      } else {
        return featureBlockInfoListBuilder_.getMessageList();
      }
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public int getFeatureBlockInfoListCount() {
      if (featureBlockInfoListBuilder_ == null) {
        return featureBlockInfoList_.size();
      } else {
        return featureBlockInfoListBuilder_.getCount();
      }
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public io.grasscutter.net.proto.define.FeatureBlockInfo getFeatureBlockInfoList(int index) {
      if (featureBlockInfoListBuilder_ == null) {
        return featureBlockInfoList_.get(index);
      } else {
        return featureBlockInfoListBuilder_.getMessage(index);
      }
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder setFeatureBlockInfoList(
        int index, io.grasscutter.net.proto.define.FeatureBlockInfo value) {
      if (featureBlockInfoListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.set(index, value);
        onChanged();
      } else {
        featureBlockInfoListBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder setFeatureBlockInfoList(
        int index, io.grasscutter.net.proto.define.FeatureBlockInfo.Builder builderForValue) {
      if (featureBlockInfoListBuilder_ == null) {
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.set(index, builderForValue.build());
        onChanged();
      } else {
        featureBlockInfoListBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder addFeatureBlockInfoList(io.grasscutter.net.proto.define.FeatureBlockInfo value) {
      if (featureBlockInfoListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.add(value);
        onChanged();
      } else {
        featureBlockInfoListBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder addFeatureBlockInfoList(
        int index, io.grasscutter.net.proto.define.FeatureBlockInfo value) {
      if (featureBlockInfoListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.add(index, value);
        onChanged();
      } else {
        featureBlockInfoListBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder addFeatureBlockInfoList(
        io.grasscutter.net.proto.define.FeatureBlockInfo.Builder builderForValue) {
      if (featureBlockInfoListBuilder_ == null) {
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.add(builderForValue.build());
        onChanged();
      } else {
        featureBlockInfoListBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder addFeatureBlockInfoList(
        int index, io.grasscutter.net.proto.define.FeatureBlockInfo.Builder builderForValue) {
      if (featureBlockInfoListBuilder_ == null) {
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.add(index, builderForValue.build());
        onChanged();
      } else {
        featureBlockInfoListBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder addAllFeatureBlockInfoList(
        java.lang.Iterable<? extends io.grasscutter.net.proto.define.FeatureBlockInfo> values) {
      if (featureBlockInfoListBuilder_ == null) {
        ensureFeatureBlockInfoListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, featureBlockInfoList_);
        onChanged();
      } else {
        featureBlockInfoListBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder clearFeatureBlockInfoList() {
      if (featureBlockInfoListBuilder_ == null) {
        featureBlockInfoList_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
      } else {
        featureBlockInfoListBuilder_.clear();
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public Builder removeFeatureBlockInfoList(int index) {
      if (featureBlockInfoListBuilder_ == null) {
        ensureFeatureBlockInfoListIsMutable();
        featureBlockInfoList_.remove(index);
        onChanged();
      } else {
        featureBlockInfoListBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public io.grasscutter.net.proto.define.FeatureBlockInfo.Builder getFeatureBlockInfoListBuilder(
        int index) {
      return getFeatureBlockInfoListFieldBuilder().getBuilder(index);
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder getFeatureBlockInfoListOrBuilder(
        int index) {
      if (featureBlockInfoListBuilder_ == null) {
        return featureBlockInfoList_.get(index);  } else {
        return featureBlockInfoListBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public java.util.List<? extends io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder> 
         getFeatureBlockInfoListOrBuilderList() {
      if (featureBlockInfoListBuilder_ != null) {
        return featureBlockInfoListBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(featureBlockInfoList_);
      }
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public io.grasscutter.net.proto.define.FeatureBlockInfo.Builder addFeatureBlockInfoListBuilder() {
      return getFeatureBlockInfoListFieldBuilder().addBuilder(
          io.grasscutter.net.proto.define.FeatureBlockInfo.getDefaultInstance());
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public io.grasscutter.net.proto.define.FeatureBlockInfo.Builder addFeatureBlockInfoListBuilder(
        int index) {
      return getFeatureBlockInfoListFieldBuilder().addBuilder(
          index, io.grasscutter.net.proto.define.FeatureBlockInfo.getDefaultInstance());
    }
    /**
     * <code>repeated .FeatureBlockInfo feature_block_info_list = 383;</code>
     */
    public java.util.List<io.grasscutter.net.proto.define.FeatureBlockInfo.Builder> 
         getFeatureBlockInfoListBuilderList() {
      return getFeatureBlockInfoListFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        io.grasscutter.net.proto.define.FeatureBlockInfo, io.grasscutter.net.proto.define.FeatureBlockInfo.Builder, io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder> 
        getFeatureBlockInfoListFieldBuilder() {
      if (featureBlockInfoListBuilder_ == null) {
        featureBlockInfoListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            io.grasscutter.net.proto.define.FeatureBlockInfo, io.grasscutter.net.proto.define.FeatureBlockInfo.Builder, io.grasscutter.net.proto.define.FeatureBlockInfoOrBuilder>(
                featureBlockInfoList_,
                ((bitField0_ & 0x00000008) != 0),
                getParentForChildren(),
                isClean());
        featureBlockInfoList_ = null;
      }
      return featureBlockInfoListBuilder_;
    }

    private java.lang.Object clientMd5_ = "";
    /**
     * <code>string client_md5 = 1182;</code>
     * @return The clientMd5.
     */
    public java.lang.String getClientMd5() {
      java.lang.Object ref = clientMd5_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        clientMd5_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string client_md5 = 1182;</code>
     * @return The bytes for clientMd5.
     */
    public com.google.protobuf.ByteString
        getClientMd5Bytes() {
      java.lang.Object ref = clientMd5_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientMd5_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string client_md5 = 1182;</code>
     * @param value The clientMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setClientMd5(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      clientMd5_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string client_md5 = 1182;</code>
     * @return This builder for chaining.
     */
    public Builder clearClientMd5() {
      
      clientMd5_ = getDefaultInstance().getClientMd5();
      onChanged();
      return this;
    }
    /**
     * <code>string client_md5 = 1182;</code>
     * @param value The bytes for clientMd5 to set.
     * @return This builder for chaining.
     */
    public Builder setClientMd5Bytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      clientMd5_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object aPHAAHPDDJB_ = "";
    /**
     * <code>string APHAAHPDDJB = 11;</code>
     * @return The aPHAAHPDDJB.
     */
    public java.lang.String getAPHAAHPDDJB() {
      java.lang.Object ref = aPHAAHPDDJB_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        aPHAAHPDDJB_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string APHAAHPDDJB = 11;</code>
     * @return The bytes for aPHAAHPDDJB.
     */
    public com.google.protobuf.ByteString
        getAPHAAHPDDJBBytes() {
      java.lang.Object ref = aPHAAHPDDJB_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        aPHAAHPDDJB_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string APHAAHPDDJB = 11;</code>
     * @param value The aPHAAHPDDJB to set.
     * @return This builder for chaining.
     */
    public Builder setAPHAAHPDDJB(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      aPHAAHPDDJB_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string APHAAHPDDJB = 11;</code>
     * @return This builder for chaining.
     */
    public Builder clearAPHAAHPDDJB() {
      
      aPHAAHPDDJB_ = getDefaultInstance().getAPHAAHPDDJB();
      onChanged();
      return this;
    }
    /**
     * <code>string APHAAHPDDJB = 11;</code>
     * @param value The bytes for aPHAAHPDDJB to set.
     * @return This builder for chaining.
     */
    public Builder setAPHAAHPDDJBBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      aPHAAHPDDJB_ = value;
      onChanged();
      return this;
    }

    private io.grasscutter.net.proto.define.ResVersionConfig nextResVersionConfig_;
    private com.google.protobuf.SingleFieldBuilderV3<
        io.grasscutter.net.proto.define.ResVersionConfig, io.grasscutter.net.proto.define.ResVersionConfig.Builder, io.grasscutter.net.proto.define.ResVersionConfigOrBuilder> nextResVersionConfigBuilder_;
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     * @return Whether the nextResVersionConfig field is set.
     */
    public boolean hasNextResVersionConfig() {
      return nextResVersionConfigBuilder_ != null || nextResVersionConfig_ != null;
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     * @return The nextResVersionConfig.
     */
    public io.grasscutter.net.proto.define.ResVersionConfig getNextResVersionConfig() {
      if (nextResVersionConfigBuilder_ == null) {
        return nextResVersionConfig_ == null ? io.grasscutter.net.proto.define.ResVersionConfig.getDefaultInstance() : nextResVersionConfig_;
      } else {
        return nextResVersionConfigBuilder_.getMessage();
      }
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    public Builder setNextResVersionConfig(io.grasscutter.net.proto.define.ResVersionConfig value) {
      if (nextResVersionConfigBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        nextResVersionConfig_ = value;
        onChanged();
      } else {
        nextResVersionConfigBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    public Builder setNextResVersionConfig(
        io.grasscutter.net.proto.define.ResVersionConfig.Builder builderForValue) {
      if (nextResVersionConfigBuilder_ == null) {
        nextResVersionConfig_ = builderForValue.build();
        onChanged();
      } else {
        nextResVersionConfigBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    public Builder mergeNextResVersionConfig(io.grasscutter.net.proto.define.ResVersionConfig value) {
      if (nextResVersionConfigBuilder_ == null) {
        if (nextResVersionConfig_ != null) {
          nextResVersionConfig_ =
            io.grasscutter.net.proto.define.ResVersionConfig.newBuilder(nextResVersionConfig_).mergeFrom(value).buildPartial();
        } else {
          nextResVersionConfig_ = value;
        }
        onChanged();
      } else {
        nextResVersionConfigBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    public Builder clearNextResVersionConfig() {
      if (nextResVersionConfigBuilder_ == null) {
        nextResVersionConfig_ = null;
        onChanged();
      } else {
        nextResVersionConfig_ = null;
        nextResVersionConfigBuilder_ = null;
      }

      return this;
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    public io.grasscutter.net.proto.define.ResVersionConfig.Builder getNextResVersionConfigBuilder() {
      
      onChanged();
      return getNextResVersionConfigFieldBuilder().getBuilder();
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    public io.grasscutter.net.proto.define.ResVersionConfigOrBuilder getNextResVersionConfigOrBuilder() {
      if (nextResVersionConfigBuilder_ != null) {
        return nextResVersionConfigBuilder_.getMessageOrBuilder();
      } else {
        return nextResVersionConfig_ == null ?
            io.grasscutter.net.proto.define.ResVersionConfig.getDefaultInstance() : nextResVersionConfig_;
      }
    }
    /**
     * <code>.ResVersionConfig next_res_version_config = 426;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        io.grasscutter.net.proto.define.ResVersionConfig, io.grasscutter.net.proto.define.ResVersionConfig.Builder, io.grasscutter.net.proto.define.ResVersionConfigOrBuilder> 
        getNextResVersionConfigFieldBuilder() {
      if (nextResVersionConfigBuilder_ == null) {
        nextResVersionConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            io.grasscutter.net.proto.define.ResVersionConfig, io.grasscutter.net.proto.define.ResVersionConfig.Builder, io.grasscutter.net.proto.define.ResVersionConfigOrBuilder>(
                getNextResVersionConfig(),
                getParentForChildren(),
                isClean());
        nextResVersionConfig_ = null;
      }
      return nextResVersionConfigBuilder_;
    }

    private java.lang.Object countryCode_ = "";
    /**
     * <code>string country_code = 1815;</code>
     * @return The countryCode.
     */
    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();
        countryCode_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string country_code = 1815;</code>
     * @return The bytes for countryCode.
     */
    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>string country_code = 1815;</code>
     * @param value The countryCode to set.
     * @return This builder for chaining.
     */
    public Builder setCountryCode(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      countryCode_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string country_code = 1815;</code>
     * @return This builder for chaining.
     */
    public Builder clearCountryCode() {
      
      countryCode_ = getDefaultInstance().getCountryCode();
      onChanged();
      return this;
    }
    /**
     * <code>string country_code = 1815;</code>
     * @param value The bytes for countryCode to set.
     * @return This builder for chaining.
     */
    public Builder setCountryCodeBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      countryCode_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object nextResourceUrl_ = "";
    /**
     * <code>string next_resource_url = 1916;</code>
     * @return The nextResourceUrl.
     */
    public java.lang.String getNextResourceUrl() {
      java.lang.Object ref = nextResourceUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nextResourceUrl_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string next_resource_url = 1916;</code>
     * @return The bytes for nextResourceUrl.
     */
    public com.google.protobuf.ByteString
        getNextResourceUrlBytes() {
      java.lang.Object ref = nextResourceUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nextResourceUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string next_resource_url = 1916;</code>
     * @param value The nextResourceUrl to set.
     * @return This builder for chaining.
     */
    public Builder setNextResourceUrl(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      nextResourceUrl_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string next_resource_url = 1916;</code>
     * @return This builder for chaining.
     */
    public Builder clearNextResourceUrl() {
      
      nextResourceUrl_ = getDefaultInstance().getNextResourceUrl();
      onChanged();
      return this;
    }
    /**
     * <code>string next_resource_url = 1916;</code>
     * @param value The bytes for nextResourceUrl to set.
     * @return This builder for chaining.
     */
    public Builder setNextResourceUrlBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      nextResourceUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object msg_ = "";
    /**
     * <code>string msg = 219;</code>
     * @return The msg.
     */
    public java.lang.String getMsg() {
      java.lang.Object ref = msg_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        msg_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string msg = 219;</code>
     * @return The bytes for msg.
     */
    public com.google.protobuf.ByteString
        getMsgBytes() {
      java.lang.Object ref = msg_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        msg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string msg = 219;</code>
     * @param value The msg to set.
     * @return This builder for chaining.
     */
    public Builder setMsg(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      msg_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string msg = 219;</code>
     * @return This builder for chaining.
     */
    public Builder clearMsg() {
      
      msg_ = getDefaultInstance().getMsg();
      onChanged();
      return this;
    }
    /**
     * <code>string msg = 219;</code>
     * @param value The bytes for msg to set.
     * @return This builder for chaining.
     */
    public Builder setMsgBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      msg_ = value;
      onChanged();
      return this;
    }

    private int gHEJILPPKAL_ ;
    /**
     * <code>uint32 GHEJILPPKAL = 1263;</code>
     * @return The gHEJILPPKAL.
     */
    @java.lang.Override
    public int getGHEJILPPKAL() {
      return gHEJILPPKAL_;
    }
    /**
     * <code>uint32 GHEJILPPKAL = 1263;</code>
     * @param value The gHEJILPPKAL to set.
     * @return This builder for chaining.
     */
    public Builder setGHEJILPPKAL(int value) {
      
      gHEJILPPKAL_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 GHEJILPPKAL = 1263;</code>
     * @return This builder for chaining.
     */
    public Builder clearGHEJILPPKAL() {
      
      gHEJILPPKAL_ = 0;
      onChanged();
      return this;
    }

    private boolean jJAFFHDCEFG_ ;
    /**
     * <code>bool JJAFFHDCEFG = 774;</code>
     * @return The jJAFFHDCEFG.
     */
    @java.lang.Override
    public boolean getJJAFFHDCEFG() {
      return jJAFFHDCEFG_;
    }
    /**
     * <code>bool JJAFFHDCEFG = 774;</code>
     * @param value The jJAFFHDCEFG to set.
     * @return This builder for chaining.
     */
    public Builder setJJAFFHDCEFG(boolean value) {
      
      jJAFFHDCEFG_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool JJAFFHDCEFG = 774;</code>
     * @return This builder for chaining.
     */
    public Builder clearJJAFFHDCEFG() {
      
      jJAFFHDCEFG_ = false;
      onChanged();
      return this;
    }

    private boolean pJLHHCIILFB_ ;
    /**
     * <code>bool PJLHHCIILFB = 1930;</code>
     * @return The pJLHHCIILFB.
     */
    @java.lang.Override
    public boolean getPJLHHCIILFB() {
      return pJLHHCIILFB_;
    }
    /**
     * <code>bool PJLHHCIILFB = 1930;</code>
     * @param value The pJLHHCIILFB to set.
     * @return This builder for chaining.
     */
    public Builder setPJLHHCIILFB(boolean value) {
      
      pJLHHCIILFB_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool PJLHHCIILFB = 1930;</code>
     * @return This builder for chaining.
     */
    public Builder clearPJLHHCIILFB() {
      
      pJLHHCIILFB_ = false;
      onChanged();
      return this;
    }

    private boolean dFHNPLKJGMF_ ;
    /**
     * <code>bool DFHNPLKJGMF = 269;</code>
     * @return The dFHNPLKJGMF.
     */
    @java.lang.Override
    public boolean getDFHNPLKJGMF() {
      return dFHNPLKJGMF_;
    }
    /**
     * <code>bool DFHNPLKJGMF = 269;</code>
     * @param value The dFHNPLKJGMF to set.
     * @return This builder for chaining.
     */
    public Builder setDFHNPLKJGMF(boolean value) {
      
      dFHNPLKJGMF_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool DFHNPLKJGMF = 269;</code>
     * @return This builder for chaining.
     */
    public Builder clearDFHNPLKJGMF() {
      
      dFHNPLKJGMF_ = false;
      onChanged();
      return this;
    }

    private boolean nGIOMIKNNCL_ ;
    /**
     * <code>bool NGIOMIKNNCL = 1996;</code>
     * @return The nGIOMIKNNCL.
     */
    @java.lang.Override
    public boolean getNGIOMIKNNCL() {
      return nGIOMIKNNCL_;
    }
    /**
     * <code>bool NGIOMIKNNCL = 1996;</code>
     * @param value The nGIOMIKNNCL to set.
     * @return This builder for chaining.
     */
    public Builder setNGIOMIKNNCL(boolean value) {
      
      nGIOMIKNNCL_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool NGIOMIKNNCL = 1996;</code>
     * @return This builder for chaining.
     */
    public Builder clearNGIOMIKNNCL() {
      
      nGIOMIKNNCL_ = false;
      onChanged();
      return this;
    }

    private double totalTickTime_ ;
    /**
     * <code>double total_tick_time = 1818;</code>
     * @return The totalTickTime.
     */
    @java.lang.Override
    public double getTotalTickTime() {
      return totalTickTime_;
    }
    /**
     * <code>double total_tick_time = 1818;</code>
     * @param value The totalTickTime to set.
     * @return This builder for chaining.
     */
    public Builder setTotalTickTime(double value) {
      
      totalTickTime_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>double total_tick_time = 1818;</code>
     * @return This builder for chaining.
     */
    public Builder clearTotalTickTime() {
      
      totalTickTime_ = 0D;
      onChanged();
      return this;
    }

    private boolean isRelogin_ ;
    /**
     * <code>bool is_relogin = 9;</code>
     * @return The isRelogin.
     */
    @java.lang.Override
    public boolean getIsRelogin() {
      return isRelogin_;
    }
    /**
     * <code>bool is_relogin = 9;</code>
     * @param value The isRelogin to set.
     * @return This builder for chaining.
     */
    public Builder setIsRelogin(boolean value) {
      
      isRelogin_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool is_relogin = 9;</code>
     * @return This builder for chaining.
     */
    public Builder clearIsRelogin() {
      
      isRelogin_ = false;
      onChanged();
      return this;
    }

    private boolean dHNKFDJHDBF_ ;
    /**
     * <code>bool DHNKFDJHDBF = 13;</code>
     * @return The dHNKFDJHDBF.
     */
    @java.lang.Override
    public boolean getDHNKFDJHDBF() {
      return dHNKFDJHDBF_;
    }
    /**
     * <code>bool DHNKFDJHDBF = 13;</code>
     * @param value The dHNKFDJHDBF to set.
     * @return This builder for chaining.
     */
    public Builder setDHNKFDJHDBF(boolean value) {
      
      dHNKFDJHDBF_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool DHNKFDJHDBF = 13;</code>
     * @return This builder for chaining.
     */
    public Builder clearDHNKFDJHDBF() {
      
      dHNKFDJHDBF_ = false;
      onChanged();
      return this;
    }

    private int pAKNLFOEBLB_ ;
    /**
     * <code>uint32 PAKNLFOEBLB = 3;</code>
     * @return The pAKNLFOEBLB.
     */
    @java.lang.Override
    public int getPAKNLFOEBLB() {
      return pAKNLFOEBLB_;
    }
    /**
     * <code>uint32 PAKNLFOEBLB = 3;</code>
     * @param value The pAKNLFOEBLB to set.
     * @return This builder for chaining.
     */
    public Builder setPAKNLFOEBLB(int value) {
      
      pAKNLFOEBLB_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 PAKNLFOEBLB = 3;</code>
     * @return This builder for chaining.
     */
    public Builder clearPAKNLFOEBLB() {
      
      pAKNLFOEBLB_ = 0;
      onChanged();
      return this;
    }

    private long loginRand_ ;
    /**
     * <code>uint64 login_rand = 14;</code>
     * @return The loginRand.
     */
    @java.lang.Override
    public long getLoginRand() {
      return loginRand_;
    }
    /**
     * <code>uint64 login_rand = 14;</code>
     * @param value The loginRand to set.
     * @return This builder for chaining.
     */
    public Builder setLoginRand(long value) {
      
      loginRand_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 login_rand = 14;</code>
     * @return This builder for chaining.
     */
    public Builder clearLoginRand() {
      
      loginRand_ = 0L;
      onChanged();
      return this;
    }

    private boolean oEENKBPDLCB_ ;
    /**
     * <code>bool OEENKBPDLCB = 207;</code>
     * @return The oEENKBPDLCB.
     */
    @java.lang.Override
    public boolean getOEENKBPDLCB() {
      return oEENKBPDLCB_;
    }
    /**
     * <code>bool OEENKBPDLCB = 207;</code>
     * @param value The oEENKBPDLCB to set.
     * @return This builder for chaining.
     */
    public Builder setOEENKBPDLCB(boolean value) {
      
      oEENKBPDLCB_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool OEENKBPDLCB = 207;</code>
     * @return This builder for chaining.
     */
    public Builder clearOEENKBPDLCB() {
      
      oEENKBPDLCB_ = false;
      onChanged();
      return this;
    }

    private boolean dJCHBDAPKOB_ ;
    /**
     * <code>bool DJCHBDAPKOB = 2;</code>
     * @return The dJCHBDAPKOB.
     */
    @java.lang.Override
    public boolean getDJCHBDAPKOB() {
      return dJCHBDAPKOB_;
    }
    /**
     * <code>bool DJCHBDAPKOB = 2;</code>
     * @param value The dJCHBDAPKOB to set.
     * @return This builder for chaining.
     */
    public Builder setDJCHBDAPKOB(boolean value) {
      
      dJCHBDAPKOB_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool DJCHBDAPKOB = 2;</code>
     * @return This builder for chaining.
     */
    public Builder clearDJCHBDAPKOB() {
      
      dJCHBDAPKOB_ = false;
      onChanged();
      return this;
    }

    private boolean mFLNKIPGBHH_ ;
    /**
     * <code>bool MFLNKIPGBHH = 1424;</code>
     * @return The mFLNKIPGBHH.
     */
    @java.lang.Override
    public boolean getMFLNKIPGBHH() {
      return mFLNKIPGBHH_;
    }
    /**
     * <code>bool MFLNKIPGBHH = 1424;</code>
     * @param value The mFLNKIPGBHH to set.
     * @return This builder for chaining.
     */
    public Builder setMFLNKIPGBHH(boolean value) {
      
      mFLNKIPGBHH_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>bool MFLNKIPGBHH = 1424;</code>
     * @return This builder for chaining.
     */
    public Builder clearMFLNKIPGBHH() {
      
      mFLNKIPGBHH_ = false;
      onChanged();
      return this;
    }

    private int eDMOCOCJPHH_ ;
    /**
     * <code>uint32 EDMOCOCJPHH = 15;</code>
     * @return The eDMOCOCJPHH.
     */
    @java.lang.Override
    public int getEDMOCOCJPHH() {
      return eDMOCOCJPHH_;
    }
    /**
     * <code>uint32 EDMOCOCJPHH = 15;</code>
     * @param value The eDMOCOCJPHH to set.
     * @return This builder for chaining.
     */
    public Builder setEDMOCOCJPHH(int value) {
      
      eDMOCOCJPHH_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 EDMOCOCJPHH = 15;</code>
     * @return This builder for chaining.
     */
    public Builder clearEDMOCOCJPHH() {
      
      eDMOCOCJPHH_ = 0;
      onChanged();
      return this;
    }

    private int abilityHashCode_ ;
    /**
     * <code>int32 ability_hash_code = 10;</code>
     * @return The abilityHashCode.
     */
    @java.lang.Override
    public int getAbilityHashCode() {
      return abilityHashCode_;
    }
    /**
     * <code>int32 ability_hash_code = 10;</code>
     * @param value The abilityHashCode to set.
     * @return This builder for chaining.
     */
    public Builder setAbilityHashCode(int value) {
      
      abilityHashCode_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>int32 ability_hash_code = 10;</code>
     * @return This builder for chaining.
     */
    public Builder clearAbilityHashCode() {
      
      abilityHashCode_ = 0;
      onChanged();
      return this;
    }

    private int retcode_ ;
    /**
     * <code>int32 retcode = 7;</code>
     * @return The retcode.
     */
    @java.lang.Override
    public int getRetcode() {
      return retcode_;
    }
    /**
     * <code>int32 retcode = 7;</code>
     * @param value The retcode to set.
     * @return This builder for chaining.
     */
    public Builder setRetcode(int value) {
      
      retcode_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>int32 retcode = 7;</code>
     * @return This builder for chaining.
     */
    public Builder clearRetcode() {
      
      retcode_ = 0;
      onChanged();
      return this;
    }

    private int targetUid_ ;
    /**
     * <code>uint32 target_uid = 6;</code>
     * @return The targetUid.
     */
    @java.lang.Override
    public int getTargetUid() {
      return targetUid_;
    }
    /**
     * <code>uint32 target_uid = 6;</code>
     * @param value The targetUid to set.
     * @return This builder for chaining.
     */
    public Builder setTargetUid(int value) {
      
      targetUid_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 target_uid = 6;</code>
     * @return This builder for chaining.
     */
    public Builder clearTargetUid() {
      
      targetUid_ = 0;
      onChanged();
      return this;
    }

    private int iKCCNHPCMKL_ ;
    /**
     * <code>uint32 IKCCNHPCMKL = 4;</code>
     * @return The iKCCNHPCMKL.
     */
    @java.lang.Override
    public int getIKCCNHPCMKL() {
      return iKCCNHPCMKL_;
    }
    /**
     * <code>uint32 IKCCNHPCMKL = 4;</code>
     * @param value The iKCCNHPCMKL to set.
     * @return This builder for chaining.
     */
    public Builder setIKCCNHPCMKL(int value) {
      
      iKCCNHPCMKL_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 IKCCNHPCMKL = 4;</code>
     * @return This builder for chaining.
     */
    public Builder clearIKCCNHPCMKL() {
      
      iKCCNHPCMKL_ = 0;
      onChanged();
      return this;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

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


    // @@protoc_insertion_point(builder_scope:PlayerLoginRsp)
  }

  // @@protoc_insertion_point(class_scope:PlayerLoginRsp)
  private static final io.grasscutter.net.proto.player.PlayerLoginRsp DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new io.grasscutter.net.proto.player.PlayerLoginRsp();
  }

  public static io.grasscutter.net.proto.player.PlayerLoginRsp getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

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

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

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

  @java.lang.Override
  public io.grasscutter.net.proto.player.PlayerLoginRsp getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

