// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: server.proto package server import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type SSPacketID int32 const ( SSPacketID_PACKET_SERVER_ZERO SSPacketID = 0 // 弃用消息号 SSPacketID_PACKET_GB_CUR_LOAD SSPacketID = 1000 SSPacketID_PACKET_GB_STATE_SWITCH SSPacketID = 1001 SSPacketID_PACKET_SC_GATEINFO SSPacketID = 1002 SSPacketID_PACKET_SS_DICONNECT SSPacketID = 1004 SSPacketID_PACKET_MS_SRVCTRL SSPacketID = 1005 // 服务控制命令 SSPacketID_PACKET_WG_SERVER_STATE SSPacketID = 1012 SSPacketID_PACKET_SG_BINDGROUPTAG SSPacketID = 1013 // 玩家加入群组 SSPacketID_PACKET_SS_CUSTOMTAG_MULTICAST SSPacketID = 1014 // 给群组发消息,群组中的所有玩家都能收到 //服务器组间的业务消息 SSPacketID_PACKET_WG_CREATESCENE SSPacketID = 1101 SSPacketID_PACKET_WG_DESTROYSCENE SSPacketID = 1102 SSPacketID_PACKET_WG_PLAYERENTER SSPacketID = 1103 SSPacketID_PACKET_GW_PLAYERLEAVE SSPacketID = 1104 SSPacketID_PACKET_GW_BILLEDROOMCARD SSPacketID = 1105 SSPacketID_PACKET_GW_DESTROYSCENE SSPacketID = 1106 SSPacketID_PACKET_WG_PLAYERDROPLINE SSPacketID = 1107 SSPacketID_PACKET_WG_PLAYERREHOLD SSPacketID = 1108 SSPacketID_PACKET_GG_PLAYERSESSIONBIND SSPacketID = 1109 // gate绑定gamesrv SSPacketID_PACKET_GG_PLAYERSESSIONUNBIND SSPacketID = 1110 // gate解绑gamesrv SSPacketID_PACKET_WG_PLAYERRETURN SSPacketID = 1111 SSPacketID_PACKET_GR_REPLAYRECORD SSPacketID = 1112 SSPacketID_PACKET_GW_GAMEREC SSPacketID = 1113 SSPacketID_PACKET_WG_AUDIENCEENTER SSPacketID = 1114 SSPacketID_PACKET_GW_AUDIENCELEAVE SSPacketID = 1115 SSPacketID_PACKET_GW_SCENESTART SSPacketID = 1116 SSPacketID_PACKET_WR_INVITEROBOT SSPacketID = 1117 SSPacketID_PACKET_WG_AGENTKICKOUTPLAYER SSPacketID = 1118 SSPacketID_PACKET_WD_DATANALYSIS SSPacketID = 1119 //PACKET_GW_PLAYERMATCHBILLED = 1120; SSPacketID_PACKET_GW_CLUBBILLMONEY SSPacketID = 1121 SSPacketID_PACKET_WG_REBIND_SNID SSPacketID = 1122 SSPacketID_PACKET_WG_AUDIENCESIT SSPacketID = 1123 SSPacketID_PACKET_WG_RECHARGE SSPacketID = 1124 SSPacketID_PACKET_GW_SCENESTATE SSPacketID = 1125 SSPacketID_PACKET_WG_GRACE_DESTROYSCENE SSPacketID = 1126 // 废弃 SSPacketID_PACKET_GW_SCENEEND SSPacketID = 1127 SSPacketID_PACKET_GW_FISHRECORD SSPacketID = 1128 SSPacketID_PACKET_GW_PLAYERFORCELEAVE SSPacketID = 1129 SSPacketID_PACKET_GW_PLAYERWINSOCORE SSPacketID = 1130 SSPacketID_PACKET_GW_PLAYERDATA SSPacketID = 1131 // 玩家统计数据同步 SSPacketID_PACKET_DW_ThirdRebateMessage SSPacketID = 1132 SSPacketID_PACKET_WD_ACKThirdRebateMessage SSPacketID = 1133 SSPacketID_PACKET_DW_ThirdRoundMessage SSPacketID = 1134 SSPacketID_PACKET_WR_INVITECREATEROOM SSPacketID = 1135 SSPacketID_PACKET_WR_LoginRec SSPacketID = 1136 SSPacketID_PACKET_WR_GameDetail SSPacketID = 1137 SSPacketID_PACKET_WR_PlayerData SSPacketID = 1138 // 同步玩家数据 SSPacketID_PACKET_WG_PlayerLEAVE SSPacketID = 1139 SSPacketID_PACKET_WG_WBCtrlCfg SSPacketID = 1140 SSPacketID_PACKET_GN_PLAYERCARDS SSPacketID = 1500 SSPacketID_PACKET_GW_REBUILDSCENE SSPacketID = 1501 SSPacketID_PACKET_GW_PLAYERSTATE SSPacketID = 1502 SSPacketID_PACKET_GW_NEWNOTICE SSPacketID = 1503 SSPacketID_PACKET_GW_PLAYERSTATIC SSPacketID = 1504 SSPacketID_PACKET_WG_COINPOOLSETTING SSPacketID = 1505 SSPacketID_PACKET_WG_SETPLAYERBLACKLEVEL SSPacketID = 1506 SSPacketID_PACKET_GW_AUTORELIEVEWBLEVEL SSPacketID = 1507 SSPacketID_PACKET_GN_PLAYERPARAM SSPacketID = 1508 SSPacketID_PACKET_GW_SCENEPLAYERLOG SSPacketID = 1509 SSPacketID_PACKET_GW_SYNCPLAYERCOIN SSPacketID = 1510 SSPacketID_PACKET_WG_PlayerOnGameCount SSPacketID = 1514 SSPacketID_PACKET_GR_GameFreeData SSPacketID = 1515 SSPacketID_PACKET_WG_SyncPlayerSafeBoxCoin SSPacketID = 1516 SSPacketID_PACKET_WG_RESETCOINPOOL SSPacketID = 1517 SSPacketID_PACKET_WG_CLUB_MESSAGE SSPacketID = 1518 SSPacketID_PACKET_GW_GAMESTATELOG SSPacketID = 1519 SSPacketID_PACKET_GW_GAMESTATE SSPacketID = 1520 SSPacketID_PACKET_GW_JACKPOTLIST SSPacketID = 1521 SSPacketID_PACKET_GW_JACKPOTCOIN SSPacketID = 1522 //同步奖池 SSPacketID_PACKET_GW_NICEIDREBIND SSPacketID = 1523 SSPacketID_PACKET_GW_PLAYERWINCOIN SSPacketID = 1524 SSPacketID_PACKET_GW_PLAYERAUTOMARKTAG SSPacketID = 1525 SSPacketID_PACKET_WG_INVITEROBENTERCOINSCENEQUEUE SSPacketID = 1526 SSPacketID_PACKET_WG_GAMEFORCESTART SSPacketID = 1527 SSPacketID_PACKET_WG_PROFITCONTROL_CORRECT SSPacketID = 1528 SSPacketID_PACKET_GW_CHANGESCENEEVENT SSPacketID = 1529 SSPacketID_PACKET_WT_PLAYERPAY SSPacketID = 1530 SSPacketID_PACKET_GW_PLAYERMATCHBILLED SSPacketID = 1531 SSPacketID_PACKET_GW_PLAYERMATCHGRADE SSPacketID = 1532 SSPacketID_PACKET_WG_PLAYERQUITMATCH SSPacketID = 1533 SSPacketID_PACKET_WG_SCENEMATCHBASECHANGE SSPacketID = 1534 SSPacketID_PACKET_SS_REDIRECTTOPLAYER SSPacketID = 1535 SSPacketID_PACKET_WG_INVITEMATCHROB SSPacketID = 1536 //PACKET_WG_GAMEPOOLSWITCH= 1537; // 水池开关 SSPacketID_PACKET_WG_GAMEJACKPOT SSPacketID = 1539 //WorldSrv通知GameSrv转发奖池信息 // PACKET_GW_GAMENEWBIGWINHISTORY = 1540; SSPacketID_PACKET_WG_PLAYERENTER_MINIGAME SSPacketID = 1541 SSPacketID_PACKET_WG_PLAYERLEAVE_MINIGAME SSPacketID = 1542 SSPacketID_PACKET_GW_PLAYERLEAVE_MINIGAME SSPacketID = 1543 SSPacketID_PACKET_GW_DESTROYMINISCENE SSPacketID = 1544 SSPacketID_PACKET_GR_DESTROYSCENE SSPacketID = 1545 SSPacketID_PACKET_WG_DTROOMINFO SSPacketID = 1546 SSPacketID_PACKET_GW_DTROOMINFO SSPacketID = 1547 SSPacketID_PACKET_WG_DTROOMRESULTS SSPacketID = 1548 SSPacketID_PACKET_GW_DTROOMRESULTS SSPacketID = 1549 SSPacketID_PACKET_WG_SINGLEADJUST SSPacketID = 1550 SSPacketID_PACKET_GW_ADDSINGLEADJUST SSPacketID = 1551 SSPacketID_PACKET_WG_BUYRECTIMEITEM SSPacketID = 1552 SSPacketID_PACKET_WG_UpdateSkin SSPacketID = 1553 // 修改皮肤id SSPacketID_PACKET_PlayerChangeItems SSPacketID = 1554 // 修改玩家道具数量 ) // Enum value maps for SSPacketID. var ( SSPacketID_name = map[int32]string{ 0: "PACKET_SERVER_ZERO", 1000: "PACKET_GB_CUR_LOAD", 1001: "PACKET_GB_STATE_SWITCH", 1002: "PACKET_SC_GATEINFO", 1004: "PACKET_SS_DICONNECT", 1005: "PACKET_MS_SRVCTRL", 1012: "PACKET_WG_SERVER_STATE", 1013: "PACKET_SG_BINDGROUPTAG", 1014: "PACKET_SS_CUSTOMTAG_MULTICAST", 1101: "PACKET_WG_CREATESCENE", 1102: "PACKET_WG_DESTROYSCENE", 1103: "PACKET_WG_PLAYERENTER", 1104: "PACKET_GW_PLAYERLEAVE", 1105: "PACKET_GW_BILLEDROOMCARD", 1106: "PACKET_GW_DESTROYSCENE", 1107: "PACKET_WG_PLAYERDROPLINE", 1108: "PACKET_WG_PLAYERREHOLD", 1109: "PACKET_GG_PLAYERSESSIONBIND", 1110: "PACKET_GG_PLAYERSESSIONUNBIND", 1111: "PACKET_WG_PLAYERRETURN", 1112: "PACKET_GR_REPLAYRECORD", 1113: "PACKET_GW_GAMEREC", 1114: "PACKET_WG_AUDIENCEENTER", 1115: "PACKET_GW_AUDIENCELEAVE", 1116: "PACKET_GW_SCENESTART", 1117: "PACKET_WR_INVITEROBOT", 1118: "PACKET_WG_AGENTKICKOUTPLAYER", 1119: "PACKET_WD_DATANALYSIS", 1121: "PACKET_GW_CLUBBILLMONEY", 1122: "PACKET_WG_REBIND_SNID", 1123: "PACKET_WG_AUDIENCESIT", 1124: "PACKET_WG_RECHARGE", 1125: "PACKET_GW_SCENESTATE", 1126: "PACKET_WG_GRACE_DESTROYSCENE", 1127: "PACKET_GW_SCENEEND", 1128: "PACKET_GW_FISHRECORD", 1129: "PACKET_GW_PLAYERFORCELEAVE", 1130: "PACKET_GW_PLAYERWINSOCORE", 1131: "PACKET_GW_PLAYERDATA", 1132: "PACKET_DW_ThirdRebateMessage", 1133: "PACKET_WD_ACKThirdRebateMessage", 1134: "PACKET_DW_ThirdRoundMessage", 1135: "PACKET_WR_INVITECREATEROOM", 1136: "PACKET_WR_LoginRec", 1137: "PACKET_WR_GameDetail", 1138: "PACKET_WR_PlayerData", 1139: "PACKET_WG_PlayerLEAVE", 1140: "PACKET_WG_WBCtrlCfg", 1500: "PACKET_GN_PLAYERCARDS", 1501: "PACKET_GW_REBUILDSCENE", 1502: "PACKET_GW_PLAYERSTATE", 1503: "PACKET_GW_NEWNOTICE", 1504: "PACKET_GW_PLAYERSTATIC", 1505: "PACKET_WG_COINPOOLSETTING", 1506: "PACKET_WG_SETPLAYERBLACKLEVEL", 1507: "PACKET_GW_AUTORELIEVEWBLEVEL", 1508: "PACKET_GN_PLAYERPARAM", 1509: "PACKET_GW_SCENEPLAYERLOG", 1510: "PACKET_GW_SYNCPLAYERCOIN", 1514: "PACKET_WG_PlayerOnGameCount", 1515: "PACKET_GR_GameFreeData", 1516: "PACKET_WG_SyncPlayerSafeBoxCoin", 1517: "PACKET_WG_RESETCOINPOOL", 1518: "PACKET_WG_CLUB_MESSAGE", 1519: "PACKET_GW_GAMESTATELOG", 1520: "PACKET_GW_GAMESTATE", 1521: "PACKET_GW_JACKPOTLIST", 1522: "PACKET_GW_JACKPOTCOIN", 1523: "PACKET_GW_NICEIDREBIND", 1524: "PACKET_GW_PLAYERWINCOIN", 1525: "PACKET_GW_PLAYERAUTOMARKTAG", 1526: "PACKET_WG_INVITEROBENTERCOINSCENEQUEUE", 1527: "PACKET_WG_GAMEFORCESTART", 1528: "PACKET_WG_PROFITCONTROL_CORRECT", 1529: "PACKET_GW_CHANGESCENEEVENT", 1530: "PACKET_WT_PLAYERPAY", 1531: "PACKET_GW_PLAYERMATCHBILLED", 1532: "PACKET_GW_PLAYERMATCHGRADE", 1533: "PACKET_WG_PLAYERQUITMATCH", 1534: "PACKET_WG_SCENEMATCHBASECHANGE", 1535: "PACKET_SS_REDIRECTTOPLAYER", 1536: "PACKET_WG_INVITEMATCHROB", 1539: "PACKET_WG_GAMEJACKPOT", 1541: "PACKET_WG_PLAYERENTER_MINIGAME", 1542: "PACKET_WG_PLAYERLEAVE_MINIGAME", 1543: "PACKET_GW_PLAYERLEAVE_MINIGAME", 1544: "PACKET_GW_DESTROYMINISCENE", 1545: "PACKET_GR_DESTROYSCENE", 1546: "PACKET_WG_DTROOMINFO", 1547: "PACKET_GW_DTROOMINFO", 1548: "PACKET_WG_DTROOMRESULTS", 1549: "PACKET_GW_DTROOMRESULTS", 1550: "PACKET_WG_SINGLEADJUST", 1551: "PACKET_GW_ADDSINGLEADJUST", 1552: "PACKET_WG_BUYRECTIMEITEM", 1553: "PACKET_WG_UpdateSkin", 1554: "PACKET_PlayerChangeItems", } SSPacketID_value = map[string]int32{ "PACKET_SERVER_ZERO": 0, "PACKET_GB_CUR_LOAD": 1000, "PACKET_GB_STATE_SWITCH": 1001, "PACKET_SC_GATEINFO": 1002, "PACKET_SS_DICONNECT": 1004, "PACKET_MS_SRVCTRL": 1005, "PACKET_WG_SERVER_STATE": 1012, "PACKET_SG_BINDGROUPTAG": 1013, "PACKET_SS_CUSTOMTAG_MULTICAST": 1014, "PACKET_WG_CREATESCENE": 1101, "PACKET_WG_DESTROYSCENE": 1102, "PACKET_WG_PLAYERENTER": 1103, "PACKET_GW_PLAYERLEAVE": 1104, "PACKET_GW_BILLEDROOMCARD": 1105, "PACKET_GW_DESTROYSCENE": 1106, "PACKET_WG_PLAYERDROPLINE": 1107, "PACKET_WG_PLAYERREHOLD": 1108, "PACKET_GG_PLAYERSESSIONBIND": 1109, "PACKET_GG_PLAYERSESSIONUNBIND": 1110, "PACKET_WG_PLAYERRETURN": 1111, "PACKET_GR_REPLAYRECORD": 1112, "PACKET_GW_GAMEREC": 1113, "PACKET_WG_AUDIENCEENTER": 1114, "PACKET_GW_AUDIENCELEAVE": 1115, "PACKET_GW_SCENESTART": 1116, "PACKET_WR_INVITEROBOT": 1117, "PACKET_WG_AGENTKICKOUTPLAYER": 1118, "PACKET_WD_DATANALYSIS": 1119, "PACKET_GW_CLUBBILLMONEY": 1121, "PACKET_WG_REBIND_SNID": 1122, "PACKET_WG_AUDIENCESIT": 1123, "PACKET_WG_RECHARGE": 1124, "PACKET_GW_SCENESTATE": 1125, "PACKET_WG_GRACE_DESTROYSCENE": 1126, "PACKET_GW_SCENEEND": 1127, "PACKET_GW_FISHRECORD": 1128, "PACKET_GW_PLAYERFORCELEAVE": 1129, "PACKET_GW_PLAYERWINSOCORE": 1130, "PACKET_GW_PLAYERDATA": 1131, "PACKET_DW_ThirdRebateMessage": 1132, "PACKET_WD_ACKThirdRebateMessage": 1133, "PACKET_DW_ThirdRoundMessage": 1134, "PACKET_WR_INVITECREATEROOM": 1135, "PACKET_WR_LoginRec": 1136, "PACKET_WR_GameDetail": 1137, "PACKET_WR_PlayerData": 1138, "PACKET_WG_PlayerLEAVE": 1139, "PACKET_WG_WBCtrlCfg": 1140, "PACKET_GN_PLAYERCARDS": 1500, "PACKET_GW_REBUILDSCENE": 1501, "PACKET_GW_PLAYERSTATE": 1502, "PACKET_GW_NEWNOTICE": 1503, "PACKET_GW_PLAYERSTATIC": 1504, "PACKET_WG_COINPOOLSETTING": 1505, "PACKET_WG_SETPLAYERBLACKLEVEL": 1506, "PACKET_GW_AUTORELIEVEWBLEVEL": 1507, "PACKET_GN_PLAYERPARAM": 1508, "PACKET_GW_SCENEPLAYERLOG": 1509, "PACKET_GW_SYNCPLAYERCOIN": 1510, "PACKET_WG_PlayerOnGameCount": 1514, "PACKET_GR_GameFreeData": 1515, "PACKET_WG_SyncPlayerSafeBoxCoin": 1516, "PACKET_WG_RESETCOINPOOL": 1517, "PACKET_WG_CLUB_MESSAGE": 1518, "PACKET_GW_GAMESTATELOG": 1519, "PACKET_GW_GAMESTATE": 1520, "PACKET_GW_JACKPOTLIST": 1521, "PACKET_GW_JACKPOTCOIN": 1522, "PACKET_GW_NICEIDREBIND": 1523, "PACKET_GW_PLAYERWINCOIN": 1524, "PACKET_GW_PLAYERAUTOMARKTAG": 1525, "PACKET_WG_INVITEROBENTERCOINSCENEQUEUE": 1526, "PACKET_WG_GAMEFORCESTART": 1527, "PACKET_WG_PROFITCONTROL_CORRECT": 1528, "PACKET_GW_CHANGESCENEEVENT": 1529, "PACKET_WT_PLAYERPAY": 1530, "PACKET_GW_PLAYERMATCHBILLED": 1531, "PACKET_GW_PLAYERMATCHGRADE": 1532, "PACKET_WG_PLAYERQUITMATCH": 1533, "PACKET_WG_SCENEMATCHBASECHANGE": 1534, "PACKET_SS_REDIRECTTOPLAYER": 1535, "PACKET_WG_INVITEMATCHROB": 1536, "PACKET_WG_GAMEJACKPOT": 1539, "PACKET_WG_PLAYERENTER_MINIGAME": 1541, "PACKET_WG_PLAYERLEAVE_MINIGAME": 1542, "PACKET_GW_PLAYERLEAVE_MINIGAME": 1543, "PACKET_GW_DESTROYMINISCENE": 1544, "PACKET_GR_DESTROYSCENE": 1545, "PACKET_WG_DTROOMINFO": 1546, "PACKET_GW_DTROOMINFO": 1547, "PACKET_WG_DTROOMRESULTS": 1548, "PACKET_GW_DTROOMRESULTS": 1549, "PACKET_WG_SINGLEADJUST": 1550, "PACKET_GW_ADDSINGLEADJUST": 1551, "PACKET_WG_BUYRECTIMEITEM": 1552, "PACKET_WG_UpdateSkin": 1553, "PACKET_PlayerChangeItems": 1554, } ) func (x SSPacketID) Enum() *SSPacketID { p := new(SSPacketID) *p = x return p } func (x SSPacketID) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SSPacketID) Descriptor() protoreflect.EnumDescriptor { return file_server_proto_enumTypes[0].Descriptor() } func (SSPacketID) Type() protoreflect.EnumType { return &file_server_proto_enumTypes[0] } func (x SSPacketID) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SSPacketID.Descriptor instead. func (SSPacketID) EnumDescriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{0} } type SGBindGroupTag_OpCode int32 const ( SGBindGroupTag_OpCode_Add SGBindGroupTag_OpCode = 0 //添加 SGBindGroupTag_OpCode_Del SGBindGroupTag_OpCode = 1 //删除 ) // Enum value maps for SGBindGroupTag_OpCode. var ( SGBindGroupTag_OpCode_name = map[int32]string{ 0: "OpCode_Add", 1: "OpCode_Del", } SGBindGroupTag_OpCode_value = map[string]int32{ "OpCode_Add": 0, "OpCode_Del": 1, } ) func (x SGBindGroupTag_OpCode) Enum() *SGBindGroupTag_OpCode { p := new(SGBindGroupTag_OpCode) *p = x return p } func (x SGBindGroupTag_OpCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SGBindGroupTag_OpCode) Descriptor() protoreflect.EnumDescriptor { return file_server_proto_enumTypes[1].Descriptor() } func (SGBindGroupTag_OpCode) Type() protoreflect.EnumType { return &file_server_proto_enumTypes[1] } func (x SGBindGroupTag_OpCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SGBindGroupTag_OpCode.Descriptor instead. func (SGBindGroupTag_OpCode) EnumDescriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{0, 0} } //PACKET_SG_BINDGROUPTAG type SGBindGroupTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` //sessionid Code SGBindGroupTag_OpCode `protobuf:"varint,2,opt,name=Code,proto3,enum=server.SGBindGroupTag_OpCode" json:"Code,omitempty"` //操作码 Tags []string `protobuf:"bytes,3,rep,name=Tags,proto3" json:"Tags,omitempty"` //标记信息 } func (x *SGBindGroupTag) Reset() { *x = SGBindGroupTag{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SGBindGroupTag) String() string { return protoimpl.X.MessageStringOf(x) } func (*SGBindGroupTag) ProtoMessage() {} func (x *SGBindGroupTag) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SGBindGroupTag.ProtoReflect.Descriptor instead. func (*SGBindGroupTag) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{0} } func (x *SGBindGroupTag) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *SGBindGroupTag) GetCode() SGBindGroupTag_OpCode { if x != nil { return x.Code } return SGBindGroupTag_OpCode_Add } func (x *SGBindGroupTag) GetTags() []string { if x != nil { return x.Tags } return nil } //PACKET_SS_CUSTOMTAG_MULTICAST type SSCustomTagMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tags []string `protobuf:"bytes,1,rep,name=Tags,proto3" json:"Tags,omitempty"` RawData []byte `protobuf:"bytes,2,opt,name=RawData,proto3" json:"RawData,omitempty"` } func (x *SSCustomTagMulticast) Reset() { *x = SSCustomTagMulticast{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SSCustomTagMulticast) String() string { return protoimpl.X.MessageStringOf(x) } func (*SSCustomTagMulticast) ProtoMessage() {} func (x *SSCustomTagMulticast) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SSCustomTagMulticast.ProtoReflect.Descriptor instead. func (*SSCustomTagMulticast) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{1} } func (x *SSCustomTagMulticast) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *SSCustomTagMulticast) GetRawData() []byte { if x != nil { return x.RawData } return nil } type OpResultParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ParamInt64 int64 `protobuf:"varint,1,opt,name=ParamInt64,proto3" json:"ParamInt64,omitempty"` ParamString string `protobuf:"bytes,2,opt,name=ParamString,proto3" json:"ParamString,omitempty"` } func (x *OpResultParam) Reset() { *x = OpResultParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OpResultParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*OpResultParam) ProtoMessage() {} func (x *OpResultParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OpResultParam.ProtoReflect.Descriptor instead. func (*OpResultParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{2} } func (x *OpResultParam) GetParamInt64() int64 { if x != nil { return x.ParamInt64 } return 0 } func (x *OpResultParam) GetParamString() string { if x != nil { return x.ParamString } return "" } //PACKET_GB_CUR_LOAD type ServerLoad struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrvType int32 `protobuf:"varint,1,opt,name=SrvType,proto3" json:"SrvType,omitempty"` SrvId int32 `protobuf:"varint,2,opt,name=SrvId,proto3" json:"SrvId,omitempty"` CurLoad int32 `protobuf:"varint,3,opt,name=CurLoad,proto3" json:"CurLoad,omitempty"` } func (x *ServerLoad) Reset() { *x = ServerLoad{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerLoad) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerLoad) ProtoMessage() {} func (x *ServerLoad) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServerLoad.ProtoReflect.Descriptor instead. func (*ServerLoad) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{3} } func (x *ServerLoad) GetSrvType() int32 { if x != nil { return x.SrvType } return 0 } func (x *ServerLoad) GetSrvId() int32 { if x != nil { return x.SrvId } return 0 } func (x *ServerLoad) GetCurLoad() int32 { if x != nil { return x.CurLoad } return 0 } //PACKET_GB_STATE_SWITCH type ServerStateSwitch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrvType int32 `protobuf:"varint,1,opt,name=SrvType,proto3" json:"SrvType,omitempty"` SrvId int32 `protobuf:"varint,2,opt,name=SrvId,proto3" json:"SrvId,omitempty"` } func (x *ServerStateSwitch) Reset() { *x = ServerStateSwitch{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerStateSwitch) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerStateSwitch) ProtoMessage() {} func (x *ServerStateSwitch) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServerStateSwitch.ProtoReflect.Descriptor instead. func (*ServerStateSwitch) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{4} } func (x *ServerStateSwitch) GetSrvType() int32 { if x != nil { return x.SrvType } return 0 } func (x *ServerStateSwitch) GetSrvId() int32 { if x != nil { return x.SrvId } return 0 } //PACKET_WG_SERVER_STATE type ServerState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrvState int32 `protobuf:"varint,1,opt,name=SrvState,proto3" json:"SrvState,omitempty"` } func (x *ServerState) Reset() { *x = ServerState{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerState) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerState) ProtoMessage() {} func (x *ServerState) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServerState.ProtoReflect.Descriptor instead. func (*ServerState) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{5} } func (x *ServerState) GetSrvState() int32 { if x != nil { return x.SrvState } return 0 } //PACKET_MS_SRVCTRL type ServerCtrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CtrlCode int32 `protobuf:"varint,1,opt,name=CtrlCode,proto3" json:"CtrlCode,omitempty"` Params []*OpResultParam `protobuf:"bytes,2,rep,name=Params,proto3" json:"Params,omitempty"` } func (x *ServerCtrl) Reset() { *x = ServerCtrl{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerCtrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerCtrl) ProtoMessage() {} func (x *ServerCtrl) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServerCtrl.ProtoReflect.Descriptor instead. func (*ServerCtrl) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{6} } func (x *ServerCtrl) GetCtrlCode() int32 { if x != nil { return x.CtrlCode } return 0 } func (x *ServerCtrl) GetParams() []*OpResultParam { if x != nil { return x.Params } return nil } //PACKET_SC_NOTICE type ServerNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Text string `protobuf:"bytes,1,opt,name=Text,proto3" json:"Text,omitempty"` } func (x *ServerNotice) Reset() { *x = ServerNotice{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerNotice) ProtoMessage() {} func (x *ServerNotice) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ServerNotice.ProtoReflect.Descriptor instead. func (*ServerNotice) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{7} } func (x *ServerNotice) GetText() string { if x != nil { return x.Text } return "" } type Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Num int64 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` } func (x *Item) Reset() { *x = Item{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Item) String() string { return protoimpl.X.MessageStringOf(x) } func (*Item) ProtoMessage() {} func (x *Item) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Item.ProtoReflect.Descriptor instead. func (*Item) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{8} } func (x *Item) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Item) GetNum() int64 { if x != nil { return x.Num } return 0 } type CustomParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomTypeId int32 `protobuf:"varint,1,opt,name=RoomTypeId,proto3" json:"RoomTypeId,omitempty"` // 房间类型id RoomConfigId int32 `protobuf:"varint,2,opt,name=RoomConfigId,proto3" json:"RoomConfigId,omitempty"` // 房间配置id CostType int32 `protobuf:"varint,3,opt,name=CostType,proto3" json:"CostType,omitempty"` // 房卡场付费方式 1AA 2房主 Password string `protobuf:"bytes,4,opt,name=Password,proto3" json:"Password,omitempty"` // 房间密码 Voice int32 `protobuf:"varint,5,opt,name=Voice,proto3" json:"Voice,omitempty"` // 是否开启语音 1开启 2关闭 } func (x *CustomParam) Reset() { *x = CustomParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomParam) ProtoMessage() {} func (x *CustomParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CustomParam.ProtoReflect.Descriptor instead. func (*CustomParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{9} } func (x *CustomParam) GetRoomTypeId() int32 { if x != nil { return x.RoomTypeId } return 0 } func (x *CustomParam) GetRoomConfigId() int32 { if x != nil { return x.RoomConfigId } return 0 } func (x *CustomParam) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *CustomParam) GetPassword() string { if x != nil { return x.Password } return "" } func (x *CustomParam) GetVoice() int32 { if x != nil { return x.Voice } return 0 } type MatchParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MatchSortId int64 `protobuf:"varint,1,opt,name=MatchSortId,proto3" json:"MatchSortId,omitempty"` // 比赛实例id MatchId int32 `protobuf:"varint,2,opt,name=MatchId,proto3" json:"MatchId,omitempty"` // 比赛配置id IsFinals bool `protobuf:"varint,3,opt,name=IsFinals,proto3" json:"IsFinals,omitempty"` // 是否决赛 CurrRound int32 `protobuf:"varint,4,opt,name=CurrRound,proto3" json:"CurrRound,omitempty"` // 当前第几轮 CurrPlayerNum int32 `protobuf:"varint,5,opt,name=CurrPlayerNum,proto3" json:"CurrPlayerNum,omitempty"` // 本轮玩家数 NextPlayerNum int32 `protobuf:"varint,6,opt,name=NextPlayerNum,proto3" json:"NextPlayerNum,omitempty"` // 下轮最大玩家数 MatchType int32 `protobuf:"varint,7,opt,name=MatchType,proto3" json:"MatchType,omitempty"` // 比赛类型 } func (x *MatchParam) Reset() { *x = MatchParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchParam) ProtoMessage() {} func (x *MatchParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MatchParam.ProtoReflect.Descriptor instead. func (*MatchParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{10} } func (x *MatchParam) GetMatchSortId() int64 { if x != nil { return x.MatchSortId } return 0 } func (x *MatchParam) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } func (x *MatchParam) GetIsFinals() bool { if x != nil { return x.IsFinals } return false } func (x *MatchParam) GetCurrRound() int32 { if x != nil { return x.CurrRound } return 0 } func (x *MatchParam) GetCurrPlayerNum() int32 { if x != nil { return x.CurrPlayerNum } return 0 } func (x *MatchParam) GetNextPlayerNum() int32 { if x != nil { return x.NextPlayerNum } return 0 } func (x *MatchParam) GetMatchType() int32 { if x != nil { return x.MatchType } return 0 } //PACKET_WG_CREATESCENE type WGCreateScene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 SceneId int32 `protobuf:"varint,2,opt,name=SceneId,proto3" json:"SceneId,omitempty"` // 房间id GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id GameMode int32 `protobuf:"varint,4,opt,name=GameMode,proto3" json:"GameMode,omitempty"` // 废弃,游戏模式 SceneMode int32 `protobuf:"varint,5,opt,name=SceneMode,proto3" json:"SceneMode,omitempty"` // 房间模式 ReplayCode string `protobuf:"bytes,6,opt,name=ReplayCode,proto3" json:"ReplayCode,omitempty"` // 回放码 DBGameFree *DB_GameFree `protobuf:"bytes,7,opt,name=DBGameFree,proto3" json:"DBGameFree,omitempty"` // 场次配置 TotalOfGames int32 `protobuf:"varint,8,opt,name=TotalOfGames,proto3" json:"TotalOfGames,omitempty"` // 总局数 PlayerNum int32 `protobuf:"varint,9,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` // 最大玩家数 EnterAfterStart bool `protobuf:"varint,10,opt,name=EnterAfterStart,proto3" json:"EnterAfterStart,omitempty"` // 是否开始后可加入 Creator int32 `protobuf:"varint,11,opt,name=Creator,proto3" json:"Creator,omitempty"` // 创建者id BaseScore int32 `protobuf:"varint,12,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` // 底分 Items []*Item `protobuf:"bytes,13,rep,name=Items,proto3" json:"Items,omitempty"` // 获得道具 CostItems []*Item `protobuf:"bytes,14,rep,name=CostItems,proto3" json:"CostItems,omitempty"` // 消耗道具 Custom *CustomParam `protobuf:"bytes,15,opt,name=Custom,proto3" json:"Custom,omitempty"` // 房卡场参数 Match *MatchParam `protobuf:"bytes,16,opt,name=Match,proto3" json:"Match,omitempty"` // 比赛场参数 ChessRank []int32 `protobuf:"varint,26,rep,packed,name=ChessRank,proto3" json:"ChessRank,omitempty"` // 象棋段位配置 Params []int64 `protobuf:"varint,27,rep,packed,name=Params,proto3" json:"Params,omitempty"` // 游戏参数,GameRule中定义,不要有其他用途,含义不明确 } func (x *WGCreateScene) Reset() { *x = WGCreateScene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGCreateScene) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGCreateScene) ProtoMessage() {} func (x *WGCreateScene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGCreateScene.ProtoReflect.Descriptor instead. func (*WGCreateScene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{11} } func (x *WGCreateScene) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WGCreateScene) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGCreateScene) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *WGCreateScene) GetGameMode() int32 { if x != nil { return x.GameMode } return 0 } func (x *WGCreateScene) GetSceneMode() int32 { if x != nil { return x.SceneMode } return 0 } func (x *WGCreateScene) GetReplayCode() string { if x != nil { return x.ReplayCode } return "" } func (x *WGCreateScene) GetDBGameFree() *DB_GameFree { if x != nil { return x.DBGameFree } return nil } func (x *WGCreateScene) GetTotalOfGames() int32 { if x != nil { return x.TotalOfGames } return 0 } func (x *WGCreateScene) GetPlayerNum() int32 { if x != nil { return x.PlayerNum } return 0 } func (x *WGCreateScene) GetEnterAfterStart() bool { if x != nil { return x.EnterAfterStart } return false } func (x *WGCreateScene) GetCreator() int32 { if x != nil { return x.Creator } return 0 } func (x *WGCreateScene) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *WGCreateScene) GetItems() []*Item { if x != nil { return x.Items } return nil } func (x *WGCreateScene) GetCostItems() []*Item { if x != nil { return x.CostItems } return nil } func (x *WGCreateScene) GetCustom() *CustomParam { if x != nil { return x.Custom } return nil } func (x *WGCreateScene) GetMatch() *MatchParam { if x != nil { return x.Match } return nil } func (x *WGCreateScene) GetChessRank() []int32 { if x != nil { return x.ChessRank } return nil } func (x *WGCreateScene) GetParams() []int64 { if x != nil { return x.Params } return nil } //PACKET_WG_DESTROYSCENE type WGDestroyScene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ids []int64 `protobuf:"varint,1,rep,packed,name=Ids,proto3" json:"Ids,omitempty"` IsGrace bool `protobuf:"varint,2,opt,name=IsGrace,proto3" json:"IsGrace,omitempty"` // 游戏结束后删除 } func (x *WGDestroyScene) Reset() { *x = WGDestroyScene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGDestroyScene) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGDestroyScene) ProtoMessage() {} func (x *WGDestroyScene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGDestroyScene.ProtoReflect.Descriptor instead. func (*WGDestroyScene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{12} } func (x *WGDestroyScene) GetIds() []int64 { if x != nil { return x.Ids } return nil } func (x *WGDestroyScene) GetIsGrace() bool { if x != nil { return x.IsGrace } return false } //PACKET_GW_DESTROYSCENE type GWDestroyScene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int64 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` IsCompleted bool `protobuf:"varint,2,opt,name=IsCompleted,proto3" json:"IsCompleted,omitempty"` } func (x *GWDestroyScene) Reset() { *x = GWDestroyScene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWDestroyScene) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWDestroyScene) ProtoMessage() {} func (x *GWDestroyScene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWDestroyScene.ProtoReflect.Descriptor instead. func (*GWDestroyScene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{13} } func (x *GWDestroyScene) GetSceneId() int64 { if x != nil { return x.SceneId } return 0 } func (x *GWDestroyScene) GetIsCompleted() bool { if x != nil { return x.IsCompleted } return false } type RebateTask struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RebateSwitch bool `protobuf:"varint,1,opt,name=RebateSwitch,proto3" json:"RebateSwitch,omitempty"` //返利开关 RebateGameCfg []string `protobuf:"bytes,2,rep,name=RebateGameCfg,proto3" json:"RebateGameCfg,omitempty"` //已打开的游戏配置 gameid+gamemode } func (x *RebateTask) Reset() { *x = RebateTask{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RebateTask) String() string { return protoimpl.X.MessageStringOf(x) } func (*RebateTask) ProtoMessage() {} func (x *RebateTask) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RebateTask.ProtoReflect.Descriptor instead. func (*RebateTask) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{14} } func (x *RebateTask) GetRebateSwitch() bool { if x != nil { return x.RebateSwitch } return false } func (x *RebateTask) GetRebateGameCfg() []string { if x != nil { return x.RebateGameCfg } return nil } //PACKET_WG_PLAYERENTER //PACKET_WG_AUDIENCEENTER type WGPlayerEnter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` GateSid int64 `protobuf:"varint,2,opt,name=GateSid,proto3" json:"GateSid,omitempty"` SceneId int32 `protobuf:"varint,3,opt,name=SceneId,proto3" json:"SceneId,omitempty"` PlayerData []byte `protobuf:"bytes,4,opt,name=PlayerData,proto3" json:"PlayerData,omitempty"` AgentCode string `protobuf:"bytes,5,opt,name=AgentCode,proto3" json:"AgentCode,omitempty"` TakeCoin int64 `protobuf:"varint,6,opt,name=TakeCoin,proto3" json:"TakeCoin,omitempty"` //携带金币 IsLoaded bool `protobuf:"varint,7,opt,name=IsLoaded,proto3" json:"IsLoaded,omitempty"` //加载完成 IsQM bool `protobuf:"varint,8,opt,name=IsQM,proto3" json:"IsQM,omitempty"` //是否是全民推广用户 ExpectLeaveCoin int64 `protobuf:"varint,9,opt,name=ExpectLeaveCoin,proto3" json:"ExpectLeaveCoin,omitempty"` //期望离场时的金币[机器人用] ExpectGameTimes int32 `protobuf:"varint,10,opt,name=ExpectGameTimes,proto3" json:"ExpectGameTimes,omitempty"` //期望进行的游戏局数[机器人用] IParams []*PlayerIParam `protobuf:"bytes,11,rep,name=IParams,proto3" json:"IParams,omitempty"` SParams []*PlayerSParam `protobuf:"bytes,12,rep,name=SParams,proto3" json:"SParams,omitempty"` CParams []*PlayerCParam `protobuf:"bytes,13,rep,name=CParams,proto3" json:"CParams,omitempty"` SnId int32 `protobuf:"varint,14,opt,name=SnId,proto3" json:"SnId,omitempty"` SingleAdjust []byte `protobuf:"bytes,15,opt,name=SingleAdjust,proto3" json:"SingleAdjust,omitempty"` //单控数据 Pos int32 `protobuf:"varint,16,opt,name=Pos,proto3" json:"Pos,omitempty"` Items map[int32]int64 `protobuf:"bytes,17,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MatchParams []int32 `protobuf:"varint,18,rep,packed,name=MatchParams,proto3" json:"MatchParams,omitempty"` //比赛参数 RankScore map[int32]int64 `protobuf:"bytes,19,rep,name=RankScore,proto3" json:"RankScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 排位积分 Recharge int64 `protobuf:"varint,20,opt,name=Recharge,proto3" json:"Recharge,omitempty"` // 充值总金额 VCardCost int64 `protobuf:"varint,21,opt,name=VCardCost,proto3" json:"VCardCost,omitempty"` // v卡消耗数量 } func (x *WGPlayerEnter) Reset() { *x = WGPlayerEnter{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerEnter) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerEnter) ProtoMessage() {} func (x *WGPlayerEnter) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerEnter.ProtoReflect.Descriptor instead. func (*WGPlayerEnter) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{15} } func (x *WGPlayerEnter) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *WGPlayerEnter) GetGateSid() int64 { if x != nil { return x.GateSid } return 0 } func (x *WGPlayerEnter) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGPlayerEnter) GetPlayerData() []byte { if x != nil { return x.PlayerData } return nil } func (x *WGPlayerEnter) GetAgentCode() string { if x != nil { return x.AgentCode } return "" } func (x *WGPlayerEnter) GetTakeCoin() int64 { if x != nil { return x.TakeCoin } return 0 } func (x *WGPlayerEnter) GetIsLoaded() bool { if x != nil { return x.IsLoaded } return false } func (x *WGPlayerEnter) GetIsQM() bool { if x != nil { return x.IsQM } return false } func (x *WGPlayerEnter) GetExpectLeaveCoin() int64 { if x != nil { return x.ExpectLeaveCoin } return 0 } func (x *WGPlayerEnter) GetExpectGameTimes() int32 { if x != nil { return x.ExpectGameTimes } return 0 } func (x *WGPlayerEnter) GetIParams() []*PlayerIParam { if x != nil { return x.IParams } return nil } func (x *WGPlayerEnter) GetSParams() []*PlayerSParam { if x != nil { return x.SParams } return nil } func (x *WGPlayerEnter) GetCParams() []*PlayerCParam { if x != nil { return x.CParams } return nil } func (x *WGPlayerEnter) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGPlayerEnter) GetSingleAdjust() []byte { if x != nil { return x.SingleAdjust } return nil } func (x *WGPlayerEnter) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *WGPlayerEnter) GetItems() map[int32]int64 { if x != nil { return x.Items } return nil } func (x *WGPlayerEnter) GetMatchParams() []int32 { if x != nil { return x.MatchParams } return nil } func (x *WGPlayerEnter) GetRankScore() map[int32]int64 { if x != nil { return x.RankScore } return nil } func (x *WGPlayerEnter) GetRecharge() int64 { if x != nil { return x.Recharge } return 0 } func (x *WGPlayerEnter) GetVCardCost() int64 { if x != nil { return x.VCardCost } return 0 } //从观众席坐到座位 //PACKET_WG_AUDIENCESIT type WGAudienceSit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` TakeCoin int64 `protobuf:"varint,2,opt,name=TakeCoin,proto3" json:"TakeCoin,omitempty"` //携带金币 SceneId int32 `protobuf:"varint,3,opt,name=SceneId,proto3" json:"SceneId,omitempty"` Pos int32 `protobuf:"varint,4,opt,name=Pos,proto3" json:"Pos,omitempty"` } func (x *WGAudienceSit) Reset() { *x = WGAudienceSit{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGAudienceSit) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGAudienceSit) ProtoMessage() {} func (x *WGAudienceSit) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGAudienceSit.ProtoReflect.Descriptor instead. func (*WGAudienceSit) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{16} } func (x *WGAudienceSit) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGAudienceSit) GetTakeCoin() int64 { if x != nil { return x.TakeCoin } return 0 } func (x *WGAudienceSit) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGAudienceSit) GetPos() int32 { if x != nil { return x.Pos } return 0 } //PACKET_WG_PLAYERRETURN type WGPlayerReturn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlayerId int32 `protobuf:"varint,1,opt,name=PlayerId,proto3" json:"PlayerId,omitempty"` IsLoaded bool `protobuf:"varint,2,opt,name=IsLoaded,proto3" json:"IsLoaded,omitempty"` //加载完成标记 RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id EnterTs int64 `protobuf:"varint,4,opt,name=EnterTs,proto3" json:"EnterTs,omitempty"` //进房时的时间 } func (x *WGPlayerReturn) Reset() { *x = WGPlayerReturn{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerReturn) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerReturn) ProtoMessage() {} func (x *WGPlayerReturn) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerReturn.ProtoReflect.Descriptor instead. func (*WGPlayerReturn) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{17} } func (x *WGPlayerReturn) GetPlayerId() int32 { if x != nil { return x.PlayerId } return 0 } func (x *WGPlayerReturn) GetIsLoaded() bool { if x != nil { return x.IsLoaded } return false } func (x *WGPlayerReturn) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *WGPlayerReturn) GetEnterTs() int64 { if x != nil { return x.EnterTs } return 0 } //PACKET_GW_PLAYERLEAVE //PACKET_GW_AUDIENCELEAVE type GWPlayerLeave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` PlayerId int32 `protobuf:"varint,2,opt,name=PlayerId,proto3" json:"PlayerId,omitempty"` Reason int32 `protobuf:"varint,3,opt,name=Reason,proto3" json:"Reason,omitempty"` //原因: 0:主动离开 1:被踢出 2:游戏已经开始 PlayerData []byte `protobuf:"bytes,4,opt,name=PlayerData,proto3" json:"PlayerData,omitempty"` ReturnCoin int64 `protobuf:"varint,5,opt,name=ReturnCoin,proto3" json:"ReturnCoin,omitempty"` //退还金币 ServiceFee int64 `protobuf:"varint,6,opt,name=ServiceFee,proto3" json:"ServiceFee,omitempty"` //服务费|税收 GameTimes int32 `protobuf:"varint,7,opt,name=GameTimes,proto3" json:"GameTimes,omitempty"` //游戏次数 GameCoinTs int64 `protobuf:"varint,8,opt,name=GameCoinTs,proto3" json:"GameCoinTs,omitempty"` SelVip int32 `protobuf:"varint,9,opt,name=SelVip,proto3" json:"SelVip,omitempty"` //VIP鱼炮的选择 BetCoin int64 `protobuf:"varint,10,opt,name=BetCoin,proto3" json:"BetCoin,omitempty"` //投注金额 WinTimes int32 `protobuf:"varint,11,opt,name=WinTimes,proto3" json:"WinTimes,omitempty"` //赢局 LostTimes int32 `protobuf:"varint,12,opt,name=LostTimes,proto3" json:"LostTimes,omitempty"` //输局 TotalConvertibleFlow int64 `protobuf:"varint,13,opt,name=TotalConvertibleFlow,proto3" json:"TotalConvertibleFlow,omitempty"` //流水 ValidCacheBetTotal int64 `protobuf:"varint,14,opt,name=ValidCacheBetTotal,proto3" json:"ValidCacheBetTotal,omitempty"` //有效下注缓存 Items map[int32]int64 `protobuf:"bytes,15,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MatchId int64 `protobuf:"varint,16,opt,name=MatchId,proto3" json:"MatchId,omitempty"` //比赛场id CurIsWin int64 `protobuf:"varint,17,opt,name=CurIsWin,proto3" json:"CurIsWin,omitempty"` //本局是否赢 负数:输 0:平局 正数:赢 MatchRobotGrades map[int32]int32 `protobuf:"bytes,18,rep,name=MatchRobotGrades,proto3" json:"MatchRobotGrades,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //比赛数据 RankScore map[int32]int64 `protobuf:"bytes,19,rep,name=RankScore,proto3" json:"RankScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 排位积分 } func (x *GWPlayerLeave) Reset() { *x = GWPlayerLeave{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerLeave) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerLeave) ProtoMessage() {} func (x *GWPlayerLeave) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerLeave.ProtoReflect.Descriptor instead. func (*GWPlayerLeave) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{18} } func (x *GWPlayerLeave) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWPlayerLeave) GetPlayerId() int32 { if x != nil { return x.PlayerId } return 0 } func (x *GWPlayerLeave) GetReason() int32 { if x != nil { return x.Reason } return 0 } func (x *GWPlayerLeave) GetPlayerData() []byte { if x != nil { return x.PlayerData } return nil } func (x *GWPlayerLeave) GetReturnCoin() int64 { if x != nil { return x.ReturnCoin } return 0 } func (x *GWPlayerLeave) GetServiceFee() int64 { if x != nil { return x.ServiceFee } return 0 } func (x *GWPlayerLeave) GetGameTimes() int32 { if x != nil { return x.GameTimes } return 0 } func (x *GWPlayerLeave) GetGameCoinTs() int64 { if x != nil { return x.GameCoinTs } return 0 } func (x *GWPlayerLeave) GetSelVip() int32 { if x != nil { return x.SelVip } return 0 } func (x *GWPlayerLeave) GetBetCoin() int64 { if x != nil { return x.BetCoin } return 0 } func (x *GWPlayerLeave) GetWinTimes() int32 { if x != nil { return x.WinTimes } return 0 } func (x *GWPlayerLeave) GetLostTimes() int32 { if x != nil { return x.LostTimes } return 0 } func (x *GWPlayerLeave) GetTotalConvertibleFlow() int64 { if x != nil { return x.TotalConvertibleFlow } return 0 } func (x *GWPlayerLeave) GetValidCacheBetTotal() int64 { if x != nil { return x.ValidCacheBetTotal } return 0 } func (x *GWPlayerLeave) GetItems() map[int32]int64 { if x != nil { return x.Items } return nil } func (x *GWPlayerLeave) GetMatchId() int64 { if x != nil { return x.MatchId } return 0 } func (x *GWPlayerLeave) GetCurIsWin() int64 { if x != nil { return x.CurIsWin } return 0 } func (x *GWPlayerLeave) GetMatchRobotGrades() map[int32]int32 { if x != nil { return x.MatchRobotGrades } return nil } func (x *GWPlayerLeave) GetRankScore() map[int32]int64 { if x != nil { return x.RankScore } return nil } //PACKET_WG_PLAYERDROPLINE type WGPlayerDropLine struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` SceneId int32 `protobuf:"varint,2,opt,name=SceneId,proto3" json:"SceneId,omitempty"` } func (x *WGPlayerDropLine) Reset() { *x = WGPlayerDropLine{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerDropLine) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerDropLine) ProtoMessage() {} func (x *WGPlayerDropLine) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerDropLine.ProtoReflect.Descriptor instead. func (*WGPlayerDropLine) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{19} } func (x *WGPlayerDropLine) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *WGPlayerDropLine) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } //PACKET_WG_PLAYERREHOLD type WGPlayerRehold struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Sid int64 `protobuf:"varint,2,opt,name=Sid,proto3" json:"Sid,omitempty"` SceneId int32 `protobuf:"varint,3,opt,name=SceneId,proto3" json:"SceneId,omitempty"` GateSid int64 `protobuf:"varint,4,opt,name=GateSid,proto3" json:"GateSid,omitempty"` } func (x *WGPlayerRehold) Reset() { *x = WGPlayerRehold{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerRehold) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerRehold) ProtoMessage() {} func (x *WGPlayerRehold) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerRehold.ProtoReflect.Descriptor instead. func (*WGPlayerRehold) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{20} } func (x *WGPlayerRehold) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *WGPlayerRehold) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *WGPlayerRehold) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGPlayerRehold) GetGateSid() int64 { if x != nil { return x.GateSid } return 0 } //PACKET_GW_BILLEDROOMCARD type GWBilledRoomCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` SnId []int32 `protobuf:"varint,2,rep,packed,name=SnId,proto3" json:"SnId,omitempty"` } func (x *GWBilledRoomCard) Reset() { *x = GWBilledRoomCard{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWBilledRoomCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWBilledRoomCard) ProtoMessage() {} func (x *GWBilledRoomCard) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWBilledRoomCard.ProtoReflect.Descriptor instead. func (*GWBilledRoomCard) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{21} } func (x *GWBilledRoomCard) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWBilledRoomCard) GetSnId() []int32 { if x != nil { return x.SnId } return nil } //PACKET_GG_PLAYERSESSIONBIND type GGPlayerSessionBind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` Vip int32 `protobuf:"varint,3,opt,name=Vip,proto3" json:"Vip,omitempty"` CoinPayTotal int64 `protobuf:"varint,4,opt,name=CoinPayTotal,proto3" json:"CoinPayTotal,omitempty"` Ip string `protobuf:"bytes,5,opt,name=Ip,proto3" json:"Ip,omitempty"` Platform string `protobuf:"bytes,6,opt,name=Platform,proto3" json:"Platform,omitempty"` } func (x *GGPlayerSessionBind) Reset() { *x = GGPlayerSessionBind{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GGPlayerSessionBind) String() string { return protoimpl.X.MessageStringOf(x) } func (*GGPlayerSessionBind) ProtoMessage() {} func (x *GGPlayerSessionBind) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GGPlayerSessionBind.ProtoReflect.Descriptor instead. func (*GGPlayerSessionBind) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{22} } func (x *GGPlayerSessionBind) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *GGPlayerSessionBind) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GGPlayerSessionBind) GetVip() int32 { if x != nil { return x.Vip } return 0 } func (x *GGPlayerSessionBind) GetCoinPayTotal() int64 { if x != nil { return x.CoinPayTotal } return 0 } func (x *GGPlayerSessionBind) GetIp() string { if x != nil { return x.Ip } return "" } func (x *GGPlayerSessionBind) GetPlatform() string { if x != nil { return x.Platform } return "" } //PACKET_GG_PLAYERSESSIONUNBIND type GGPlayerSessionUnBind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` } func (x *GGPlayerSessionUnBind) Reset() { *x = GGPlayerSessionUnBind{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GGPlayerSessionUnBind) String() string { return protoimpl.X.MessageStringOf(x) } func (*GGPlayerSessionUnBind) ProtoMessage() {} func (x *GGPlayerSessionUnBind) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GGPlayerSessionUnBind.ProtoReflect.Descriptor instead. func (*GGPlayerSessionUnBind) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{23} } func (x *GGPlayerSessionUnBind) GetSid() int64 { if x != nil { return x.Sid } return 0 } type WGDayTimeChange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Minute int32 `protobuf:"varint,1,opt,name=Minute,proto3" json:"Minute,omitempty"` Hour int32 `protobuf:"varint,2,opt,name=Hour,proto3" json:"Hour,omitempty"` Day int32 `protobuf:"varint,3,opt,name=Day,proto3" json:"Day,omitempty"` Week int32 `protobuf:"varint,4,opt,name=Week,proto3" json:"Week,omitempty"` Month int32 `protobuf:"varint,5,opt,name=Month,proto3" json:"Month,omitempty"` } func (x *WGDayTimeChange) Reset() { *x = WGDayTimeChange{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGDayTimeChange) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGDayTimeChange) ProtoMessage() {} func (x *WGDayTimeChange) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGDayTimeChange.ProtoReflect.Descriptor instead. func (*WGDayTimeChange) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{24} } func (x *WGDayTimeChange) GetMinute() int32 { if x != nil { return x.Minute } return 0 } func (x *WGDayTimeChange) GetHour() int32 { if x != nil { return x.Hour } return 0 } func (x *WGDayTimeChange) GetDay() int32 { if x != nil { return x.Day } return 0 } func (x *WGDayTimeChange) GetWeek() int32 { if x != nil { return x.Week } return 0 } func (x *WGDayTimeChange) GetMonth() int32 { if x != nil { return x.Month } return 0 } type ReplayPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccId string `protobuf:"bytes,1,opt,name=AccId,proto3" json:"AccId,omitempty"` //账号ID Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台名称 Pos string `protobuf:"bytes,3,opt,name=Pos,proto3" json:"Pos,omitempty"` //Pos Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` //名字 SnId int32 `protobuf:"varint,5,opt,name=SnId,proto3" json:"SnId,omitempty"` //数字账号 Head int32 `protobuf:"varint,6,opt,name=Head,proto3" json:"Head,omitempty"` //头像 Sex int32 `protobuf:"varint,7,opt,name=Sex,proto3" json:"Sex,omitempty"` //性别 Coin int64 `protobuf:"varint,8,opt,name=Coin,proto3" json:"Coin,omitempty"` //金币 } func (x *ReplayPlayerData) Reset() { *x = ReplayPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplayPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplayPlayerData) ProtoMessage() {} func (x *ReplayPlayerData) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplayPlayerData.ProtoReflect.Descriptor instead. func (*ReplayPlayerData) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{25} } func (x *ReplayPlayerData) GetAccId() string { if x != nil { return x.AccId } return "" } func (x *ReplayPlayerData) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ReplayPlayerData) GetPos() string { if x != nil { return x.Pos } return "" } func (x *ReplayPlayerData) GetName() string { if x != nil { return x.Name } return "" } func (x *ReplayPlayerData) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *ReplayPlayerData) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *ReplayPlayerData) GetSex() int32 { if x != nil { return x.Sex } return 0 } func (x *ReplayPlayerData) GetCoin() int64 { if x != nil { return x.Coin } return 0 } //录像回放相关 type ReplayRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TimeStamp int64 `protobuf:"varint,1,opt,name=TimeStamp,proto3" json:"TimeStamp,omitempty"` //时间戳 Pos int32 `protobuf:"varint,2,opt,name=Pos,proto3" json:"Pos,omitempty"` //位置相关 -1:标示广播消息,与位置无关 PacketId int32 `protobuf:"varint,3,opt,name=PacketId,proto3" json:"PacketId,omitempty"` //包ID BinData []byte `protobuf:"bytes,4,opt,name=BinData,proto3" json:"BinData,omitempty"` //包二进制数据 StrData string `protobuf:"bytes,5,opt,name=StrData,proto3" json:"StrData,omitempty"` //包字符串数据 ExcludePos int32 `protobuf:"varint,6,opt,name=ExcludePos,proto3" json:"ExcludePos,omitempty"` //排除的位置 } func (x *ReplayRecord) Reset() { *x = ReplayRecord{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplayRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplayRecord) ProtoMessage() {} func (x *ReplayRecord) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplayRecord.ProtoReflect.Descriptor instead. func (*ReplayRecord) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{26} } func (x *ReplayRecord) GetTimeStamp() int64 { if x != nil { return x.TimeStamp } return 0 } func (x *ReplayRecord) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *ReplayRecord) GetPacketId() int32 { if x != nil { return x.PacketId } return 0 } func (x *ReplayRecord) GetBinData() []byte { if x != nil { return x.BinData } return nil } func (x *ReplayRecord) GetStrData() string { if x != nil { return x.StrData } return "" } func (x *ReplayRecord) GetExcludePos() int32 { if x != nil { return x.ExcludePos } return 0 } type ReplaySequene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sequenes []*ReplayRecord `protobuf:"bytes,1,rep,name=Sequenes,proto3" json:"Sequenes,omitempty"` } func (x *ReplaySequene) Reset() { *x = ReplaySequene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplaySequene) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplaySequene) ProtoMessage() {} func (x *ReplaySequene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplaySequene.ProtoReflect.Descriptor instead. func (*ReplaySequene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{27} } func (x *ReplaySequene) GetSequenes() []*ReplayRecord { if x != nil { return x.Sequenes } return nil } type GRReplaySequene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` Rec *ReplaySequene `protobuf:"bytes,2,opt,name=Rec,proto3" json:"Rec,omitempty"` Platform string `protobuf:"bytes,3,opt,name=Platform,proto3" json:"Platform,omitempty"` Channel string `protobuf:"bytes,4,opt,name=Channel,proto3" json:"Channel,omitempty"` Promoter string `protobuf:"bytes,5,opt,name=Promoter,proto3" json:"Promoter,omitempty"` ClubId int32 `protobuf:"varint,6,opt,name=ClubId,proto3" json:"ClubId,omitempty"` ClubRoom string `protobuf:"bytes,7,opt,name=ClubRoom,proto3" json:"ClubRoom,omitempty"` GameFreeid int32 `protobuf:"varint,8,opt,name=GameFreeid,proto3" json:"GameFreeid,omitempty"` RoomId int32 `protobuf:"varint,9,opt,name=RoomId,proto3" json:"RoomId,omitempty"` //房间id GameId int32 `protobuf:"varint,10,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id RoomMode int32 `protobuf:"varint,11,opt,name=RoomMode,proto3" json:"RoomMode,omitempty"` //游戏模式 NumOfGames int32 `protobuf:"varint,12,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` //当前第几局 BankerPos int32 `protobuf:"varint,13,opt,name=BankerPos,proto3" json:"BankerPos,omitempty"` //庄家位置 SceneType int32 `protobuf:"varint,14,opt,name=SceneType,proto3" json:"SceneType,omitempty"` //房间模式 0:房卡模式 1:钻石模式 LogId string `protobuf:"bytes,15,opt,name=LogId,proto3" json:"LogId,omitempty"` //关联的牌局记录 Datas []*ReplayPlayerData `protobuf:"bytes,16,rep,name=Datas,proto3" json:"Datas,omitempty"` //玩家信息 DatasVer int32 `protobuf:"varint,17,opt,name=DatasVer,proto3" json:"DatasVer,omitempty"` ChannelID string `protobuf:"bytes,18,opt,name=ChannelID,proto3" json:"ChannelID,omitempty"` // 渠道ID } func (x *GRReplaySequene) Reset() { *x = GRReplaySequene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GRReplaySequene) String() string { return protoimpl.X.MessageStringOf(x) } func (*GRReplaySequene) ProtoMessage() {} func (x *GRReplaySequene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GRReplaySequene.ProtoReflect.Descriptor instead. func (*GRReplaySequene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{28} } func (x *GRReplaySequene) GetName() string { if x != nil { return x.Name } return "" } func (x *GRReplaySequene) GetRec() *ReplaySequene { if x != nil { return x.Rec } return nil } func (x *GRReplaySequene) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GRReplaySequene) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *GRReplaySequene) GetPromoter() string { if x != nil { return x.Promoter } return "" } func (x *GRReplaySequene) GetClubId() int32 { if x != nil { return x.ClubId } return 0 } func (x *GRReplaySequene) GetClubRoom() string { if x != nil { return x.ClubRoom } return "" } func (x *GRReplaySequene) GetGameFreeid() int32 { if x != nil { return x.GameFreeid } return 0 } func (x *GRReplaySequene) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GRReplaySequene) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GRReplaySequene) GetRoomMode() int32 { if x != nil { return x.RoomMode } return 0 } func (x *GRReplaySequene) GetNumOfGames() int32 { if x != nil { return x.NumOfGames } return 0 } func (x *GRReplaySequene) GetBankerPos() int32 { if x != nil { return x.BankerPos } return 0 } func (x *GRReplaySequene) GetSceneType() int32 { if x != nil { return x.SceneType } return 0 } func (x *GRReplaySequene) GetLogId() string { if x != nil { return x.LogId } return "" } func (x *GRReplaySequene) GetDatas() []*ReplayPlayerData { if x != nil { return x.Datas } return nil } func (x *GRReplaySequene) GetDatasVer() int32 { if x != nil { return x.DatasVer } return 0 } func (x *GRReplaySequene) GetChannelID() string { if x != nil { return x.ChannelID } return "" } //PACKET_WR_LoginRec type WRLoginRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` // RecType int32 `protobuf:"varint,2,opt,name=RecType,proto3" json:"RecType,omitempty"` //记录类型 RecTime int64 `protobuf:"varint,3,opt,name=RecTime,proto3" json:"RecTime,omitempty"` //记录时间 IsBind bool `protobuf:"varint,4,opt,name=IsBind,proto3" json:"IsBind,omitempty"` //是否绑定 City string `protobuf:"bytes,5,opt,name=City,proto3" json:"City,omitempty"` //城市 Platform string `protobuf:"bytes,6,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台id LogId string `protobuf:"bytes,7,opt,name=LogId,proto3" json:"LogId,omitempty"` //关联的登录记录 } func (x *WRLoginRec) Reset() { *x = WRLoginRec{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRLoginRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRLoginRec) ProtoMessage() {} func (x *WRLoginRec) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WRLoginRec.ProtoReflect.Descriptor instead. func (*WRLoginRec) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{29} } func (x *WRLoginRec) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WRLoginRec) GetRecType() int32 { if x != nil { return x.RecType } return 0 } func (x *WRLoginRec) GetRecTime() int64 { if x != nil { return x.RecTime } return 0 } func (x *WRLoginRec) GetIsBind() bool { if x != nil { return x.IsBind } return false } func (x *WRLoginRec) GetCity() string { if x != nil { return x.City } return "" } func (x *WRLoginRec) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WRLoginRec) GetLogId() string { if x != nil { return x.LogId } return "" } //PACKET_WR_GameDetail type WRGameDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameDetail []byte `protobuf:"bytes,1,opt,name=GameDetail,proto3" json:"GameDetail,omitempty"` // } func (x *WRGameDetail) Reset() { *x = WRGameDetail{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRGameDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRGameDetail) ProtoMessage() {} func (x *WRGameDetail) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WRGameDetail.ProtoReflect.Descriptor instead. func (*WRGameDetail) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{30} } func (x *WRGameDetail) GetGameDetail() []byte { if x != nil { return x.GameDetail } return nil } //PACKET_WR_PlayerData type WRPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` PlayerData []byte `protobuf:"bytes,2,opt,name=PlayerData,proto3" json:"PlayerData,omitempty"` // } func (x *WRPlayerData) Reset() { *x = WRPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRPlayerData) ProtoMessage() {} func (x *WRPlayerData) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WRPlayerData.ProtoReflect.Descriptor instead. func (*WRPlayerData) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{31} } func (x *WRPlayerData) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *WRPlayerData) GetPlayerData() []byte { if x != nil { return x.PlayerData } return nil } //PACKET_WT_PlayerPay type WTPlayerPay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlayerData []byte `protobuf:"bytes,1,opt,name=PlayerData,proto3" json:"PlayerData,omitempty"` // AddCoin int64 `protobuf:"varint,2,opt,name=AddCoin,proto3" json:"AddCoin,omitempty"` } func (x *WTPlayerPay) Reset() { *x = WTPlayerPay{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WTPlayerPay) String() string { return protoimpl.X.MessageStringOf(x) } func (*WTPlayerPay) ProtoMessage() {} func (x *WTPlayerPay) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WTPlayerPay.ProtoReflect.Descriptor instead. func (*WTPlayerPay) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{32} } func (x *WTPlayerPay) GetPlayerData() []byte { if x != nil { return x.PlayerData } return nil } func (x *WTPlayerPay) GetAddCoin() int64 { if x != nil { return x.AddCoin } return 0 } type PlayerGameRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Head int32 `protobuf:"varint,3,opt,name=Head,proto3" json:"Head,omitempty"` Coin int64 `protobuf:"varint,4,opt,name=Coin,proto3" json:"Coin,omitempty"` Pos int32 `protobuf:"varint,5,opt,name=Pos,proto3" json:"Pos,omitempty"` OtherParams []int32 `protobuf:"varint,6,rep,packed,name=OtherParams,proto3" json:"OtherParams,omitempty"` } func (x *PlayerGameRec) Reset() { *x = PlayerGameRec{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerGameRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerGameRec) ProtoMessage() {} func (x *PlayerGameRec) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerGameRec.ProtoReflect.Descriptor instead. func (*PlayerGameRec) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{33} } func (x *PlayerGameRec) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *PlayerGameRec) GetName() string { if x != nil { return x.Name } return "" } func (x *PlayerGameRec) GetHead() int32 { if x != nil { return x.Head } return 0 } func (x *PlayerGameRec) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *PlayerGameRec) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *PlayerGameRec) GetOtherParams() []int32 { if x != nil { return x.OtherParams } return nil } //PACKET_GW_GAMEREC type GWGameRec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Datas []*PlayerGameRec `protobuf:"bytes,2,rep,name=Datas,proto3" json:"Datas,omitempty"` NumOfGames int32 `protobuf:"varint,3,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` GameTime int32 `protobuf:"varint,4,opt,name=GameTime,proto3" json:"GameTime,omitempty"` ReplayCode string `protobuf:"bytes,5,opt,name=ReplayCode,proto3" json:"ReplayCode,omitempty"` } func (x *GWGameRec) Reset() { *x = GWGameRec{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWGameRec) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWGameRec) ProtoMessage() {} func (x *GWGameRec) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWGameRec.ProtoReflect.Descriptor instead. func (*GWGameRec) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{34} } func (x *GWGameRec) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWGameRec) GetDatas() []*PlayerGameRec { if x != nil { return x.Datas } return nil } func (x *GWGameRec) GetNumOfGames() int32 { if x != nil { return x.NumOfGames } return 0 } func (x *GWGameRec) GetGameTime() int32 { if x != nil { return x.GameTime } return 0 } func (x *GWGameRec) GetReplayCode() string { if x != nil { return x.ReplayCode } return "" } //PACKET_GW_SCENESTART type GWSceneStart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` CurrRound int32 `protobuf:"varint,2,opt,name=CurrRound,proto3" json:"CurrRound,omitempty"` Start bool `protobuf:"varint,3,opt,name=Start,proto3" json:"Start,omitempty"` MaxRound int32 `protobuf:"varint,4,opt,name=MaxRound,proto3" json:"MaxRound,omitempty"` } func (x *GWSceneStart) Reset() { *x = GWSceneStart{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWSceneStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWSceneStart) ProtoMessage() {} func (x *GWSceneStart) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWSceneStart.ProtoReflect.Descriptor instead. func (*GWSceneStart) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{35} } func (x *GWSceneStart) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWSceneStart) GetCurrRound() int32 { if x != nil { return x.CurrRound } return 0 } func (x *GWSceneStart) GetStart() bool { if x != nil { return x.Start } return false } func (x *GWSceneStart) GetMaxRound() int32 { if x != nil { return x.MaxRound } return 0 } type PlayerCtx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` } func (x *PlayerCtx) Reset() { *x = PlayerCtx{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerCtx) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerCtx) ProtoMessage() {} func (x *PlayerCtx) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerCtx.ProtoReflect.Descriptor instead. func (*PlayerCtx) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{36} } func (x *PlayerCtx) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerCtx) GetCoin() int64 { if x != nil { return x.Coin } return 0 } //该协议废弃掉,统一由 //PACKET_GW_SCENEEND //message GWSceneEnd { // int32 GameFreeId = 1; // repeated PlayerCtx Players = 2; //} //PACKET_GW_SCFISHRECORD type FishRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FishId int32 `protobuf:"varint,1,opt,name=FishId,proto3" json:"FishId,omitempty"` Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` } func (x *FishRecord) Reset() { *x = FishRecord{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FishRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*FishRecord) ProtoMessage() {} func (x *FishRecord) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FishRecord.ProtoReflect.Descriptor instead. func (*FishRecord) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{37} } func (x *FishRecord) GetFishId() int32 { if x != nil { return x.FishId } return 0 } func (x *FishRecord) GetCount() int32 { if x != nil { return x.Count } return 0 } type GWFishRecord struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` FishRecords []*FishRecord `protobuf:"bytes,3,rep,name=FishRecords,proto3" json:"FishRecords,omitempty"` } func (x *GWFishRecord) Reset() { *x = GWFishRecord{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWFishRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWFishRecord) ProtoMessage() {} func (x *GWFishRecord) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWFishRecord.ProtoReflect.Descriptor instead. func (*GWFishRecord) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{38} } func (x *GWFishRecord) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GWFishRecord) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GWFishRecord) GetFishRecords() []*FishRecord { if x != nil { return x.FishRecords } return nil } //场景状态 //PACKET_GW_SCENESTATE type GWSceneState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` RoomState int32 `protobuf:"varint,2,opt,name=RoomState,proto3" json:"RoomState,omitempty"` } func (x *GWSceneState) Reset() { *x = GWSceneState{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWSceneState) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWSceneState) ProtoMessage() {} func (x *GWSceneState) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWSceneState.ProtoReflect.Descriptor instead. func (*GWSceneState) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{39} } func (x *GWSceneState) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWSceneState) GetRoomState() int32 { if x != nil { return x.RoomState } return 0 } //PACKET_WR_INVITEROBOT type WRInviteRobot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Cnt int32 `protobuf:"varint,2,opt,name=Cnt,proto3" json:"Cnt,omitempty"` MatchId int32 `protobuf:"varint,3,opt,name=MatchId,proto3" json:"MatchId,omitempty"` Platform string `protobuf:"bytes,4,opt,name=Platform,proto3" json:"Platform,omitempty"` IsMatch bool `protobuf:"varint,5,opt,name=IsMatch,proto3" json:"IsMatch,omitempty"` NeedAwait bool `protobuf:"varint,6,opt,name=NeedAwait,proto3" json:"NeedAwait,omitempty"` } func (x *WRInviteRobot) Reset() { *x = WRInviteRobot{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRInviteRobot) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRInviteRobot) ProtoMessage() {} func (x *WRInviteRobot) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WRInviteRobot.ProtoReflect.Descriptor instead. func (*WRInviteRobot) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{40} } func (x *WRInviteRobot) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *WRInviteRobot) GetCnt() int32 { if x != nil { return x.Cnt } return 0 } func (x *WRInviteRobot) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } func (x *WRInviteRobot) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WRInviteRobot) GetIsMatch() bool { if x != nil { return x.IsMatch } return false } func (x *WRInviteRobot) GetNeedAwait() bool { if x != nil { return x.NeedAwait } return false } //PACKET_WR_INVITECREATEROOM type WRInviteCreateRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cnt int32 `protobuf:"varint,1,opt,name=Cnt,proto3" json:"Cnt,omitempty"` MatchId int32 `protobuf:"varint,2,opt,name=MatchId,proto3" json:"MatchId,omitempty"` } func (x *WRInviteCreateRoom) Reset() { *x = WRInviteCreateRoom{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WRInviteCreateRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*WRInviteCreateRoom) ProtoMessage() {} func (x *WRInviteCreateRoom) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WRInviteCreateRoom.ProtoReflect.Descriptor instead. func (*WRInviteCreateRoom) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{41} } func (x *WRInviteCreateRoom) GetCnt() int32 { if x != nil { return x.Cnt } return 0 } func (x *WRInviteCreateRoom) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } //PACKET_WG_AGENTKICKOUTPLAYER type WGAgentKickOutPlayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` AgentId int32 `protobuf:"varint,2,opt,name=AgentId,proto3" json:"AgentId,omitempty"` PlayerId int32 `protobuf:"varint,3,opt,name=PlayerId,proto3" json:"PlayerId,omitempty"` AgentSid int64 `protobuf:"varint,4,opt,name=AgentSid,proto3" json:"AgentSid,omitempty"` } func (x *WGAgentKickOutPlayer) Reset() { *x = WGAgentKickOutPlayer{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGAgentKickOutPlayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGAgentKickOutPlayer) ProtoMessage() {} func (x *WGAgentKickOutPlayer) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGAgentKickOutPlayer.ProtoReflect.Descriptor instead. func (*WGAgentKickOutPlayer) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{42} } func (x *WGAgentKickOutPlayer) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *WGAgentKickOutPlayer) GetAgentId() int32 { if x != nil { return x.AgentId } return 0 } func (x *WGAgentKickOutPlayer) GetPlayerId() int32 { if x != nil { return x.PlayerId } return 0 } func (x *WGAgentKickOutPlayer) GetAgentSid() int64 { if x != nil { return x.AgentSid } return 0 } //PACKET_WD_DATANALYSIS type WDDataAnalysis struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataType int32 `protobuf:"varint,1,opt,name=DataType,proto3" json:"DataType,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *WDDataAnalysis) Reset() { *x = WDDataAnalysis{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WDDataAnalysis) String() string { return protoimpl.X.MessageStringOf(x) } func (*WDDataAnalysis) ProtoMessage() {} func (x *WDDataAnalysis) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WDDataAnalysis.ProtoReflect.Descriptor instead. func (*WDDataAnalysis) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{43} } func (x *WDDataAnalysis) GetDataType() int32 { if x != nil { return x.DataType } return 0 } func (x *WDDataAnalysis) GetData() []byte { if x != nil { return x.Data } return nil } type PlayerCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` Cards []int32 `protobuf:"varint,2,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` } func (x *PlayerCard) Reset() { *x = PlayerCard{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerCard) ProtoMessage() {} func (x *PlayerCard) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerCard.ProtoReflect.Descriptor instead. func (*PlayerCard) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{44} } func (x *PlayerCard) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *PlayerCard) GetCards() []int32 { if x != nil { return x.Cards } return nil } type GNPlayerCards struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` PlayerCards []*PlayerCard `protobuf:"bytes,2,rep,name=PlayerCards,proto3" json:"PlayerCards,omitempty"` NowRobotMode int32 `protobuf:"varint,3,opt,name=NowRobotMode,proto3" json:"NowRobotMode,omitempty"` } func (x *GNPlayerCards) Reset() { *x = GNPlayerCards{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GNPlayerCards) String() string { return protoimpl.X.MessageStringOf(x) } func (*GNPlayerCards) ProtoMessage() {} func (x *GNPlayerCards) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GNPlayerCards.ProtoReflect.Descriptor instead. func (*GNPlayerCards) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{45} } func (x *GNPlayerCards) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GNPlayerCards) GetPlayerCards() []*PlayerCard { if x != nil { return x.PlayerCards } return nil } func (x *GNPlayerCards) GetNowRobotMode() int32 { if x != nil { return x.NowRobotMode } return 0 } type RobotData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TotalIn int64 `protobuf:"varint,2,opt,name=TotalIn,proto3" json:"TotalIn,omitempty"` TotalOut int64 `protobuf:"varint,3,opt,name=TotalOut,proto3" json:"TotalOut,omitempty"` CoinPayTotal int64 `protobuf:"varint,4,opt,name=CoinPayTotal,proto3" json:"CoinPayTotal,omitempty"` CoinExchangeTotal int64 `protobuf:"varint,5,opt,name=CoinExchangeTotal,proto3" json:"CoinExchangeTotal,omitempty"` Pos int32 `protobuf:"varint,6,opt,name=Pos,proto3" json:"Pos,omitempty"` } func (x *RobotData) Reset() { *x = RobotData{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RobotData) String() string { return protoimpl.X.MessageStringOf(x) } func (*RobotData) ProtoMessage() {} func (x *RobotData) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RobotData.ProtoReflect.Descriptor instead. func (*RobotData) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{46} } func (x *RobotData) GetTotalIn() int64 { if x != nil { return x.TotalIn } return 0 } func (x *RobotData) GetTotalOut() int64 { if x != nil { return x.TotalOut } return 0 } func (x *RobotData) GetCoinPayTotal() int64 { if x != nil { return x.CoinPayTotal } return 0 } func (x *RobotData) GetCoinExchangeTotal() int64 { if x != nil { return x.CoinExchangeTotal } return 0 } func (x *RobotData) GetPos() int32 { if x != nil { return x.Pos } return 0 } type GNPlayerParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` Playerdata []*RobotData `protobuf:"bytes,2,rep,name=Playerdata,proto3" json:"Playerdata,omitempty"` } func (x *GNPlayerParam) Reset() { *x = GNPlayerParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GNPlayerParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*GNPlayerParam) ProtoMessage() {} func (x *GNPlayerParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GNPlayerParam.ProtoReflect.Descriptor instead. func (*GNPlayerParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{47} } func (x *GNPlayerParam) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GNPlayerParam) GetPlayerdata() []*RobotData { if x != nil { return x.Playerdata } return nil } //PACKET_GW_REBUILDSCENE //重建场景关系 type GWRebuildScene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneIds []int32 `protobuf:"varint,1,rep,packed,name=SceneIds,proto3" json:"SceneIds,omitempty"` PlayerIds []int32 `protobuf:"varint,2,rep,packed,name=PlayerIds,proto3" json:"PlayerIds,omitempty"` } func (x *GWRebuildScene) Reset() { *x = GWRebuildScene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWRebuildScene) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWRebuildScene) ProtoMessage() {} func (x *GWRebuildScene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWRebuildScene.ProtoReflect.Descriptor instead. func (*GWRebuildScene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{48} } func (x *GWRebuildScene) GetSceneIds() []int32 { if x != nil { return x.SceneIds } return nil } func (x *GWRebuildScene) GetPlayerIds() []int32 { if x != nil { return x.PlayerIds } return nil } //PACKET_WG_REBIND_SNID 1122 type WGRebindPlayerSnId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OldSnId int32 `protobuf:"varint,1,opt,name=OldSnId,proto3" json:"OldSnId,omitempty"` NewSnId int32 `protobuf:"varint,2,opt,name=NewSnId,proto3" json:"NewSnId,omitempty"` } func (x *WGRebindPlayerSnId) Reset() { *x = WGRebindPlayerSnId{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGRebindPlayerSnId) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGRebindPlayerSnId) ProtoMessage() {} func (x *WGRebindPlayerSnId) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGRebindPlayerSnId.ProtoReflect.Descriptor instead. func (*WGRebindPlayerSnId) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{49} } func (x *WGRebindPlayerSnId) GetOldSnId() int32 { if x != nil { return x.OldSnId } return 0 } func (x *WGRebindPlayerSnId) GetNewSnId() int32 { if x != nil { return x.NewSnId } return 0 } //PACKET_GW_PLAYERSTATE type GWPlayerFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` RoomId int32 `protobuf:"varint,2,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Flag int32 `protobuf:"varint,3,opt,name=Flag,proto3" json:"Flag,omitempty"` } func (x *GWPlayerFlag) Reset() { *x = GWPlayerFlag{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerFlag) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerFlag) ProtoMessage() {} func (x *GWPlayerFlag) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerFlag.ProtoReflect.Descriptor instead. func (*GWPlayerFlag) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{50} } func (x *GWPlayerFlag) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GWPlayerFlag) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWPlayerFlag) GetFlag() int32 { if x != nil { return x.Flag } return 0 } //玩家操作返回 //PACKET_WG_RECHARGE type WGHundredOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Snid int32 `protobuf:"varint,1,opt,name=snid,proto3" json:"snid,omitempty"` //玩家SNID OpCode int32 `protobuf:"varint,2,opt,name=OpCode,proto3" json:"OpCode,omitempty"` //操作码 Params []int64 `protobuf:"varint,3,rep,packed,name=Params,proto3" json:"Params,omitempty"` //操作参数 } func (x *WGHundredOp) Reset() { *x = WGHundredOp{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGHundredOp) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGHundredOp) ProtoMessage() {} func (x *WGHundredOp) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGHundredOp.ProtoReflect.Descriptor instead. func (*WGHundredOp) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{51} } func (x *WGHundredOp) GetSnid() int32 { if x != nil { return x.Snid } return 0 } func (x *WGHundredOp) GetOpCode() int32 { if x != nil { return x.OpCode } return 0 } func (x *WGHundredOp) GetParams() []int64 { if x != nil { return x.Params } return nil } //系统广播 type GWNewNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ch string `protobuf:"bytes,1,opt,name=ch,proto3" json:"ch,omitempty"` Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` Start int64 `protobuf:"varint,3,opt,name=start,proto3" json:"start,omitempty"` Interval int64 `protobuf:"varint,4,opt,name=interval,proto3" json:"interval,omitempty"` Count int64 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"` Msgtype int64 `protobuf:"varint,6,opt,name=msgtype,proto3" json:"msgtype,omitempty"` Platform string `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform,omitempty"` Priority int32 `protobuf:"varint,8,opt,name=priority,proto3" json:"priority,omitempty"` Isrob bool `protobuf:"varint,9,opt,name=isrob,proto3" json:"isrob,omitempty"` } func (x *GWNewNotice) Reset() { *x = GWNewNotice{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWNewNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWNewNotice) ProtoMessage() {} func (x *GWNewNotice) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWNewNotice.ProtoReflect.Descriptor instead. func (*GWNewNotice) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{52} } func (x *GWNewNotice) GetCh() string { if x != nil { return x.Ch } return "" } func (x *GWNewNotice) GetContent() string { if x != nil { return x.Content } return "" } func (x *GWNewNotice) GetStart() int64 { if x != nil { return x.Start } return 0 } func (x *GWNewNotice) GetInterval() int64 { if x != nil { return x.Interval } return 0 } func (x *GWNewNotice) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *GWNewNotice) GetMsgtype() int64 { if x != nil { return x.Msgtype } return 0 } func (x *GWNewNotice) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GWNewNotice) GetPriority() int32 { if x != nil { return x.Priority } return 0 } func (x *GWNewNotice) GetIsrob() bool { if x != nil { return x.Isrob } return false } type PlayerStatics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` GameTimes int64 `protobuf:"varint,2,opt,name=GameTimes,proto3" json:"GameTimes,omitempty"` TotalIn int64 `protobuf:"varint,3,opt,name=TotalIn,proto3" json:"TotalIn,omitempty"` TotalOut int64 `protobuf:"varint,4,opt,name=TotalOut,proto3" json:"TotalOut,omitempty"` IsFoolPlayer bool `protobuf:"varint,5,opt,name=IsFoolPlayer,proto3" json:"IsFoolPlayer,omitempty"` LoseGameTimes int64 `protobuf:"varint,6,opt,name=LoseGameTimes,proto3" json:"LoseGameTimes,omitempty"` WinGameTimes int64 `protobuf:"varint,7,opt,name=WinGameTimes,proto3" json:"WinGameTimes,omitempty"` TotalSysIn int64 `protobuf:"varint,8,opt,name=TotalSysIn,proto3" json:"TotalSysIn,omitempty"` TotalSysOut int64 `protobuf:"varint,9,opt,name=TotalSysOut,proto3" json:"TotalSysOut,omitempty"` } func (x *PlayerStatics) Reset() { *x = PlayerStatics{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerStatics) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerStatics) ProtoMessage() {} func (x *PlayerStatics) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerStatics.ProtoReflect.Descriptor instead. func (*PlayerStatics) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{53} } func (x *PlayerStatics) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerStatics) GetGameTimes() int64 { if x != nil { return x.GameTimes } return 0 } func (x *PlayerStatics) GetTotalIn() int64 { if x != nil { return x.TotalIn } return 0 } func (x *PlayerStatics) GetTotalOut() int64 { if x != nil { return x.TotalOut } return 0 } func (x *PlayerStatics) GetIsFoolPlayer() bool { if x != nil { return x.IsFoolPlayer } return false } func (x *PlayerStatics) GetLoseGameTimes() int64 { if x != nil { return x.LoseGameTimes } return 0 } func (x *PlayerStatics) GetWinGameTimes() int64 { if x != nil { return x.WinGameTimes } return 0 } func (x *PlayerStatics) GetTotalSysIn() int64 { if x != nil { return x.TotalSysIn } return 0 } func (x *PlayerStatics) GetTotalSysOut() int64 { if x != nil { return x.TotalSysOut } return 0 } type GWPlayerStatics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Datas []*PlayerStatics `protobuf:"bytes,2,rep,name=Datas,proto3" json:"Datas,omitempty"` ClubId int32 `protobuf:"varint,3,opt,name=ClubId,proto3" json:"ClubId,omitempty"` PumpTotalCoin int64 `protobuf:"varint,4,opt,name=PumpTotalCoin,proto3" json:"PumpTotalCoin,omitempty"` } func (x *GWPlayerStatics) Reset() { *x = GWPlayerStatics{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerStatics) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerStatics) ProtoMessage() {} func (x *GWPlayerStatics) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerStatics.ProtoReflect.Descriptor instead. func (*GWPlayerStatics) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{54} } func (x *GWPlayerStatics) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWPlayerStatics) GetDatas() []*PlayerStatics { if x != nil { return x.Datas } return nil } func (x *GWPlayerStatics) GetClubId() int32 { if x != nil { return x.ClubId } return 0 } func (x *GWPlayerStatics) GetPumpTotalCoin() int64 { if x != nil { return x.PumpTotalCoin } return 0 } type WGResetCoinPool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` ServerId int32 `protobuf:"varint,3,opt,name=ServerId,proto3" json:"ServerId,omitempty"` GroupId int32 `protobuf:"varint,4,opt,name=GroupId,proto3" json:"GroupId,omitempty"` PoolType int32 `protobuf:"varint,5,opt,name=PoolType,proto3" json:"PoolType,omitempty"` Value int64 `protobuf:"varint,6,opt,name=Value,proto3" json:"Value,omitempty"` } func (x *WGResetCoinPool) Reset() { *x = WGResetCoinPool{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGResetCoinPool) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGResetCoinPool) ProtoMessage() {} func (x *WGResetCoinPool) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGResetCoinPool.ProtoReflect.Descriptor instead. func (*WGResetCoinPool) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{55} } func (x *WGResetCoinPool) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WGResetCoinPool) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *WGResetCoinPool) GetServerId() int32 { if x != nil { return x.ServerId } return 0 } func (x *WGResetCoinPool) GetGroupId() int32 { if x != nil { return x.GroupId } return 0 } func (x *WGResetCoinPool) GetPoolType() int32 { if x != nil { return x.PoolType } return 0 } func (x *WGResetCoinPool) GetValue() int64 { if x != nil { return x.Value } return 0 } type WGSetPlayerBlackLevel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` SceneId int32 `protobuf:"varint,2,opt,name=SceneId,proto3" json:"SceneId,omitempty"` WBLevel int32 `protobuf:"varint,3,opt,name=WBLevel,proto3" json:"WBLevel,omitempty"` WBCoinLimit int64 `protobuf:"varint,4,opt,name=WBCoinLimit,proto3" json:"WBCoinLimit,omitempty"` ResetTotalCoin bool `protobuf:"varint,5,opt,name=ResetTotalCoin,proto3" json:"ResetTotalCoin,omitempty"` MaxNum int32 `protobuf:"varint,6,opt,name=MaxNum,proto3" json:"MaxNum,omitempty"` State int32 `protobuf:"varint,7,opt,name=State,proto3" json:"State,omitempty"` } func (x *WGSetPlayerBlackLevel) Reset() { *x = WGSetPlayerBlackLevel{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGSetPlayerBlackLevel) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGSetPlayerBlackLevel) ProtoMessage() {} func (x *WGSetPlayerBlackLevel) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGSetPlayerBlackLevel.ProtoReflect.Descriptor instead. func (*WGSetPlayerBlackLevel) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{56} } func (x *WGSetPlayerBlackLevel) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGSetPlayerBlackLevel) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGSetPlayerBlackLevel) GetWBLevel() int32 { if x != nil { return x.WBLevel } return 0 } func (x *WGSetPlayerBlackLevel) GetWBCoinLimit() int64 { if x != nil { return x.WBCoinLimit } return 0 } func (x *WGSetPlayerBlackLevel) GetResetTotalCoin() bool { if x != nil { return x.ResetTotalCoin } return false } func (x *WGSetPlayerBlackLevel) GetMaxNum() int32 { if x != nil { return x.MaxNum } return 0 } func (x *WGSetPlayerBlackLevel) GetState() int32 { if x != nil { return x.State } return 0 } type GWAutoRelieveWBLevel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` } func (x *GWAutoRelieveWBLevel) Reset() { *x = GWAutoRelieveWBLevel{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWAutoRelieveWBLevel) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWAutoRelieveWBLevel) ProtoMessage() {} func (x *GWAutoRelieveWBLevel) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWAutoRelieveWBLevel.ProtoReflect.Descriptor instead. func (*GWAutoRelieveWBLevel) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{57} } func (x *GWAutoRelieveWBLevel) GetSnId() int32 { if x != nil { return x.SnId } return 0 } //PACKET_GW_SCENEPLAYERLOG //通知world房间里都是谁跟谁打牌的,配桌用的数据 type GWScenePlayerLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` Snids []int32 `protobuf:"varint,3,rep,packed,name=Snids,proto3" json:"Snids,omitempty"` IsGameing []bool `protobuf:"varint,4,rep,packed,name=IsGameing,proto3" json:"IsGameing,omitempty"` } func (x *GWScenePlayerLog) Reset() { *x = GWScenePlayerLog{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWScenePlayerLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWScenePlayerLog) ProtoMessage() {} func (x *GWScenePlayerLog) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWScenePlayerLog.ProtoReflect.Descriptor instead. func (*GWScenePlayerLog) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{58} } func (x *GWScenePlayerLog) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GWScenePlayerLog) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GWScenePlayerLog) GetSnids() []int32 { if x != nil { return x.Snids } return nil } func (x *GWScenePlayerLog) GetIsGameing() []bool { if x != nil { return x.IsGameing } return nil } //PACKET_GW_PLAYERFORCELEAVE type GWPlayerForceLeave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` PlayerId int32 `protobuf:"varint,2,opt,name=PlayerId,proto3" json:"PlayerId,omitempty"` Reason int32 `protobuf:"varint,3,opt,name=Reason,proto3" json:"Reason,omitempty"` //原因: 0:主动离开 1:被踢出 2:游戏已经开始 EnterTs int64 `protobuf:"varint,4,opt,name=EnterTs,proto3" json:"EnterTs,omitempty"` //进场时时间 } func (x *GWPlayerForceLeave) Reset() { *x = GWPlayerForceLeave{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerForceLeave) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerForceLeave) ProtoMessage() {} func (x *GWPlayerForceLeave) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerForceLeave.ProtoReflect.Descriptor instead. func (*GWPlayerForceLeave) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{59} } func (x *GWPlayerForceLeave) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWPlayerForceLeave) GetPlayerId() int32 { if x != nil { return x.PlayerId } return 0 } func (x *GWPlayerForceLeave) GetReason() int32 { if x != nil { return x.Reason } return 0 } func (x *GWPlayerForceLeave) GetEnterTs() int64 { if x != nil { return x.EnterTs } return 0 } //PACKET_GW_PLAYERDATA type PlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家id Bet int64 `protobuf:"varint,2,opt,name=Bet,proto3" json:"Bet,omitempty"` // 下注额 Gain int64 `protobuf:"varint,3,opt,name=Gain,proto3" json:"Gain,omitempty"` // 输赢额,税后 Tax int64 `protobuf:"varint,4,opt,name=Tax,proto3" json:"Tax,omitempty"` // Gain的税收 Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` // 当前身上余额 GameCoinTs int64 `protobuf:"varint,6,opt,name=GameCoinTs,proto3" json:"GameCoinTs,omitempty"` // 最后帐变时间戳 WBGain int64 `protobuf:"varint,7,opt,name=WBGain,proto3" json:"WBGain,omitempty"` // 黑白名单输赢统计, 发送端可以忽略 WinState int32 `protobuf:"varint,8,opt,name=WinState,proto3" json:"WinState,omitempty"` // 1:赢 2:输 3:和, 用Gain区分不了输赢的游戏必传这个参数,否则可以忽略 } func (x *PlayerData) Reset() { *x = PlayerData{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerData) ProtoMessage() {} func (x *PlayerData) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerData.ProtoReflect.Descriptor instead. func (*PlayerData) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{60} } func (x *PlayerData) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerData) GetBet() int64 { if x != nil { return x.Bet } return 0 } func (x *PlayerData) GetGain() int64 { if x != nil { return x.Gain } return 0 } func (x *PlayerData) GetTax() int64 { if x != nil { return x.Tax } return 0 } func (x *PlayerData) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *PlayerData) GetGameCoinTs() int64 { if x != nil { return x.GameCoinTs } return 0 } func (x *PlayerData) GetWBGain() int64 { if x != nil { return x.WBGain } return 0 } func (x *PlayerData) GetWinState() int32 { if x != nil { return x.WinState } return 0 } type GWPlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Datas []*PlayerData `protobuf:"bytes,1,rep,name=Datas,proto3" json:"Datas,omitempty"` // 玩家数据 GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏场次id SceneId int32 `protobuf:"varint,4,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //房间id } func (x *GWPlayerData) Reset() { *x = GWPlayerData{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerData) ProtoMessage() {} func (x *GWPlayerData) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerData.ProtoReflect.Descriptor instead. func (*GWPlayerData) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{61} } func (x *GWPlayerData) GetDatas() []*PlayerData { if x != nil { return x.Datas } return nil } func (x *GWPlayerData) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GWPlayerData) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } //PACKET_GW_PLAYERWINSOCORE type PlayerWinScore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家id WinScore int64 `protobuf:"varint,3,opt,name=WinScore,proto3" json:"WinScore,omitempty"` //玩家输赢额,税后 Gain int64 `protobuf:"varint,4,opt,name=Gain,proto3" json:"Gain,omitempty"` //输赢额,税前 Tax int64 `protobuf:"varint,5,opt,name=Tax,proto3" json:"Tax,omitempty"` //税收 Lottery int64 `protobuf:"varint,6,opt,name=Lottery,proto3" json:"Lottery,omitempty"` //彩金池增加金额 Kind int32 `protobuf:"varint,7,opt,name=Kind,proto3" json:"Kind,omitempty"` //牌型 Card []int32 `protobuf:"varint,8,rep,packed,name=Card,proto3" json:"Card,omitempty"` //手牌 } func (x *PlayerWinScore) Reset() { *x = PlayerWinScore{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerWinScore) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerWinScore) ProtoMessage() {} func (x *PlayerWinScore) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerWinScore.ProtoReflect.Descriptor instead. func (*PlayerWinScore) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{62} } func (x *PlayerWinScore) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerWinScore) GetWinScore() int64 { if x != nil { return x.WinScore } return 0 } func (x *PlayerWinScore) GetGain() int64 { if x != nil { return x.Gain } return 0 } func (x *PlayerWinScore) GetTax() int64 { if x != nil { return x.Tax } return 0 } func (x *PlayerWinScore) GetLottery() int64 { if x != nil { return x.Lottery } return 0 } func (x *PlayerWinScore) GetKind() int32 { if x != nil { return x.Kind } return 0 } func (x *PlayerWinScore) GetCard() []int32 { if x != nil { return x.Card } return nil } type GWPlayerWinScore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏场次id PlayerWinScores []*PlayerWinScore `protobuf:"bytes,2,rep,name=PlayerWinScores,proto3" json:"PlayerWinScores,omitempty"` //玩家输赢数据 RobotGain int64 `protobuf:"varint,3,opt,name=RobotGain,proto3" json:"RobotGain,omitempty"` //机器人营收 机器人赢:正值 机器人输:负值 SceneId int32 `protobuf:"varint,4,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //房间id RecId string `protobuf:"bytes,5,opt,name=RecId,proto3" json:"RecId,omitempty"` //牌局id } func (x *GWPlayerWinScore) Reset() { *x = GWPlayerWinScore{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerWinScore) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerWinScore) ProtoMessage() {} func (x *GWPlayerWinScore) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerWinScore.ProtoReflect.Descriptor instead. func (*GWPlayerWinScore) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{63} } func (x *GWPlayerWinScore) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GWPlayerWinScore) GetPlayerWinScores() []*PlayerWinScore { if x != nil { return x.PlayerWinScores } return nil } func (x *GWPlayerWinScore) GetRobotGain() int64 { if x != nil { return x.RobotGain } return 0 } func (x *GWPlayerWinScore) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GWPlayerWinScore) GetRecId() string { if x != nil { return x.RecId } return "" } type WGPayerOnGameCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DTCount []int32 `protobuf:"varint,1,rep,packed,name=DTCount,proto3" json:"DTCount,omitempty"` } func (x *WGPayerOnGameCount) Reset() { *x = WGPayerOnGameCount{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPayerOnGameCount) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPayerOnGameCount) ProtoMessage() {} func (x *WGPayerOnGameCount) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPayerOnGameCount.ProtoReflect.Descriptor instead. func (*WGPayerOnGameCount) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{64} } func (x *WGPayerOnGameCount) GetDTCount() []int32 { if x != nil { return x.DTCount } return nil } type GRGameFreeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` DBGameFree *DB_GameFree `protobuf:"bytes,2,opt,name=DBGameFree,proto3" json:"DBGameFree,omitempty"` } func (x *GRGameFreeData) Reset() { *x = GRGameFreeData{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GRGameFreeData) String() string { return protoimpl.X.MessageStringOf(x) } func (*GRGameFreeData) ProtoMessage() {} func (x *GRGameFreeData) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GRGameFreeData.ProtoReflect.Descriptor instead. func (*GRGameFreeData) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{65} } func (x *GRGameFreeData) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GRGameFreeData) GetDBGameFree() *DB_GameFree { if x != nil { return x.DBGameFree } return nil } type WGSyncPlayerSafeBoxCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` SafeBoxCoin int64 `protobuf:"varint,2,opt,name=SafeBoxCoin,proto3" json:"SafeBoxCoin,omitempty"` } func (x *WGSyncPlayerSafeBoxCoin) Reset() { *x = WGSyncPlayerSafeBoxCoin{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGSyncPlayerSafeBoxCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGSyncPlayerSafeBoxCoin) ProtoMessage() {} func (x *WGSyncPlayerSafeBoxCoin) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGSyncPlayerSafeBoxCoin.ProtoReflect.Descriptor instead. func (*WGSyncPlayerSafeBoxCoin) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{66} } func (x *WGSyncPlayerSafeBoxCoin) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGSyncPlayerSafeBoxCoin) GetSafeBoxCoin() int64 { if x != nil { return x.SafeBoxCoin } return 0 } //PACKET_WG_CLUB_MESSAGE type WGClubMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ClubId int64 `protobuf:"varint,1,opt,name=ClubId,proto3" json:"ClubId,omitempty"` SceneIds []int32 `protobuf:"varint,2,rep,packed,name=SceneIds,proto3" json:"SceneIds,omitempty"` PumpCoin int64 `protobuf:"varint,3,opt,name=PumpCoin,proto3" json:"PumpCoin,omitempty"` DBGameFree *DB_GameFree `protobuf:"bytes,4,opt,name=DBGameFree,proto3" json:"DBGameFree,omitempty"` } func (x *WGClubMessage) Reset() { *x = WGClubMessage{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGClubMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGClubMessage) ProtoMessage() {} func (x *WGClubMessage) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGClubMessage.ProtoReflect.Descriptor instead. func (*WGClubMessage) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{67} } func (x *WGClubMessage) GetClubId() int64 { if x != nil { return x.ClubId } return 0 } func (x *WGClubMessage) GetSceneIds() []int32 { if x != nil { return x.SceneIds } return nil } func (x *WGClubMessage) GetPumpCoin() int64 { if x != nil { return x.PumpCoin } return 0 } func (x *WGClubMessage) GetDBGameFree() *DB_GameFree { if x != nil { return x.DBGameFree } return nil } //datasrv=>worldsrv用户在三方平台的流水信息 type DWThirdRebateMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tag uint64 `protobuf:"varint,1,opt,name=Tag,proto3" json:"Tag,omitempty"` Snid int32 `protobuf:"varint,2,opt,name=Snid,proto3" json:"Snid,omitempty"` AvailableBet int64 `protobuf:"varint,3,opt,name=AvailableBet,proto3" json:"AvailableBet,omitempty"` Third string `protobuf:"bytes,4,opt,name=Third,proto3" json:"Third,omitempty"` Plt int32 `protobuf:"varint,5,opt,name=Plt,proto3" json:"Plt,omitempty"` } func (x *DWThirdRebateMessage) Reset() { *x = DWThirdRebateMessage{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DWThirdRebateMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DWThirdRebateMessage) ProtoMessage() {} func (x *DWThirdRebateMessage) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DWThirdRebateMessage.ProtoReflect.Descriptor instead. func (*DWThirdRebateMessage) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{68} } func (x *DWThirdRebateMessage) GetTag() uint64 { if x != nil { return x.Tag } return 0 } func (x *DWThirdRebateMessage) GetSnid() int32 { if x != nil { return x.Snid } return 0 } func (x *DWThirdRebateMessage) GetAvailableBet() int64 { if x != nil { return x.AvailableBet } return 0 } func (x *DWThirdRebateMessage) GetThird() string { if x != nil { return x.Third } return "" } func (x *DWThirdRebateMessage) GetPlt() int32 { if x != nil { return x.Plt } return 0 } type DWThirdRoundMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tag uint64 `protobuf:"varint,1,opt,name=Tag,proto3" json:"Tag,omitempty"` Snid int32 `protobuf:"varint,2,opt,name=Snid,proto3" json:"Snid,omitempty"` Third string `protobuf:"bytes,3,opt,name=Third,proto3" json:"Third,omitempty"` InThirdGameid string `protobuf:"bytes,4,opt,name=InThirdGameid,proto3" json:"InThirdGameid,omitempty"` //在三方内的游戏ID InThirdGameName string `protobuf:"bytes,5,opt,name=InThirdGameName,proto3" json:"InThirdGameName,omitempty"` //在三方内的游戏名字,主要是FG来根据游戏名来区分 OneroundMaxwin int32 `protobuf:"varint,6,opt,name=OneroundMaxwin,proto3" json:"OneroundMaxwin,omitempty"` //在一个时间段内一局最大的盈利 AccRoundsInTime int32 `protobuf:"varint,7,opt,name=AccRoundsInTime,proto3" json:"AccRoundsInTime,omitempty"` //在一个时间段内累计局数 ProfitCoinInTime int32 `protobuf:"varint,8,opt,name=ProfitCoinInTime,proto3" json:"ProfitCoinInTime,omitempty"` //在一个时间段内盈利总额 BetCoinInTime int32 `protobuf:"varint,9,opt,name=BetCoinInTime,proto3" json:"BetCoinInTime,omitempty"` //在一个时间段内有效投注总额 FlowCoinInTime int32 `protobuf:"varint,10,opt,name=FlowCoinInTime,proto3" json:"FlowCoinInTime,omitempty"` //在一个时间段内流水总额 Platform int32 `protobuf:"varint,11,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台id } func (x *DWThirdRoundMessage) Reset() { *x = DWThirdRoundMessage{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DWThirdRoundMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DWThirdRoundMessage) ProtoMessage() {} func (x *DWThirdRoundMessage) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DWThirdRoundMessage.ProtoReflect.Descriptor instead. func (*DWThirdRoundMessage) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{69} } func (x *DWThirdRoundMessage) GetTag() uint64 { if x != nil { return x.Tag } return 0 } func (x *DWThirdRoundMessage) GetSnid() int32 { if x != nil { return x.Snid } return 0 } func (x *DWThirdRoundMessage) GetThird() string { if x != nil { return x.Third } return "" } func (x *DWThirdRoundMessage) GetInThirdGameid() string { if x != nil { return x.InThirdGameid } return "" } func (x *DWThirdRoundMessage) GetInThirdGameName() string { if x != nil { return x.InThirdGameName } return "" } func (x *DWThirdRoundMessage) GetOneroundMaxwin() int32 { if x != nil { return x.OneroundMaxwin } return 0 } func (x *DWThirdRoundMessage) GetAccRoundsInTime() int32 { if x != nil { return x.AccRoundsInTime } return 0 } func (x *DWThirdRoundMessage) GetProfitCoinInTime() int32 { if x != nil { return x.ProfitCoinInTime } return 0 } func (x *DWThirdRoundMessage) GetBetCoinInTime() int32 { if x != nil { return x.BetCoinInTime } return 0 } func (x *DWThirdRoundMessage) GetFlowCoinInTime() int32 { if x != nil { return x.FlowCoinInTime } return 0 } func (x *DWThirdRoundMessage) GetPlatform() int32 { if x != nil { return x.Platform } return 0 } //worldsrv=>datasrv确认信息 type WDACKThirdRebateMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tag uint64 `protobuf:"varint,1,opt,name=Tag,proto3" json:"Tag,omitempty"` Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` } func (x *WDACKThirdRebateMessage) Reset() { *x = WDACKThirdRebateMessage{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WDACKThirdRebateMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*WDACKThirdRebateMessage) ProtoMessage() {} func (x *WDACKThirdRebateMessage) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WDACKThirdRebateMessage.ProtoReflect.Descriptor instead. func (*WDACKThirdRebateMessage) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{70} } func (x *WDACKThirdRebateMessage) GetTag() uint64 { if x != nil { return x.Tag } return 0 } func (x *WDACKThirdRebateMessage) GetResult() int32 { if x != nil { return x.Result } return 0 } //PACKET_GW_GAMESTATELOG type GWGameStateLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` GameLog int32 `protobuf:"varint,2,opt,name=GameLog,proto3" json:"GameLog,omitempty"` LogCnt int32 `protobuf:"varint,3,opt,name=LogCnt,proto3" json:"LogCnt,omitempty"` } func (x *GWGameStateLog) Reset() { *x = GWGameStateLog{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWGameStateLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWGameStateLog) ProtoMessage() {} func (x *GWGameStateLog) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWGameStateLog.ProtoReflect.Descriptor instead. func (*GWGameStateLog) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{71} } func (x *GWGameStateLog) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GWGameStateLog) GetGameLog() int32 { if x != nil { return x.GameLog } return 0 } func (x *GWGameStateLog) GetLogCnt() int32 { if x != nil { return x.LogCnt } return 0 } //PACKET_GW_GAMESTATE type GWGameState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` State int32 `protobuf:"varint,2,opt,name=State,proto3" json:"State,omitempty"` Ts int64 `protobuf:"varint,3,opt,name=Ts,proto3" json:"Ts,omitempty"` Sec int32 `protobuf:"varint,4,opt,name=Sec,proto3" json:"Sec,omitempty"` BankerListNum int32 `protobuf:"varint,5,opt,name=BankerListNum,proto3" json:"BankerListNum,omitempty"` //当前上庄列表数量 } func (x *GWGameState) Reset() { *x = GWGameState{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWGameState) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWGameState) ProtoMessage() {} func (x *GWGameState) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWGameState.ProtoReflect.Descriptor instead. func (*GWGameState) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{72} } func (x *GWGameState) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GWGameState) GetState() int32 { if x != nil { return x.State } return 0 } func (x *GWGameState) GetTs() int64 { if x != nil { return x.Ts } return 0 } func (x *GWGameState) GetSec() int32 { if x != nil { return x.Sec } return 0 } func (x *GWGameState) GetBankerListNum() int32 { if x != nil { return x.BankerListNum } return 0 } //PACKET_GW_JACKPOTLIST type GWGameJackList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` RoomId int32 `protobuf:"varint,3,opt,name=RoomId,proto3" json:"RoomId,omitempty"` JackType int32 `protobuf:"varint,4,opt,name=JackType,proto3" json:"JackType,omitempty"` GameId int32 `protobuf:"varint,5,opt,name=GameId,proto3" json:"GameId,omitempty"` Platform string `protobuf:"bytes,6,opt,name=Platform,proto3" json:"Platform,omitempty"` Channel string `protobuf:"bytes,7,opt,name=Channel,proto3" json:"Channel,omitempty"` Name string `protobuf:"bytes,8,opt,name=Name,proto3" json:"Name,omitempty"` } func (x *GWGameJackList) Reset() { *x = GWGameJackList{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWGameJackList) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWGameJackList) ProtoMessage() {} func (x *GWGameJackList) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWGameJackList.ProtoReflect.Descriptor instead. func (*GWGameJackList) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{73} } func (x *GWGameJackList) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GWGameJackList) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *GWGameJackList) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWGameJackList) GetJackType() int32 { if x != nil { return x.JackType } return 0 } func (x *GWGameJackList) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GWGameJackList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GWGameJackList) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *GWGameJackList) GetName() string { if x != nil { return x.Name } return "" } //PACKET_GW_JACKPOTCOIN type GWGameJackCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform []string `protobuf:"bytes,1,rep,name=Platform,proto3" json:"Platform,omitempty"` Coin []int64 `protobuf:"varint,2,rep,packed,name=Coin,proto3" json:"Coin,omitempty"` } func (x *GWGameJackCoin) Reset() { *x = GWGameJackCoin{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWGameJackCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWGameJackCoin) ProtoMessage() {} func (x *GWGameJackCoin) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWGameJackCoin.ProtoReflect.Descriptor instead. func (*GWGameJackCoin) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{74} } func (x *GWGameJackCoin) GetPlatform() []string { if x != nil { return x.Platform } return nil } func (x *GWGameJackCoin) GetCoin() []int64 { if x != nil { return x.Coin } return nil } //PACKET_GW_NICEIDREBIND type WGNiceIdRebind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields User int32 `protobuf:"varint,1,opt,name=User,proto3" json:"User,omitempty"` NewId int32 `protobuf:"varint,2,opt,name=NewId,proto3" json:"NewId,omitempty"` } func (x *WGNiceIdRebind) Reset() { *x = WGNiceIdRebind{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGNiceIdRebind) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGNiceIdRebind) ProtoMessage() {} func (x *WGNiceIdRebind) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGNiceIdRebind.ProtoReflect.Descriptor instead. func (*WGNiceIdRebind) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{75} } func (x *WGNiceIdRebind) GetUser() int32 { if x != nil { return x.User } return 0 } func (x *WGNiceIdRebind) GetNewId() int32 { if x != nil { return x.NewId } return 0 } type PLAYERWINCOININFO struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` GameFreeID int32 `protobuf:"varint,2,opt,name=GameFreeID,proto3" json:"GameFreeID,omitempty"` WinCoin int32 `protobuf:"varint,3,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` } func (x *PLAYERWINCOININFO) Reset() { *x = PLAYERWINCOININFO{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PLAYERWINCOININFO) String() string { return protoimpl.X.MessageStringOf(x) } func (*PLAYERWINCOININFO) ProtoMessage() {} func (x *PLAYERWINCOININFO) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PLAYERWINCOININFO.ProtoReflect.Descriptor instead. func (*PLAYERWINCOININFO) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{76} } func (x *PLAYERWINCOININFO) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PLAYERWINCOININFO) GetGameFreeID() int32 { if x != nil { return x.GameFreeID } return 0 } func (x *PLAYERWINCOININFO) GetWinCoin() int32 { if x != nil { return x.WinCoin } return 0 } //PACKET_GW_PLAYERWINCOIN type GWPLAYERWINCOIN struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Player []*PLAYERWINCOININFO `protobuf:"bytes,1,rep,name=player,proto3" json:"player,omitempty"` } func (x *GWPLAYERWINCOIN) Reset() { *x = GWPLAYERWINCOIN{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPLAYERWINCOIN) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPLAYERWINCOIN) ProtoMessage() {} func (x *GWPLAYERWINCOIN) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPLAYERWINCOIN.ProtoReflect.Descriptor instead. func (*GWPLAYERWINCOIN) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{77} } func (x *GWPLAYERWINCOIN) GetPlayer() []*PLAYERWINCOININFO { if x != nil { return x.Player } return nil } //PACKET_GW_PLAYERAUTOMARKTAG type GWPlayerAutoMarkTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Tag int32 `protobuf:"varint,2,opt,name=Tag,proto3" json:"Tag,omitempty"` } func (x *GWPlayerAutoMarkTag) Reset() { *x = GWPlayerAutoMarkTag{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerAutoMarkTag) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerAutoMarkTag) ProtoMessage() {} func (x *GWPlayerAutoMarkTag) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerAutoMarkTag.ProtoReflect.Descriptor instead. func (*GWPlayerAutoMarkTag) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{78} } func (x *GWPlayerAutoMarkTag) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GWPlayerAutoMarkTag) GetTag() int32 { if x != nil { return x.Tag } return 0 } //PACKET_WG_INVITEROBENTERCOINSCENEQUEUE type WGInviteRobEnterCoinSceneQueue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` RobNum int32 `protobuf:"varint,3,opt,name=RobNum,proto3" json:"RobNum,omitempty"` } func (x *WGInviteRobEnterCoinSceneQueue) Reset() { *x = WGInviteRobEnterCoinSceneQueue{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGInviteRobEnterCoinSceneQueue) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGInviteRobEnterCoinSceneQueue) ProtoMessage() {} func (x *WGInviteRobEnterCoinSceneQueue) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGInviteRobEnterCoinSceneQueue.ProtoReflect.Descriptor instead. func (*WGInviteRobEnterCoinSceneQueue) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{79} } func (x *WGInviteRobEnterCoinSceneQueue) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WGInviteRobEnterCoinSceneQueue) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *WGInviteRobEnterCoinSceneQueue) GetRobNum() int32 { if x != nil { return x.RobNum } return 0 } //PACKET_WG_GAMEFORCESTART type WGGameForceStart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` } func (x *WGGameForceStart) Reset() { *x = WGGameForceStart{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGGameForceStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGGameForceStart) ProtoMessage() {} func (x *WGGameForceStart) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGGameForceStart.ProtoReflect.Descriptor instead. func (*WGGameForceStart) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{80} } func (x *WGGameForceStart) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } type ProfitControlGameCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameFreeId int32 `protobuf:"varint,1,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` AutoCorrectRate int32 `protobuf:"varint,2,opt,name=AutoCorrectRate,proto3" json:"AutoCorrectRate,omitempty"` ManualCorrectRate int32 `protobuf:"varint,3,opt,name=ManualCorrectRate,proto3" json:"ManualCorrectRate,omitempty"` UseManual bool `protobuf:"varint,4,opt,name=UseManual,proto3" json:"UseManual,omitempty"` DownPool bool `protobuf:"varint,5,opt,name=DownPool,proto3" json:"DownPool,omitempty"` //是否降低水池 } func (x *ProfitControlGameCfg) Reset() { *x = ProfitControlGameCfg{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProfitControlGameCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProfitControlGameCfg) ProtoMessage() {} func (x *ProfitControlGameCfg) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ProfitControlGameCfg.ProtoReflect.Descriptor instead. func (*ProfitControlGameCfg) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{81} } func (x *ProfitControlGameCfg) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *ProfitControlGameCfg) GetAutoCorrectRate() int32 { if x != nil { return x.AutoCorrectRate } return 0 } func (x *ProfitControlGameCfg) GetManualCorrectRate() int32 { if x != nil { return x.ManualCorrectRate } return 0 } func (x *ProfitControlGameCfg) GetUseManual() bool { if x != nil { return x.UseManual } return false } func (x *ProfitControlGameCfg) GetDownPool() bool { if x != nil { return x.DownPool } return false } type ProfitControlPlatformCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` GameCfg []*ProfitControlGameCfg `protobuf:"bytes,2,rep,name=GameCfg,proto3" json:"GameCfg,omitempty"` } func (x *ProfitControlPlatformCfg) Reset() { *x = ProfitControlPlatformCfg{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProfitControlPlatformCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProfitControlPlatformCfg) ProtoMessage() {} func (x *ProfitControlPlatformCfg) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ProfitControlPlatformCfg.ProtoReflect.Descriptor instead. func (*ProfitControlPlatformCfg) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{82} } func (x *ProfitControlPlatformCfg) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ProfitControlPlatformCfg) GetGameCfg() []*ProfitControlGameCfg { if x != nil { return x.GameCfg } return nil } //PACKET_WG_PROFITCONTROL_CORRECT type WGProfitControlCorrect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cfg []*ProfitControlPlatformCfg `protobuf:"bytes,1,rep,name=Cfg,proto3" json:"Cfg,omitempty"` } func (x *WGProfitControlCorrect) Reset() { *x = WGProfitControlCorrect{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGProfitControlCorrect) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGProfitControlCorrect) ProtoMessage() {} func (x *WGProfitControlCorrect) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGProfitControlCorrect.ProtoReflect.Descriptor instead. func (*WGProfitControlCorrect) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{83} } func (x *WGProfitControlCorrect) GetCfg() []*ProfitControlPlatformCfg { if x != nil { return x.Cfg } return nil } //PACKET_GW_CHANGESCENEEVENT type GWChangeSceneEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` } func (x *GWChangeSceneEvent) Reset() { *x = GWChangeSceneEvent{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWChangeSceneEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWChangeSceneEvent) ProtoMessage() {} func (x *GWChangeSceneEvent) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWChangeSceneEvent.ProtoReflect.Descriptor instead. func (*GWChangeSceneEvent) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{84} } func (x *GWChangeSceneEvent) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } type PlayerIParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ParamId int32 `protobuf:"varint,1,opt,name=ParamId,proto3" json:"ParamId,omitempty"` IntVal int64 `protobuf:"varint,2,opt,name=IntVal,proto3" json:"IntVal,omitempty"` } func (x *PlayerIParam) Reset() { *x = PlayerIParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerIParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerIParam) ProtoMessage() {} func (x *PlayerIParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerIParam.ProtoReflect.Descriptor instead. func (*PlayerIParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{85} } func (x *PlayerIParam) GetParamId() int32 { if x != nil { return x.ParamId } return 0 } func (x *PlayerIParam) GetIntVal() int64 { if x != nil { return x.IntVal } return 0 } type PlayerSParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ParamId int32 `protobuf:"varint,1,opt,name=ParamId,proto3" json:"ParamId,omitempty"` StrVal string `protobuf:"bytes,2,opt,name=StrVal,proto3" json:"StrVal,omitempty"` } func (x *PlayerSParam) Reset() { *x = PlayerSParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerSParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerSParam) ProtoMessage() {} func (x *PlayerSParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerSParam.ProtoReflect.Descriptor instead. func (*PlayerSParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{86} } func (x *PlayerSParam) GetParamId() int32 { if x != nil { return x.ParamId } return 0 } func (x *PlayerSParam) GetStrVal() string { if x != nil { return x.StrVal } return "" } type PlayerCParam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StrKey string `protobuf:"bytes,1,opt,name=StrKey,proto3" json:"StrKey,omitempty"` StrVal string `protobuf:"bytes,2,opt,name=StrVal,proto3" json:"StrVal,omitempty"` } func (x *PlayerCParam) Reset() { *x = PlayerCParam{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerCParam) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerCParam) ProtoMessage() {} func (x *PlayerCParam) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerCParam.ProtoReflect.Descriptor instead. func (*PlayerCParam) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{87} } func (x *PlayerCParam) GetStrKey() string { if x != nil { return x.StrKey } return "" } func (x *PlayerCParam) GetStrVal() string { if x != nil { return x.StrVal } return "" } type PlayerMatchCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Coin int32 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` } func (x *PlayerMatchCoin) Reset() { *x = PlayerMatchCoin{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerMatchCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerMatchCoin) ProtoMessage() {} func (x *PlayerMatchCoin) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerMatchCoin.ProtoReflect.Descriptor instead. func (*PlayerMatchCoin) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{88} } func (x *PlayerMatchCoin) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerMatchCoin) GetCoin() int32 { if x != nil { return x.Coin } return 0 } //PACKET_GW_PLAYERMATCHBILLED type GWPlayerMatchBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` MatchId int32 `protobuf:"varint,2,opt,name=MatchId,proto3" json:"MatchId,omitempty"` Players []*PlayerMatchCoin `protobuf:"bytes,3,rep,name=Players,proto3" json:"Players,omitempty"` WinPos int32 `protobuf:"varint,4,opt,name=WinPos,proto3" json:"WinPos,omitempty"` } func (x *GWPlayerMatchBilled) Reset() { *x = GWPlayerMatchBilled{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerMatchBilled) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerMatchBilled) ProtoMessage() {} func (x *GWPlayerMatchBilled) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerMatchBilled.ProtoReflect.Descriptor instead. func (*GWPlayerMatchBilled) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{89} } func (x *GWPlayerMatchBilled) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GWPlayerMatchBilled) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } func (x *GWPlayerMatchBilled) GetPlayers() []*PlayerMatchCoin { if x != nil { return x.Players } return nil } func (x *GWPlayerMatchBilled) GetWinPos() int32 { if x != nil { return x.WinPos } return 0 } //PACKET_GW_PLAYERMATCHGRADE type GWPlayerMatchGrade struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` MatchId int32 `protobuf:"varint,2,opt,name=MatchId,proto3" json:"MatchId,omitempty"` NumOfGame int32 `protobuf:"varint,3,opt,name=NumOfGame,proto3" json:"NumOfGame,omitempty"` SpendTime int32 `protobuf:"varint,4,opt,name=SpendTime,proto3" json:"SpendTime,omitempty"` GameLogId string `protobuf:"bytes,5,opt,name=GameLogId,proto3" json:"GameLogId,omitempty"` Players []*PlayerMatchCoin `protobuf:"bytes,6,rep,name=Players,proto3" json:"Players,omitempty"` } func (x *GWPlayerMatchGrade) Reset() { *x = GWPlayerMatchGrade{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerMatchGrade) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerMatchGrade) ProtoMessage() {} func (x *GWPlayerMatchGrade) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerMatchGrade.ProtoReflect.Descriptor instead. func (*GWPlayerMatchGrade) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{90} } func (x *GWPlayerMatchGrade) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GWPlayerMatchGrade) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } func (x *GWPlayerMatchGrade) GetNumOfGame() int32 { if x != nil { return x.NumOfGame } return 0 } func (x *GWPlayerMatchGrade) GetSpendTime() int32 { if x != nil { return x.SpendTime } return 0 } func (x *GWPlayerMatchGrade) GetGameLogId() string { if x != nil { return x.GameLogId } return "" } func (x *GWPlayerMatchGrade) GetPlayers() []*PlayerMatchCoin { if x != nil { return x.Players } return nil } //玩家退赛 //PACKET_WG_PLAYERQUITMATCH type WGPlayerQuitMatch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家ID SceneId int32 `protobuf:"varint,2,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //房间ID MatchId int32 `protobuf:"varint,3,opt,name=MatchId,proto3" json:"MatchId,omitempty"` //比赛ID } func (x *WGPlayerQuitMatch) Reset() { *x = WGPlayerQuitMatch{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerQuitMatch) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerQuitMatch) ProtoMessage() {} func (x *WGPlayerQuitMatch) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerQuitMatch.ProtoReflect.Descriptor instead. func (*WGPlayerQuitMatch) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{91} } func (x *WGPlayerQuitMatch) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGPlayerQuitMatch) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGPlayerQuitMatch) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } //比赛房间底分变化 //PACKET_WG_SCENEMATCHBASECHANGE type WGSceneMatchBaseChange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneIds []int32 `protobuf:"varint,1,rep,packed,name=SceneIds,proto3" json:"SceneIds,omitempty"` //房间ID BaseScore int32 `protobuf:"varint,2,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //当前底分 OutScore int32 `protobuf:"varint,3,opt,name=OutScore,proto3" json:"OutScore,omitempty"` //出局分数 RestNum int32 `protobuf:"varint,4,opt,name=RestNum,proto3" json:"RestNum,omitempty"` //剩余人数 NextTs int32 `protobuf:"varint,5,opt,name=NextTs,proto3" json:"NextTs,omitempty"` //下次刷新时间 } func (x *WGSceneMatchBaseChange) Reset() { *x = WGSceneMatchBaseChange{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGSceneMatchBaseChange) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGSceneMatchBaseChange) ProtoMessage() {} func (x *WGSceneMatchBaseChange) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGSceneMatchBaseChange.ProtoReflect.Descriptor instead. func (*WGSceneMatchBaseChange) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{92} } func (x *WGSceneMatchBaseChange) GetSceneIds() []int32 { if x != nil { return x.SceneIds } return nil } func (x *WGSceneMatchBaseChange) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *WGSceneMatchBaseChange) GetOutScore() int32 { if x != nil { return x.OutScore } return 0 } func (x *WGSceneMatchBaseChange) GetRestNum() int32 { if x != nil { return x.RestNum } return 0 } func (x *WGSceneMatchBaseChange) GetNextTs() int32 { if x != nil { return x.NextTs } return 0 } //PACKET_SS_REDIRECTTOPLAYER type SSRedirectToPlayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家id SceneId int32 `protobuf:"varint,2,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //场景id PacketId int32 `protobuf:"varint,3,opt,name=PacketId,proto3" json:"PacketId,omitempty"` //包id Data []byte `protobuf:"bytes,4,opt,name=Data,proto3" json:"Data,omitempty"` //包内容 } func (x *SSRedirectToPlayer) Reset() { *x = SSRedirectToPlayer{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SSRedirectToPlayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*SSRedirectToPlayer) ProtoMessage() {} func (x *SSRedirectToPlayer) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SSRedirectToPlayer.ProtoReflect.Descriptor instead. func (*SSRedirectToPlayer) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{93} } func (x *SSRedirectToPlayer) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *SSRedirectToPlayer) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *SSRedirectToPlayer) GetPacketId() int32 { if x != nil { return x.PacketId } return 0 } func (x *SSRedirectToPlayer) GetData() []byte { if x != nil { return x.Data } return nil } //PACKET_WG_INVITEMATCHROB type WGInviteMatchRob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` MatchId int32 `protobuf:"varint,2,opt,name=MatchId,proto3" json:"MatchId,omitempty"` RobNum int32 `protobuf:"varint,3,opt,name=RobNum,proto3" json:"RobNum,omitempty"` NeedAwait bool `protobuf:"varint,4,opt,name=NeedAwait,proto3" json:"NeedAwait,omitempty"` RoomId int32 `protobuf:"varint,5,opt,name=RoomId,proto3" json:"RoomId,omitempty"` } func (x *WGInviteMatchRob) Reset() { *x = WGInviteMatchRob{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGInviteMatchRob) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGInviteMatchRob) ProtoMessage() {} func (x *WGInviteMatchRob) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGInviteMatchRob.ProtoReflect.Descriptor instead. func (*WGInviteMatchRob) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{94} } func (x *WGInviteMatchRob) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WGInviteMatchRob) GetMatchId() int32 { if x != nil { return x.MatchId } return 0 } func (x *WGInviteMatchRob) GetRobNum() int32 { if x != nil { return x.RobNum } return 0 } func (x *WGInviteMatchRob) GetNeedAwait() bool { if x != nil { return x.NeedAwait } return false } func (x *WGInviteMatchRob) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } type GameInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏GameFeeId GameType int32 `protobuf:"varint,3,opt,name=GameType,proto3" json:"GameType,omitempty"` //游戏类型 } func (x *GameInfo) Reset() { *x = GameInfo{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameInfo) ProtoMessage() {} func (x *GameInfo) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GameInfo.ProtoReflect.Descriptor instead. func (*GameInfo) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{95} } func (x *GameInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GameInfo) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GameInfo) GetGameType() int32 { if x != nil { return x.GameType } return 0 } //PACKET_WG_GAMEJACKPOT type WGGameJackpot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` GateSid int64 `protobuf:"varint,2,opt,name=GateSid,proto3" json:"GateSid,omitempty"` Platform string `protobuf:"bytes,3,opt,name=Platform,proto3" json:"Platform,omitempty"` Info []*GameInfo `protobuf:"bytes,4,rep,name=Info,proto3" json:"Info,omitempty"` } func (x *WGGameJackpot) Reset() { *x = WGGameJackpot{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGGameJackpot) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGGameJackpot) ProtoMessage() {} func (x *WGGameJackpot) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGGameJackpot.ProtoReflect.Descriptor instead. func (*WGGameJackpot) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{96} } func (x *WGGameJackpot) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *WGGameJackpot) GetGateSid() int64 { if x != nil { return x.GateSid } return 0 } func (x *WGGameJackpot) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WGGameJackpot) GetInfo() []*GameInfo { if x != nil { return x.Info } return nil } // 大奖记录信息 type BigWinHistoryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SpinID string `protobuf:"bytes,1,opt,name=SpinID,proto3" json:"SpinID,omitempty"` // 操作id CreatedTime int64 `protobuf:"varint,2,opt,name=CreatedTime,proto3" json:"CreatedTime,omitempty"` // 时间 BaseBet int64 `protobuf:"varint,3,opt,name=BaseBet,proto3" json:"BaseBet,omitempty"` // 单条线下注(底注) PriceValue int64 `protobuf:"varint,4,opt,name=PriceValue,proto3" json:"PriceValue,omitempty"` // 大奖赢分 UserName string `protobuf:"bytes,5,opt,name=UserName,proto3" json:"UserName,omitempty"` // 昵称 IsVirtualData bool `protobuf:"varint,6,opt,name=IsVirtualData,proto3" json:"IsVirtualData,omitempty"` // 是否为虚拟数据 TotalBet int64 `protobuf:"varint,7,opt,name=TotalBet,proto3" json:"TotalBet,omitempty"` // 总下注 Cards []int32 `protobuf:"varint,8,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //牌型 } func (x *BigWinHistoryInfo) Reset() { *x = BigWinHistoryInfo{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BigWinHistoryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BigWinHistoryInfo) ProtoMessage() {} func (x *BigWinHistoryInfo) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BigWinHistoryInfo.ProtoReflect.Descriptor instead. func (*BigWinHistoryInfo) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{97} } func (x *BigWinHistoryInfo) GetSpinID() string { if x != nil { return x.SpinID } return "" } func (x *BigWinHistoryInfo) GetCreatedTime() int64 { if x != nil { return x.CreatedTime } return 0 } func (x *BigWinHistoryInfo) GetBaseBet() int64 { if x != nil { return x.BaseBet } return 0 } func (x *BigWinHistoryInfo) GetPriceValue() int64 { if x != nil { return x.PriceValue } return 0 } func (x *BigWinHistoryInfo) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *BigWinHistoryInfo) GetIsVirtualData() bool { if x != nil { return x.IsVirtualData } return false } func (x *BigWinHistoryInfo) GetTotalBet() int64 { if x != nil { return x.TotalBet } return 0 } func (x *BigWinHistoryInfo) GetCards() []int32 { if x != nil { return x.Cards } return nil } //PACKET_WG_PLAYERENTER_MINIGAME type WGPlayerEnterMiniGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` GateSid int64 `protobuf:"varint,2,opt,name=GateSid,proto3" json:"GateSid,omitempty"` SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` SceneId int32 `protobuf:"varint,4,opt,name=SceneId,proto3" json:"SceneId,omitempty"` PlayerData []byte `protobuf:"bytes,5,opt,name=PlayerData,proto3" json:"PlayerData,omitempty"` TakeCoin int64 `protobuf:"varint,6,opt,name=TakeCoin,proto3" json:"TakeCoin,omitempty"` //携带金币 IsQM bool `protobuf:"varint,7,opt,name=IsQM,proto3" json:"IsQM,omitempty"` //是否是全民推广用户 ExpectLeaveCoin int64 `protobuf:"varint,8,opt,name=ExpectLeaveCoin,proto3" json:"ExpectLeaveCoin,omitempty"` //期望离场时的金币[机器人用] ExpectGameTimes int32 `protobuf:"varint,9,opt,name=ExpectGameTimes,proto3" json:"ExpectGameTimes,omitempty"` //期望进行的游戏局数[机器人用] SingleAdjust []byte `protobuf:"bytes,10,opt,name=SingleAdjust,proto3" json:"SingleAdjust,omitempty"` //单控数据 } func (x *WGPlayerEnterMiniGame) Reset() { *x = WGPlayerEnterMiniGame{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerEnterMiniGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerEnterMiniGame) ProtoMessage() {} func (x *WGPlayerEnterMiniGame) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerEnterMiniGame.ProtoReflect.Descriptor instead. func (*WGPlayerEnterMiniGame) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{98} } func (x *WGPlayerEnterMiniGame) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *WGPlayerEnterMiniGame) GetGateSid() int64 { if x != nil { return x.GateSid } return 0 } func (x *WGPlayerEnterMiniGame) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGPlayerEnterMiniGame) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGPlayerEnterMiniGame) GetPlayerData() []byte { if x != nil { return x.PlayerData } return nil } func (x *WGPlayerEnterMiniGame) GetTakeCoin() int64 { if x != nil { return x.TakeCoin } return 0 } func (x *WGPlayerEnterMiniGame) GetIsQM() bool { if x != nil { return x.IsQM } return false } func (x *WGPlayerEnterMiniGame) GetExpectLeaveCoin() int64 { if x != nil { return x.ExpectLeaveCoin } return 0 } func (x *WGPlayerEnterMiniGame) GetExpectGameTimes() int32 { if x != nil { return x.ExpectGameTimes } return 0 } func (x *WGPlayerEnterMiniGame) GetSingleAdjust() []byte { if x != nil { return x.SingleAdjust } return nil } //PACKET_WG_PLAYERLEAVE_MINIGAME type WGPlayerLeaveMiniGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sid int64 `protobuf:"varint,1,opt,name=Sid,proto3" json:"Sid,omitempty"` GateSid int64 `protobuf:"varint,2,opt,name=GateSid,proto3" json:"GateSid,omitempty"` SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` SceneId int32 `protobuf:"varint,4,opt,name=SceneId,proto3" json:"SceneId,omitempty"` } func (x *WGPlayerLeaveMiniGame) Reset() { *x = WGPlayerLeaveMiniGame{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerLeaveMiniGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerLeaveMiniGame) ProtoMessage() {} func (x *WGPlayerLeaveMiniGame) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerLeaveMiniGame.ProtoReflect.Descriptor instead. func (*WGPlayerLeaveMiniGame) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{99} } func (x *WGPlayerLeaveMiniGame) GetSid() int64 { if x != nil { return x.Sid } return 0 } func (x *WGPlayerLeaveMiniGame) GetGateSid() int64 { if x != nil { return x.GateSid } return 0 } func (x *WGPlayerLeaveMiniGame) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGPlayerLeaveMiniGame) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } //PACKET_WG_PlayerLEAVE type WGPlayerLeave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` } func (x *WGPlayerLeave) Reset() { *x = WGPlayerLeave{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGPlayerLeave) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGPlayerLeave) ProtoMessage() {} func (x *WGPlayerLeave) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGPlayerLeave.ProtoReflect.Descriptor instead. func (*WGPlayerLeave) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{100} } func (x *WGPlayerLeave) GetSnId() int32 { if x != nil { return x.SnId } return 0 } //PACKET_GW_PLAYERLEAVE_MINIGAME type GWPlayerLeaveMiniGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` Reason int32 `protobuf:"varint,4,opt,name=Reason,proto3" json:"Reason,omitempty"` //原因: 0:主动离开 1:被踢出 2:游戏已经开始 PlayerData []byte `protobuf:"bytes,5,opt,name=PlayerData,proto3" json:"PlayerData,omitempty"` } func (x *GWPlayerLeaveMiniGame) Reset() { *x = GWPlayerLeaveMiniGame{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWPlayerLeaveMiniGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWPlayerLeaveMiniGame) ProtoMessage() {} func (x *GWPlayerLeaveMiniGame) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWPlayerLeaveMiniGame.ProtoReflect.Descriptor instead. func (*GWPlayerLeaveMiniGame) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{101} } func (x *GWPlayerLeaveMiniGame) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *GWPlayerLeaveMiniGame) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GWPlayerLeaveMiniGame) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GWPlayerLeaveMiniGame) GetReason() int32 { if x != nil { return x.Reason } return 0 } func (x *GWPlayerLeaveMiniGame) GetPlayerData() []byte { if x != nil { return x.PlayerData } return nil } //PACKET_GW_DESTROYMINISCENE type GWDestroyMiniScene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` } func (x *GWDestroyMiniScene) Reset() { *x = GWDestroyMiniScene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWDestroyMiniScene) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWDestroyMiniScene) ProtoMessage() {} func (x *GWDestroyMiniScene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWDestroyMiniScene.ProtoReflect.Descriptor instead. func (*GWDestroyMiniScene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{102} } func (x *GWDestroyMiniScene) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } //PACKET_GR_DESTROYSCENE type GRDestroyScene struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //场景id } func (x *GRDestroyScene) Reset() { *x = GRDestroyScene{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GRDestroyScene) String() string { return protoimpl.X.MessageStringOf(x) } func (*GRDestroyScene) ProtoMessage() {} func (x *GRDestroyScene) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GRDestroyScene.ProtoReflect.Descriptor instead. func (*GRDestroyScene) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{103} } func (x *GRDestroyScene) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } //失效的机器人账号 type RWAccountInvalid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Acc string `protobuf:"bytes,1,opt,name=Acc,proto3" json:"Acc,omitempty"` } func (x *RWAccountInvalid) Reset() { *x = RWAccountInvalid{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RWAccountInvalid) String() string { return protoimpl.X.MessageStringOf(x) } func (*RWAccountInvalid) ProtoMessage() {} func (x *RWAccountInvalid) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RWAccountInvalid.ProtoReflect.Descriptor instead. func (*RWAccountInvalid) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{104} } func (x *RWAccountInvalid) GetAcc() string { if x != nil { return x.Acc } return "" } //PACKET_WG_DTROOMINFO type WGDTRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataKey string `protobuf:"bytes,1,opt,name=DataKey,proto3" json:"DataKey,omitempty"` RoomId int32 `protobuf:"varint,2,opt,name=RoomId,proto3" json:"RoomId,omitempty"` } func (x *WGDTRoomInfo) Reset() { *x = WGDTRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGDTRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGDTRoomInfo) ProtoMessage() {} func (x *WGDTRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGDTRoomInfo.ProtoReflect.Descriptor instead. func (*WGDTRoomInfo) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{105} } func (x *WGDTRoomInfo) GetDataKey() string { if x != nil { return x.DataKey } return "" } func (x *WGDTRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } type PlayerDTCoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NickName string `protobuf:"bytes,1,opt,name=NickName,proto3" json:"NickName,omitempty"` Snid int32 `protobuf:"varint,2,opt,name=Snid,proto3" json:"Snid,omitempty"` DCoin int32 `protobuf:"varint,3,opt,name=DCoin,proto3" json:"DCoin,omitempty"` TCoin int32 `protobuf:"varint,4,opt,name=TCoin,proto3" json:"TCoin,omitempty"` NCoin int32 `protobuf:"varint,5,opt,name=NCoin,proto3" json:"NCoin,omitempty"` Totle int64 `protobuf:"varint,6,opt,name=Totle,proto3" json:"Totle,omitempty"` DDCoin int32 `protobuf:"varint,7,opt,name=DDCoin,proto3" json:"DDCoin,omitempty"` TDCoin int32 `protobuf:"varint,8,opt,name=TDCoin,proto3" json:"TDCoin,omitempty"` } func (x *PlayerDTCoin) Reset() { *x = PlayerDTCoin{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerDTCoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerDTCoin) ProtoMessage() {} func (x *PlayerDTCoin) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerDTCoin.ProtoReflect.Descriptor instead. func (*PlayerDTCoin) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{106} } func (x *PlayerDTCoin) GetNickName() string { if x != nil { return x.NickName } return "" } func (x *PlayerDTCoin) GetSnid() int32 { if x != nil { return x.Snid } return 0 } func (x *PlayerDTCoin) GetDCoin() int32 { if x != nil { return x.DCoin } return 0 } func (x *PlayerDTCoin) GetTCoin() int32 { if x != nil { return x.TCoin } return 0 } func (x *PlayerDTCoin) GetNCoin() int32 { if x != nil { return x.NCoin } return 0 } func (x *PlayerDTCoin) GetTotle() int64 { if x != nil { return x.Totle } return 0 } func (x *PlayerDTCoin) GetDDCoin() int32 { if x != nil { return x.DDCoin } return 0 } func (x *PlayerDTCoin) GetTDCoin() int32 { if x != nil { return x.TDCoin } return 0 } type EResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index string `protobuf:"bytes,1,opt,name=Index,proto3" json:"Index,omitempty"` Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` } func (x *EResult) Reset() { *x = EResult{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*EResult) ProtoMessage() {} func (x *EResult) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EResult.ProtoReflect.Descriptor instead. func (*EResult) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{107} } func (x *EResult) GetIndex() string { if x != nil { return x.Index } return "" } func (x *EResult) GetResult() int32 { if x != nil { return x.Result } return 0 } //PACKET_GW_DTROOMINFO type GWDTRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataKey string `protobuf:"bytes,1,opt,name=DataKey,proto3" json:"DataKey,omitempty"` RoomId int32 `protobuf:"varint,2,opt,name=RoomId,proto3" json:"RoomId,omitempty"` DCoin int32 `protobuf:"varint,3,opt,name=DCoin,proto3" json:"DCoin,omitempty"` TCoin int32 `protobuf:"varint,4,opt,name=TCoin,proto3" json:"TCoin,omitempty"` NCoin int32 `protobuf:"varint,5,opt,name=NCoin,proto3" json:"NCoin,omitempty"` Players []*PlayerDTCoin `protobuf:"bytes,6,rep,name=Players,proto3" json:"Players,omitempty"` Onlines int32 `protobuf:"varint,7,opt,name=Onlines,proto3" json:"Onlines,omitempty"` LeftTimes int32 `protobuf:"varint,8,opt,name=LeftTimes,proto3" json:"LeftTimes,omitempty"` CoinPool int64 `protobuf:"varint,9,opt,name=CoinPool,proto3" json:"CoinPool,omitempty"` NumOfGames int32 `protobuf:"varint,10,opt,name=NumOfGames,proto3" json:"NumOfGames,omitempty"` LoopNum int32 `protobuf:"varint,11,opt,name=LoopNum,proto3" json:"LoopNum,omitempty"` // 循环局数 Results []*EResult `protobuf:"bytes,12,rep,name=Results,proto3" json:"Results,omitempty"` // 结算控制 DDCoin int32 `protobuf:"varint,13,opt,name=DDCoin,proto3" json:"DDCoin,omitempty"` // 百家乐 闲对子 TDCoin int32 `protobuf:"varint,14,opt,name=TDCoin,proto3" json:"TDCoin,omitempty"` // 百家乐 庄对子 } func (x *GWDTRoomInfo) Reset() { *x = GWDTRoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWDTRoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWDTRoomInfo) ProtoMessage() {} func (x *GWDTRoomInfo) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWDTRoomInfo.ProtoReflect.Descriptor instead. func (*GWDTRoomInfo) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{108} } func (x *GWDTRoomInfo) GetDataKey() string { if x != nil { return x.DataKey } return "" } func (x *GWDTRoomInfo) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *GWDTRoomInfo) GetDCoin() int32 { if x != nil { return x.DCoin } return 0 } func (x *GWDTRoomInfo) GetTCoin() int32 { if x != nil { return x.TCoin } return 0 } func (x *GWDTRoomInfo) GetNCoin() int32 { if x != nil { return x.NCoin } return 0 } func (x *GWDTRoomInfo) GetPlayers() []*PlayerDTCoin { if x != nil { return x.Players } return nil } func (x *GWDTRoomInfo) GetOnlines() int32 { if x != nil { return x.Onlines } return 0 } func (x *GWDTRoomInfo) GetLeftTimes() int32 { if x != nil { return x.LeftTimes } return 0 } func (x *GWDTRoomInfo) GetCoinPool() int64 { if x != nil { return x.CoinPool } return 0 } func (x *GWDTRoomInfo) GetNumOfGames() int32 { if x != nil { return x.NumOfGames } return 0 } func (x *GWDTRoomInfo) GetLoopNum() int32 { if x != nil { return x.LoopNum } return 0 } func (x *GWDTRoomInfo) GetResults() []*EResult { if x != nil { return x.Results } return nil } func (x *GWDTRoomInfo) GetDDCoin() int32 { if x != nil { return x.DDCoin } return 0 } func (x *GWDTRoomInfo) GetTDCoin() int32 { if x != nil { return x.TDCoin } return 0 } //PACKET_WG_DTROOMRESULTS type WGRoomResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int32 `protobuf:"varint,1,opt,name=RoomId,proto3" json:"RoomId,omitempty"` Webuser string `protobuf:"bytes,2,opt,name=Webuser,proto3" json:"Webuser,omitempty"` Results string `protobuf:"bytes,3,opt,name=Results,proto3" json:"Results,omitempty"` DataKey string `protobuf:"bytes,4,opt,name=DataKey,proto3" json:"DataKey,omitempty"` } func (x *WGRoomResults) Reset() { *x = WGRoomResults{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGRoomResults) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGRoomResults) ProtoMessage() {} func (x *WGRoomResults) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGRoomResults.ProtoReflect.Descriptor instead. func (*WGRoomResults) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{109} } func (x *WGRoomResults) GetRoomId() int32 { if x != nil { return x.RoomId } return 0 } func (x *WGRoomResults) GetWebuser() string { if x != nil { return x.Webuser } return "" } func (x *WGRoomResults) GetResults() string { if x != nil { return x.Results } return "" } func (x *WGRoomResults) GetDataKey() string { if x != nil { return x.DataKey } return "" } //PACKET_GW_DTROOMRESULTS type GWRoomResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataKey string `protobuf:"bytes,1,opt,name=DataKey,proto3" json:"DataKey,omitempty"` Code int32 `protobuf:"varint,2,opt,name=Code,proto3" json:"Code,omitempty"` // 0 成功 1 重复设置 2 局数错误 3 未知错误 Msg string `protobuf:"bytes,3,opt,name=Msg,proto3" json:"Msg,omitempty"` // 描述信息 } func (x *GWRoomResults) Reset() { *x = GWRoomResults{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWRoomResults) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWRoomResults) ProtoMessage() {} func (x *GWRoomResults) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWRoomResults.ProtoReflect.Descriptor instead. func (*GWRoomResults) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{110} } func (x *GWRoomResults) GetDataKey() string { if x != nil { return x.DataKey } return "" } func (x *GWRoomResults) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *GWRoomResults) GetMsg() string { if x != nil { return x.Msg } return "" } //PACKET_GW_ADDSINGLEADJUST type GWAddSingleAdjust struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` GameFreeId int32 `protobuf:"varint,3,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` } func (x *GWAddSingleAdjust) Reset() { *x = GWAddSingleAdjust{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GWAddSingleAdjust) String() string { return protoimpl.X.MessageStringOf(x) } func (*GWAddSingleAdjust) ProtoMessage() {} func (x *GWAddSingleAdjust) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GWAddSingleAdjust.ProtoReflect.Descriptor instead. func (*GWAddSingleAdjust) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{111} } func (x *GWAddSingleAdjust) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *GWAddSingleAdjust) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GWAddSingleAdjust) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } //PACKET_WG_SINGLEADJUST type WGSingleAdjust struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SceneId int32 `protobuf:"varint,1,opt,name=SceneId,proto3" json:"SceneId,omitempty"` Option int32 `protobuf:"varint,2,opt,name=Option,proto3" json:"Option,omitempty"` PlayerSingleAdjust []byte `protobuf:"bytes,3,opt,name=PlayerSingleAdjust,proto3" json:"PlayerSingleAdjust,omitempty"` } func (x *WGSingleAdjust) Reset() { *x = WGSingleAdjust{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGSingleAdjust) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGSingleAdjust) ProtoMessage() {} func (x *WGSingleAdjust) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGSingleAdjust.ProtoReflect.Descriptor instead. func (*WGSingleAdjust) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{112} } func (x *WGSingleAdjust) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *WGSingleAdjust) GetOption() int32 { if x != nil { return x.Option } return 0 } func (x *WGSingleAdjust) GetPlayerSingleAdjust() []byte { if x != nil { return x.PlayerSingleAdjust } return nil } //PACKET_WG_WBCtrlCfg type WbCtrlCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` RealCtrl bool `protobuf:"varint,2,opt,name=RealCtrl,proto3" json:"RealCtrl,omitempty"` //人工调控 Novice bool `protobuf:"varint,3,opt,name=Novice,proto3" json:"Novice,omitempty"` //新手 Welfare bool `protobuf:"varint,4,opt,name=Welfare,proto3" json:"Welfare,omitempty"` //福利 KillPoints bool `protobuf:"varint,5,opt,name=KillPoints,proto3" json:"KillPoints,omitempty"` //杀分 GameIds []int32 `protobuf:"varint,6,rep,packed,name=GameIds,proto3" json:"GameIds,omitempty"` } func (x *WbCtrlCfg) Reset() { *x = WbCtrlCfg{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WbCtrlCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*WbCtrlCfg) ProtoMessage() {} func (x *WbCtrlCfg) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WbCtrlCfg.ProtoReflect.Descriptor instead. func (*WbCtrlCfg) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{113} } func (x *WbCtrlCfg) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WbCtrlCfg) GetRealCtrl() bool { if x != nil { return x.RealCtrl } return false } func (x *WbCtrlCfg) GetNovice() bool { if x != nil { return x.Novice } return false } func (x *WbCtrlCfg) GetWelfare() bool { if x != nil { return x.Welfare } return false } func (x *WbCtrlCfg) GetKillPoints() bool { if x != nil { return x.KillPoints } return false } func (x *WbCtrlCfg) GetGameIds() []int32 { if x != nil { return x.GameIds } return nil } //PACKET_WG_BUYRECTIMEITEM type WGBuyRecTimeItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` ExpireTime int64 `protobuf:"varint,2,opt,name=ExpireTime,proto3" json:"ExpireTime,omitempty"` Diamond int64 `protobuf:"varint,3,opt,name=Diamond,proto3" json:"Diamond,omitempty"` } func (x *WGBuyRecTimeItem) Reset() { *x = WGBuyRecTimeItem{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGBuyRecTimeItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGBuyRecTimeItem) ProtoMessage() {} func (x *WGBuyRecTimeItem) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGBuyRecTimeItem.ProtoReflect.Descriptor instead. func (*WGBuyRecTimeItem) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{114} } func (x *WGBuyRecTimeItem) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGBuyRecTimeItem) GetExpireTime() int64 { if x != nil { return x.ExpireTime } return 0 } func (x *WGBuyRecTimeItem) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } // PACKET_WG_UpdateSkin type WGUpdateSkin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 皮肤id } func (x *WGUpdateSkin) Reset() { *x = WGUpdateSkin{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WGUpdateSkin) String() string { return protoimpl.X.MessageStringOf(x) } func (*WGUpdateSkin) ProtoMessage() {} func (x *WGUpdateSkin) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WGUpdateSkin.ProtoReflect.Descriptor instead. func (*WGUpdateSkin) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{115} } func (x *WGUpdateSkin) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *WGUpdateSkin) GetId() int32 { if x != nil { return x.Id } return 0 } // PACKET_PlayerChangeItems type PlayerChangeItems struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` } func (x *PlayerChangeItems) Reset() { *x = PlayerChangeItems{} if protoimpl.UnsafeEnabled { mi := &file_server_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerChangeItems) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerChangeItems) ProtoMessage() {} func (x *PlayerChangeItems) ProtoReflect() protoreflect.Message { mi := &file_server_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PlayerChangeItems.ProtoReflect.Descriptor instead. func (*PlayerChangeItems) Descriptor() ([]byte, []int) { return file_server_proto_rawDescGZIP(), []int{116} } func (x *PlayerChangeItems) GetData() []byte { if x != nil { return x.Data } return nil } func (x *PlayerChangeItems) GetSnId() int32 { if x != nil { return x.SnId } return 0 } var File_server_proto protoreflect.FileDescriptor var file_server_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0x0c, 0x70, 0x62, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x47, 0x42, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x47, 0x42, 0x69, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x54, 0x61, 0x67, 0x73, 0x22, 0x28, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x44, 0x65, 0x6c, 0x10, 0x01, 0x22, 0x44, 0x0a, 0x14, 0x53, 0x53, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x54, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x22, 0x51, 0x0a, 0x0d, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x56, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x72, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x72, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x75, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x22, 0x43, 0x0a, 0x11, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x72, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x72, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x72, 0x76, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x72, 0x76, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x57, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x22, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x65, 0x78, 0x74, 0x22, 0x28, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0xed, 0x04, 0x0a, 0x0d, 0x57, 0x47, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x28, 0x0a, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3c, 0x0a, 0x0e, 0x57, 0x47, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x47, 0x72, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x47, 0x72, 0x61, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x0e, 0x47, 0x57, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x0a, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0xdd, 0x06, 0x0a, 0x0d, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6b, 0x0a, 0x0d, 0x57, 0x47, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x7a, 0x0a, 0x0e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x22, 0x91, 0x07, 0x0a, 0x0d, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x56, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x65, 0x6c, 0x56, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x75, 0x72, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x57, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x10, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x0e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x10, 0x47, 0x57, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x47, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x29, 0x0a, 0x15, 0x47, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0f, 0x57, 0x47, 0x44, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x42, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x73, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x22, 0x9c, 0x04, 0x0a, 0x0f, 0x47, 0x52, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x03, 0x52, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x52, 0x03, 0x52, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x73, 0x56, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x73, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, 0x0a, 0x57, 0x52, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x0c, 0x57, 0x52, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x40, 0x0a, 0x0c, 0x57, 0x52, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0b, 0x57, 0x54, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x09, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x0a, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x69, 0x73, 0x68, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x69, 0x73, 0x68, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x0c, 0x47, 0x57, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x44, 0x0a, 0x0c, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x57, 0x52, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x22, 0x40, 0x0a, 0x12, 0x57, 0x52, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x57, 0x47, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x57, 0x44, 0x44, 0x61, 0x74, 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x47, 0x4e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x6f, 0x77, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x6f, 0x77, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x5c, 0x0a, 0x0d, 0x47, 0x4e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x57, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x57, 0x47, 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x6c, 0x64, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x6c, 0x64, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x77, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x0c, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x51, 0x0a, 0x0b, 0x57, 0x47, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x4f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6e, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x47, 0x57, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x72, 0x6f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x72, 0x6f, 0x62, 0x22, 0xa7, 0x02, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x46, 0x6f, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x73, 0x46, 0x6f, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, 0x6f, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x73, 0x4f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x73, 0x4f, 0x75, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x6d, 0x70, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x50, 0x75, 0x6d, 0x70, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x57, 0x47, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x57, 0x47, 0x53, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x42, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x57, 0x42, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x57, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x10, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x08, 0x52, 0x09, 0x49, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x67, 0x22, 0x7a, 0x0a, 0x12, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x54, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x42, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x57, 0x42, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x72, 0x0a, 0x0c, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x54, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x63, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x12, 0x57, 0x47, 0x50, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x54, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x44, 0x54, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x0e, 0x47, 0x52, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, 0x4f, 0x0a, 0x17, 0x57, 0x47, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x0d, 0x57, 0x47, 0x43, 0x6c, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x75, 0x6d, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x50, 0x75, 0x6d, 0x70, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x44, 0x57, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6c, 0x74, 0x22, 0x89, 0x03, 0x0a, 0x13, 0x44, 0x57, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x6e, 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x77, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x6e, 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x77, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x43, 0x0a, 0x17, 0x57, 0x44, 0x41, 0x43, 0x4b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5c, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x22, 0xce, 0x01, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4a, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4a, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x0e, 0x57, 0x47, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x65, 0x77, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x65, 0x77, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x11, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x44, 0x0a, 0x0f, 0x47, 0x57, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x3b, 0x0a, 0x13, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x54, 0x61, 0x67, 0x22, 0x74, 0x0a, 0x1e, 0x57, 0x47, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x22, 0x2c, 0x0a, 0x10, 0x57, 0x47, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x55, 0x73, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x6e, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x36, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0x4c, 0x0a, 0x16, 0x57, 0x47, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x66, 0x67, 0x52, 0x03, 0x43, 0x66, 0x67, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x57, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x22, 0x40, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x22, 0x3e, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x22, 0x39, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x12, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x51, 0x75, 0x69, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x16, 0x57, 0x47, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x75, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x75, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x73, 0x22, 0x72, 0x0a, 0x12, 0x53, 0x53, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x57, 0x47, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7d, 0x0a, 0x0d, 0x57, 0x47, 0x47, 0x61, 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x24, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x11, 0x42, 0x69, 0x67, 0x57, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x70, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x70, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xb9, 0x02, 0x0a, 0x15, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x22, 0x71, 0x0a, 0x15, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x57, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x4d, 0x69, 0x6e, 0x69, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x47, 0x52, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x57, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x63, 0x22, 0x40, 0x0a, 0x0c, 0x57, 0x47, 0x44, 0x54, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x37, 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x9b, 0x03, 0x0a, 0x0c, 0x47, 0x57, 0x44, 0x54, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x75, 0x0a, 0x0d, 0x57, 0x47, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x57, 0x65, 0x62, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x22, 0x4f, 0x0a, 0x0d, 0x47, 0x57, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x63, 0x0a, 0x11, 0x47, 0x57, 0x41, 0x64, 0x64, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x0e, 0x57, 0x47, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x09, 0x57, 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x60, 0x0a, 0x10, 0x57, 0x47, 0x42, 0x75, 0x79, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x22, 0x32, 0x0a, 0x0c, 0x57, 0x47, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x2a, 0x83, 0x17, 0x0a, 0x0a, 0x53, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x42, 0x5f, 0x43, 0x55, 0x52, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0xe8, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x54, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xea, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x44, 0x49, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0xec, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x5f, 0x53, 0x52, 0x56, 0x43, 0x54, 0x52, 0x4c, 0x10, 0xed, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xf4, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x47, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x54, 0x41, 0x47, 0x10, 0xf5, 0x07, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x41, 0x47, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0xf6, 0x07, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xcd, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xce, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xcf, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xd0, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x52, 0x4f, 0x4f, 0x4d, 0x43, 0x41, 0x52, 0x44, 0x10, 0xd1, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xd2, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x52, 0x4f, 0x50, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0xd3, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0xd4, 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd5, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x55, 0x4e, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd6, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x10, 0xd7, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xd9, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xda, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xdb, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xdc, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x52, 0x4f, 0x42, 0x4f, 0x54, 0x10, 0xdd, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x4b, 0x49, 0x43, 0x4b, 0x4f, 0x55, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0xde, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0xdf, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x43, 0x4c, 0x55, 0x42, 0x42, 0x49, 0x4c, 0x4c, 0x4d, 0x4f, 0x4e, 0x45, 0x59, 0x10, 0xe1, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x4e, 0x49, 0x44, 0x10, 0xe2, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xe3, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0xe4, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xe5, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xe6, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x45, 0x4e, 0x44, 0x10, 0xe7, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x46, 0x49, 0x53, 0x48, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0xe8, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xe9, 0x08, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x53, 0x4f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0xea, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xeb, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x57, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xec, 0x08, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x44, 0x5f, 0x41, 0x43, 0x4b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xed, 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x57, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xee, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xef, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x10, 0xf0, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x10, 0xf1, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0xf2, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xf3, 0x08, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x57, 0x42, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x10, 0xf4, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, 0x41, 0x52, 0x44, 0x53, 0x10, 0xdc, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x52, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xdd, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4e, 0x45, 0x57, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xdf, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0xe0, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x4f, 0x49, 0x4e, 0x50, 0x4f, 0x4f, 0x4c, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0xe1, 0x0b, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x45, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0xe2, 0x0b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x56, 0x45, 0x57, 0x42, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0xe3, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0xe4, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x4f, 0x47, 0x10, 0xe5, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe6, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xea, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x52, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x0b, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xec, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x43, 0x4f, 0x49, 0x4e, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0xed, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x4c, 0x55, 0x42, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0xee, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4c, 0x4f, 0x47, 0x10, 0xef, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xf0, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xf1, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xf2, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4e, 0x49, 0x43, 0x45, 0x49, 0x44, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xf3, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xf4, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x52, 0x4b, 0x54, 0x41, 0x47, 0x10, 0xf5, 0x0b, 0x12, 0x2b, 0x0a, 0x26, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x52, 0x4f, 0x42, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x43, 0x4f, 0x49, 0x4e, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0xf6, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xf7, 0x0b, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x54, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x10, 0xf8, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0xf9, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x59, 0x10, 0xfa, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0xfb, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0xfc, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x51, 0x55, 0x49, 0x54, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0xfd, 0x0b, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x42, 0x41, 0x53, 0x45, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0xfe, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x54, 0x4f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0xff, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x52, 0x4f, 0x42, 0x10, 0x80, 0x0c, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x10, 0x83, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x85, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x86, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x87, 0x0c, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x4d, 0x49, 0x4e, 0x49, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0x88, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0x89, 0x0c, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x8a, 0x0c, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x8b, 0x0c, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x10, 0x8c, 0x0c, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x10, 0x8d, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x8e, 0x0c, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x44, 0x44, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x8f, 0x0c, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x42, 0x55, 0x59, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4d, 0x45, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x90, 0x0c, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x10, 0x91, 0x0c, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x10, 0x92, 0x0c, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_server_proto_rawDescOnce sync.Once file_server_proto_rawDescData = file_server_proto_rawDesc ) func file_server_proto_rawDescGZIP() []byte { file_server_proto_rawDescOnce.Do(func() { file_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_server_proto_rawDescData) }) return file_server_proto_rawDescData } var file_server_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_server_proto_msgTypes = make([]protoimpl.MessageInfo, 122) var file_server_proto_goTypes = []interface{}{ (SSPacketID)(0), // 0: server.SSPacketID (SGBindGroupTag_OpCode)(0), // 1: server.SGBindGroupTag.OpCode (*SGBindGroupTag)(nil), // 2: server.SGBindGroupTag (*SSCustomTagMulticast)(nil), // 3: server.SSCustomTagMulticast (*OpResultParam)(nil), // 4: server.OpResultParam (*ServerLoad)(nil), // 5: server.ServerLoad (*ServerStateSwitch)(nil), // 6: server.ServerStateSwitch (*ServerState)(nil), // 7: server.ServerState (*ServerCtrl)(nil), // 8: server.ServerCtrl (*ServerNotice)(nil), // 9: server.ServerNotice (*Item)(nil), // 10: server.Item (*CustomParam)(nil), // 11: server.CustomParam (*MatchParam)(nil), // 12: server.MatchParam (*WGCreateScene)(nil), // 13: server.WGCreateScene (*WGDestroyScene)(nil), // 14: server.WGDestroyScene (*GWDestroyScene)(nil), // 15: server.GWDestroyScene (*RebateTask)(nil), // 16: server.RebateTask (*WGPlayerEnter)(nil), // 17: server.WGPlayerEnter (*WGAudienceSit)(nil), // 18: server.WGAudienceSit (*WGPlayerReturn)(nil), // 19: server.WGPlayerReturn (*GWPlayerLeave)(nil), // 20: server.GWPlayerLeave (*WGPlayerDropLine)(nil), // 21: server.WGPlayerDropLine (*WGPlayerRehold)(nil), // 22: server.WGPlayerRehold (*GWBilledRoomCard)(nil), // 23: server.GWBilledRoomCard (*GGPlayerSessionBind)(nil), // 24: server.GGPlayerSessionBind (*GGPlayerSessionUnBind)(nil), // 25: server.GGPlayerSessionUnBind (*WGDayTimeChange)(nil), // 26: server.WGDayTimeChange (*ReplayPlayerData)(nil), // 27: server.ReplayPlayerData (*ReplayRecord)(nil), // 28: server.ReplayRecord (*ReplaySequene)(nil), // 29: server.ReplaySequene (*GRReplaySequene)(nil), // 30: server.GRReplaySequene (*WRLoginRec)(nil), // 31: server.WRLoginRec (*WRGameDetail)(nil), // 32: server.WRGameDetail (*WRPlayerData)(nil), // 33: server.WRPlayerData (*WTPlayerPay)(nil), // 34: server.WTPlayerPay (*PlayerGameRec)(nil), // 35: server.PlayerGameRec (*GWGameRec)(nil), // 36: server.GWGameRec (*GWSceneStart)(nil), // 37: server.GWSceneStart (*PlayerCtx)(nil), // 38: server.PlayerCtx (*FishRecord)(nil), // 39: server.FishRecord (*GWFishRecord)(nil), // 40: server.GWFishRecord (*GWSceneState)(nil), // 41: server.GWSceneState (*WRInviteRobot)(nil), // 42: server.WRInviteRobot (*WRInviteCreateRoom)(nil), // 43: server.WRInviteCreateRoom (*WGAgentKickOutPlayer)(nil), // 44: server.WGAgentKickOutPlayer (*WDDataAnalysis)(nil), // 45: server.WDDataAnalysis (*PlayerCard)(nil), // 46: server.PlayerCard (*GNPlayerCards)(nil), // 47: server.GNPlayerCards (*RobotData)(nil), // 48: server.RobotData (*GNPlayerParam)(nil), // 49: server.GNPlayerParam (*GWRebuildScene)(nil), // 50: server.GWRebuildScene (*WGRebindPlayerSnId)(nil), // 51: server.WGRebindPlayerSnId (*GWPlayerFlag)(nil), // 52: server.GWPlayerFlag (*WGHundredOp)(nil), // 53: server.WGHundredOp (*GWNewNotice)(nil), // 54: server.GWNewNotice (*PlayerStatics)(nil), // 55: server.PlayerStatics (*GWPlayerStatics)(nil), // 56: server.GWPlayerStatics (*WGResetCoinPool)(nil), // 57: server.WGResetCoinPool (*WGSetPlayerBlackLevel)(nil), // 58: server.WGSetPlayerBlackLevel (*GWAutoRelieveWBLevel)(nil), // 59: server.GWAutoRelieveWBLevel (*GWScenePlayerLog)(nil), // 60: server.GWScenePlayerLog (*GWPlayerForceLeave)(nil), // 61: server.GWPlayerForceLeave (*PlayerData)(nil), // 62: server.PlayerData (*GWPlayerData)(nil), // 63: server.GWPlayerData (*PlayerWinScore)(nil), // 64: server.PlayerWinScore (*GWPlayerWinScore)(nil), // 65: server.GWPlayerWinScore (*WGPayerOnGameCount)(nil), // 66: server.WGPayerOnGameCount (*GRGameFreeData)(nil), // 67: server.GRGameFreeData (*WGSyncPlayerSafeBoxCoin)(nil), // 68: server.WGSyncPlayerSafeBoxCoin (*WGClubMessage)(nil), // 69: server.WGClubMessage (*DWThirdRebateMessage)(nil), // 70: server.DWThirdRebateMessage (*DWThirdRoundMessage)(nil), // 71: server.DWThirdRoundMessage (*WDACKThirdRebateMessage)(nil), // 72: server.WDACKThirdRebateMessage (*GWGameStateLog)(nil), // 73: server.GWGameStateLog (*GWGameState)(nil), // 74: server.GWGameState (*GWGameJackList)(nil), // 75: server.GWGameJackList (*GWGameJackCoin)(nil), // 76: server.GWGameJackCoin (*WGNiceIdRebind)(nil), // 77: server.WGNiceIdRebind (*PLAYERWINCOININFO)(nil), // 78: server.PLAYERWINCOININFO (*GWPLAYERWINCOIN)(nil), // 79: server.GWPLAYERWINCOIN (*GWPlayerAutoMarkTag)(nil), // 80: server.GWPlayerAutoMarkTag (*WGInviteRobEnterCoinSceneQueue)(nil), // 81: server.WGInviteRobEnterCoinSceneQueue (*WGGameForceStart)(nil), // 82: server.WGGameForceStart (*ProfitControlGameCfg)(nil), // 83: server.ProfitControlGameCfg (*ProfitControlPlatformCfg)(nil), // 84: server.ProfitControlPlatformCfg (*WGProfitControlCorrect)(nil), // 85: server.WGProfitControlCorrect (*GWChangeSceneEvent)(nil), // 86: server.GWChangeSceneEvent (*PlayerIParam)(nil), // 87: server.PlayerIParam (*PlayerSParam)(nil), // 88: server.PlayerSParam (*PlayerCParam)(nil), // 89: server.PlayerCParam (*PlayerMatchCoin)(nil), // 90: server.PlayerMatchCoin (*GWPlayerMatchBilled)(nil), // 91: server.GWPlayerMatchBilled (*GWPlayerMatchGrade)(nil), // 92: server.GWPlayerMatchGrade (*WGPlayerQuitMatch)(nil), // 93: server.WGPlayerQuitMatch (*WGSceneMatchBaseChange)(nil), // 94: server.WGSceneMatchBaseChange (*SSRedirectToPlayer)(nil), // 95: server.SSRedirectToPlayer (*WGInviteMatchRob)(nil), // 96: server.WGInviteMatchRob (*GameInfo)(nil), // 97: server.GameInfo (*WGGameJackpot)(nil), // 98: server.WGGameJackpot (*BigWinHistoryInfo)(nil), // 99: server.BigWinHistoryInfo (*WGPlayerEnterMiniGame)(nil), // 100: server.WGPlayerEnterMiniGame (*WGPlayerLeaveMiniGame)(nil), // 101: server.WGPlayerLeaveMiniGame (*WGPlayerLeave)(nil), // 102: server.WGPlayerLeave (*GWPlayerLeaveMiniGame)(nil), // 103: server.GWPlayerLeaveMiniGame (*GWDestroyMiniScene)(nil), // 104: server.GWDestroyMiniScene (*GRDestroyScene)(nil), // 105: server.GRDestroyScene (*RWAccountInvalid)(nil), // 106: server.RWAccountInvalid (*WGDTRoomInfo)(nil), // 107: server.WGDTRoomInfo (*PlayerDTCoin)(nil), // 108: server.PlayerDTCoin (*EResult)(nil), // 109: server.EResult (*GWDTRoomInfo)(nil), // 110: server.GWDTRoomInfo (*WGRoomResults)(nil), // 111: server.WGRoomResults (*GWRoomResults)(nil), // 112: server.GWRoomResults (*GWAddSingleAdjust)(nil), // 113: server.GWAddSingleAdjust (*WGSingleAdjust)(nil), // 114: server.WGSingleAdjust (*WbCtrlCfg)(nil), // 115: server.WbCtrlCfg (*WGBuyRecTimeItem)(nil), // 116: server.WGBuyRecTimeItem (*WGUpdateSkin)(nil), // 117: server.WGUpdateSkin (*PlayerChangeItems)(nil), // 118: server.PlayerChangeItems nil, // 119: server.WGPlayerEnter.ItemsEntry nil, // 120: server.WGPlayerEnter.RankScoreEntry nil, // 121: server.GWPlayerLeave.ItemsEntry nil, // 122: server.GWPlayerLeave.MatchRobotGradesEntry nil, // 123: server.GWPlayerLeave.RankScoreEntry (*DB_GameFree)(nil), // 124: server.DB_GameFree } var file_server_proto_depIdxs = []int32{ 1, // 0: server.SGBindGroupTag.Code:type_name -> server.SGBindGroupTag.OpCode 4, // 1: server.ServerCtrl.Params:type_name -> server.OpResultParam 124, // 2: server.WGCreateScene.DBGameFree:type_name -> server.DB_GameFree 10, // 3: server.WGCreateScene.Items:type_name -> server.Item 10, // 4: server.WGCreateScene.CostItems:type_name -> server.Item 11, // 5: server.WGCreateScene.Custom:type_name -> server.CustomParam 12, // 6: server.WGCreateScene.Match:type_name -> server.MatchParam 87, // 7: server.WGPlayerEnter.IParams:type_name -> server.PlayerIParam 88, // 8: server.WGPlayerEnter.SParams:type_name -> server.PlayerSParam 89, // 9: server.WGPlayerEnter.CParams:type_name -> server.PlayerCParam 119, // 10: server.WGPlayerEnter.Items:type_name -> server.WGPlayerEnter.ItemsEntry 120, // 11: server.WGPlayerEnter.RankScore:type_name -> server.WGPlayerEnter.RankScoreEntry 121, // 12: server.GWPlayerLeave.Items:type_name -> server.GWPlayerLeave.ItemsEntry 122, // 13: server.GWPlayerLeave.MatchRobotGrades:type_name -> server.GWPlayerLeave.MatchRobotGradesEntry 123, // 14: server.GWPlayerLeave.RankScore:type_name -> server.GWPlayerLeave.RankScoreEntry 28, // 15: server.ReplaySequene.Sequenes:type_name -> server.ReplayRecord 29, // 16: server.GRReplaySequene.Rec:type_name -> server.ReplaySequene 27, // 17: server.GRReplaySequene.Datas:type_name -> server.ReplayPlayerData 35, // 18: server.GWGameRec.Datas:type_name -> server.PlayerGameRec 39, // 19: server.GWFishRecord.FishRecords:type_name -> server.FishRecord 46, // 20: server.GNPlayerCards.PlayerCards:type_name -> server.PlayerCard 48, // 21: server.GNPlayerParam.Playerdata:type_name -> server.RobotData 55, // 22: server.GWPlayerStatics.Datas:type_name -> server.PlayerStatics 62, // 23: server.GWPlayerData.Datas:type_name -> server.PlayerData 64, // 24: server.GWPlayerWinScore.PlayerWinScores:type_name -> server.PlayerWinScore 124, // 25: server.GRGameFreeData.DBGameFree:type_name -> server.DB_GameFree 124, // 26: server.WGClubMessage.DBGameFree:type_name -> server.DB_GameFree 78, // 27: server.GWPLAYERWINCOIN.player:type_name -> server.PLAYERWINCOININFO 83, // 28: server.ProfitControlPlatformCfg.GameCfg:type_name -> server.ProfitControlGameCfg 84, // 29: server.WGProfitControlCorrect.Cfg:type_name -> server.ProfitControlPlatformCfg 90, // 30: server.GWPlayerMatchBilled.Players:type_name -> server.PlayerMatchCoin 90, // 31: server.GWPlayerMatchGrade.Players:type_name -> server.PlayerMatchCoin 97, // 32: server.WGGameJackpot.Info:type_name -> server.GameInfo 108, // 33: server.GWDTRoomInfo.Players:type_name -> server.PlayerDTCoin 109, // 34: server.GWDTRoomInfo.Results:type_name -> server.EResult 35, // [35:35] is the sub-list for method output_type 35, // [35:35] is the sub-list for method input_type 35, // [35:35] is the sub-list for extension type_name 35, // [35:35] is the sub-list for extension extendee 0, // [0:35] is the sub-list for field type_name } func init() { file_server_proto_init() } func file_server_proto_init() { if File_server_proto != nil { return } file_pbdata_proto_init() if !protoimpl.UnsafeEnabled { file_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SGBindGroupTag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SSCustomTagMulticast); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OpResultParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerLoad); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerStateSwitch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerCtrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Item); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGCreateScene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGDestroyScene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWDestroyScene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RebateTask); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerEnter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGAudienceSit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerReturn); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerLeave); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerDropLine); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerRehold); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWBilledRoomCard); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GGPlayerSessionBind); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GGPlayerSessionUnBind); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGDayTimeChange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplayPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplayRecord); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplaySequene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GRReplaySequene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRLoginRec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRGameDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WTPlayerPay); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerGameRec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWGameRec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWSceneStart); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerCtx); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FishRecord); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWFishRecord); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWSceneState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRInviteRobot); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WRInviteCreateRoom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGAgentKickOutPlayer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WDDataAnalysis); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerCard); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNPlayerCards); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RobotData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNPlayerParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWRebuildScene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGRebindPlayerSnId); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerFlag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGHundredOp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWNewNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerStatics); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerStatics); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGResetCoinPool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGSetPlayerBlackLevel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWAutoRelieveWBLevel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWScenePlayerLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerForceLeave); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerWinScore); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerWinScore); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPayerOnGameCount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GRGameFreeData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGSyncPlayerSafeBoxCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGClubMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DWThirdRebateMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DWThirdRoundMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WDACKThirdRebateMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWGameStateLog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWGameState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWGameJackList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWGameJackCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGNiceIdRebind); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PLAYERWINCOININFO); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPLAYERWINCOIN); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerAutoMarkTag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGInviteRobEnterCoinSceneQueue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGGameForceStart); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProfitControlGameCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProfitControlPlatformCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGProfitControlCorrect); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWChangeSceneEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerIParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerSParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerCParam); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerMatchCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerMatchBilled); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerMatchGrade); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerQuitMatch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGSceneMatchBaseChange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SSRedirectToPlayer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGInviteMatchRob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGGameJackpot); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BigWinHistoryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerEnterMiniGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerLeaveMiniGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGPlayerLeave); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWPlayerLeaveMiniGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWDestroyMiniScene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GRDestroyScene); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RWAccountInvalid); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGDTRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerDTCoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWDTRoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGRoomResults); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWRoomResults); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GWAddSingleAdjust); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGSingleAdjust); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WbCtrlCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGBuyRecTimeItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WGUpdateSkin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_server_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerChangeItems); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_server_proto_rawDesc, NumEnums: 2, NumMessages: 122, NumExtensions: 0, NumServices: 0, }, GoTypes: file_server_proto_goTypes, DependencyIndexes: file_server_proto_depIdxs, EnumInfos: file_server_proto_enumTypes, MessageInfos: file_server_proto_msgTypes, }.Build() File_server_proto = out.File file_server_proto_rawDesc = nil file_server_proto_goTypes = nil file_server_proto_depIdxs = nil }