diff --git a/src/server/GoUtil/GoUtil.go b/src/server/GoUtil/GoUtil.go index c94d5176..6fa932d3 100644 --- a/src/server/GoUtil/GoUtil.go +++ b/src/server/GoUtil/GoUtil.go @@ -3,6 +3,7 @@ package GoUtil import ( "bytes" "encoding/gob" + "fmt" "math/rand" "reflect" "strconv" @@ -177,3 +178,8 @@ func RandString(n int) string { } return string(b) } + +// 生成索要卡牌唯一id +func CreateCardId(From, To, CardId int) string { + return fmt.Sprintf("%d_%d_%d_%d_%s", From, To, CardId, Now(), RandString(3)) +} diff --git a/src/server/conf/champship/ChampshipCfg.go b/src/server/conf/champship/ChampshipCfg.go index 1c24b5af..b54fb7a0 100644 --- a/src/server/conf/champship/ChampshipCfg.go +++ b/src/server/conf/champship/ChampshipCfg.go @@ -10,12 +10,27 @@ const ( CFG_CHAMPSHIP_SCORE = "ChampshipScore" CFG_CHAMPSHIP_RANK = "ChampshipRank" CFG_CHAMPSHIP_JACKPOT = "ChampshipJackpot" + CFG_CHAMPSHIP_GROUP = "ChampshipGroup" ) func init() { gamedata.InitCfg(CFG_CHAMPSHIP_SCORE) gamedata.InitCfg(CFG_CHAMPSHIP_RANK) gamedata.InitCfg(CFG_CHAMPSHIP_JACKPOT) + gamedata.InitCfg(CFG_CHAMPSHIP_GROUP) +} + +func GetGroupId(N int) int { + data, err := gamedata.GetData(CFG_CHAMPSHIP_GROUP) + if err != nil { + return 0 + } + for k, v := range data { + if N >= gamedata.GetIntValue(v, "Min") && N <= gamedata.GetIntValue(v, "Max") { + return GoUtil.Int(k) + } + } + return 0 } func GetChessScore(ChessLv int) int { @@ -45,3 +60,16 @@ func GetReward(Reward, Score int) (int, []*item.Item) { } return Reward, r } + +func GetRankReward(Rank int) []*item.Item { + data, err := gamedata.GetData(CFG_CHAMPSHIP_RANK) + if err != nil { + return nil + } + for _, v := range data { + if Rank >= gamedata.GetIntValue(v, "Min") && Rank <= gamedata.GetIntValue(v, "Max") { + return item.ParseItem(gamedata.GetStringValue(v, "Items")) + } + } + return nil +} diff --git a/src/server/game/ChampshipMgr.go b/src/server/game/ChampshipMgr.go new file mode 100644 index 00000000..a624b92b --- /dev/null +++ b/src/server/game/ChampshipMgr.go @@ -0,0 +1,422 @@ +package game + +import ( + "server/GoUtil" + champshipCfg "server/conf/champship" + "server/game/mod/msg" + "sort" + "time" +) + +const ( + RANK_PLAYER_ROBOT = 2 +) + +type ChampshipMgr struct { + *ServerMod +} + +type ChampshipData struct { + AutoId int + RobotId int + Rank map[int][]*ChampshipRank // 锦标赛排行榜 + Last map[int][]*ChampshipRank // 锦标赛排行榜 备份 + Pool map[int]*GroupInfo // 锦标赛未分配玩家 + GroupInfo map[int]int // 锦标赛分组信息 + Robot map[int]*ChampshipRobot // 机器人 +} + +type ChampshipRank struct { + Uid int + Score float64 + Time int64 + Type int +} + +type ChampshipRobot struct { + Max float64 + Type int + Name string + Avatar int + Face int + Level int + GroupId int + Time int64 + Score float64 +} + +type GroupInfo struct { + Uid int + Score float64 + Time int64 + N int + H int +} + +type CRank struct { + Uid int + Score float64 + N int + H int +} + +func (c *ChampshipMgr) Init() { + c.key = CHAMPSHIP_MGR_KEY + c.data = &ChampshipData{ + Rank: make(map[int][]*ChampshipRank, 0), + Last: make(map[int][]*ChampshipRank, 0), + Pool: make(map[int]*GroupInfo, 0), + Robot: make(map[int]*ChampshipRobot, 0), + } + // 注册处理函数 + c.init() + c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_GROUP, c.group) + c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, c.inRank) + Now := GoUtil.Now() + ZeroTime := GoUtil.ZeroTimestamp() + Remain := max(Now-ZeroTime, 3000) + Remain1 := 1800 - Remain%1800 + + c.mDispatr.AfterFunc(time.Duration(Remain1), func() { + c.Send(&msg.Msg{ + Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP, + }) + }) +} + +func (c *ChampshipMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { + c.getData().Last = c.getData().Rank + c.getData().Rank = make(map[int][]*ChampshipRank, 0) + c.update = true + return nil, nil +} + +// 分组 +func (c *ChampshipMgr) group(m *msg.Msg) (interface{}, error) { + ChampshipData := c.getData() + g := make(map[int][]int, 0) + for k, v := range ChampshipData.Pool { + x := 0 + n := champshipCfg.GetGroupId(v.N) + h := champshipCfg.GetGroupId(v.H) + if n < h { + x = min(max(n-1, h-2), 1) + } else { + x = n + } + _, ok := g[x] + if !ok { + g[x] = make([]int, 0) + } + g[x] = append(g[x], k) + } + + for i := 11; i > 0; i-- { + if len(g[i]) == 0 { + continue + } + if len(g[i]) < 10 && i > 1 { + g[i-1] = append(g[i-1], g[i]...) + } + ChampshipData.AutoId++ + StartId := ChampshipData.AutoId + for j := 0; j < len(g[i]); j++ { + ChampshipData.GroupInfo[g[i][j]] = ChampshipData.AutoId + UserData := ChampshipData.Pool[g[i][j]] + ChampshipData.Rank[ChampshipData.AutoId] = append(ChampshipData.Rank[ChampshipData.AutoId], &ChampshipRank{ + Uid: UserData.Uid, + Score: UserData.Score, + Time: UserData.Time, + }) + sort.Slice(ChampshipData.Rank[ChampshipData.AutoId], func(i, j int) bool { // 排序 从大到小 数值相等按时间排序 + if ChampshipData.Rank[ChampshipData.AutoId][i].Score > ChampshipData.Rank[ChampshipData.AutoId][j].Score { + return true + } else if ChampshipData.Rank[ChampshipData.AutoId][i].Score == ChampshipData.Rank[ChampshipData.AutoId][j].Score { + return ChampshipData.Rank[ChampshipData.AutoId][i].Time < ChampshipData.Rank[ChampshipData.AutoId][j].Time + } + return false + }) + if (j+1)/10 == 0 { + ChampshipData.AutoId++ + } + } + for j := StartId; j <= ChampshipData.AutoId; j++ { + RobotNum := 30 - len(ChampshipData.Rank[j]) + RobotList := CreateRobotList(i, RobotNum, j) + for _, v := range RobotList { + ChampshipData.Robot[ChampshipData.RobotId] = v + ChampshipData.Rank[ChampshipData.AutoId] = append(ChampshipData.Rank[ChampshipData.AutoId], &ChampshipRank{ + Uid: ChampshipData.RobotId, + Score: v.Score, + Time: v.Time, + Type: RANK_PLAYER_ROBOT, + }) + sort.Slice(ChampshipData.Rank[ChampshipData.AutoId], func(i, j int) bool { // 排序 从大到小 数值相等按时间排序 + if ChampshipData.Rank[ChampshipData.AutoId][i].Score > ChampshipData.Rank[ChampshipData.AutoId][j].Score { + return true + } else if ChampshipData.Rank[ChampshipData.AutoId][i].Score == ChampshipData.Rank[ChampshipData.AutoId][j].Score { + return ChampshipData.Rank[ChampshipData.AutoId][i].Time < ChampshipData.Rank[ChampshipData.AutoId][j].Time + } + return false + }) + ChampshipData.RobotId++ + } + } + } + T := time.Now() + H := T.Hour() + if H != 0 { + c.mDispatr.AfterFunc(time.Duration(1800), func() { + c.Send(&msg.Msg{ + Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP, + }) + }) + } + return nil, nil +} + +func (c *ChampshipMgr) getGroupId(Uid int) int { + ChampshipData := c.getData() + GroupId, ok := ChampshipData.GroupInfo[Uid] + if ok { + return GroupId + } + return 0 +} + +// 进去榜单 +func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) { + ChampshipData := c.getData() + data := m.Extra.(CRank) + GroupId := c.getGroupId(data.Uid) + if GroupId == 0 { + ChampshipData.Pool[data.Uid] = &GroupInfo{ + Uid: data.Uid, + Score: data.Score, + Time: GoUtil.Now(), + N: data.N, + H: data.H, + } + return nil, nil + } + _, ok := ChampshipData.Rank[GroupId] + if !ok { + ChampshipData.Rank[GroupId] = make([]*ChampshipRank, 0) + } + ChampshipData.Rank[GroupId] = append(ChampshipData.Rank[GroupId], &ChampshipRank{ + Uid: data.Uid, + Score: data.Score, + Time: GoUtil.Now(), + }) + sort.Slice(ChampshipData.Rank[GroupId], func(i, j int) bool { // 排序 从大到小 数值相等按时间排序 + if ChampshipData.Rank[GroupId][i].Score > ChampshipData.Rank[GroupId][j].Score { + return true + } else if ChampshipData.Rank[GroupId][i].Score == ChampshipData.Rank[GroupId][j].Score { + return ChampshipData.Rank[GroupId][i].Time < ChampshipData.Rank[GroupId][j].Time + } + return false + }) + return nil, nil +} + +func (c *ChampshipMgr) getData() *ChampshipData { + return c.data.(*ChampshipData) +} + +func CreateRobotList(G, Num, GroupId int) []*ChampshipRobot { + r := make([]*ChampshipRobot, 0) + switch G { + case 1: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + for i := 0; i <= 6; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + for i := 0; i <= 5; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= Num-15; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 2: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + for i := 0; i <= 6; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + n := Num - 10 + x := n / 2 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= n-x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 3: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + for i := 0; i <= 6; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + n := Num - 10 + x := n / 3 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= n-x*2; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 4: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + + n := Num - 4 + x := n / 4 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= n-x*3; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 5: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + + n := Num - 3 + x := n / 5 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= n-x*4; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 6: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + + n := Num - 2 + x := n / 6 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= Num-len(r); i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 7: + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + n := Num - 1 + x := n / 7 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= Num-len(r); i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + case 8, 9, 10, 11: + M10 := GoUtil.RandMap(map[int]int{0: 98, 1: 2}) + if M10 == 1 { + r = append(r, CreateRobot(float64(GoUtil.RandNum(35131, 64980)), GroupId)) + } + x := Num / 8 + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + } + for i := 0; i <= x; i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + } + for i := 0; i <= Num-len(r); i++ { + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + } + + } + return r +} + +func CreateRobot(M float64, GroupId int) *ChampshipRobot { + Type := GoUtil.RandMap(map[int]int{1: 25, 2: 50, 3: 25}) + Score := M / 10 + if Type == 2 { + Score = M / 10 * 0.66 + } + + return &ChampshipRobot{ + Max: M, + Type: Type, + Name: "Lily", + Avatar: 1, + Face: 1, + Level: 1, + GroupId: GroupId, + Time: GoUtil.Now(), + Score: Score, + } +} diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index 91b4e26b..b0f47375 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -27,6 +27,12 @@ func (f *FriendMgr) Init() { } // 注册处理函数 f.init() + if f.data.(*FirendData).List == nil { + f.data.(*FirendData).List = make(map[int][]*msg.Msg) + } + if f.data.(*FirendData).ClusterMsg == nil { + f.data.(*FirendData).ClusterMsg = make(map[int][]*msg.Msg) + } f.RegisterHandler(msg.HANDLE_TYPE_APPLY, f.sendToPlayer) f.RegisterHandler(msg.HADNLE_TYPE_AGREE, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_DEL, f.sendToPlayer) @@ -44,6 +50,7 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_ARGREE_EX_CARD, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_REFUSE_SELECT_CARD, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_REFUSE_EX_CARD, f.sendToPlayer) + f.RegisterHandler(msg.HANDLE_TYPE_SEND_CARD, f.sendToPlayer) } diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 7a8252ca..5d70189c 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -365,7 +365,7 @@ func (ad *GameLogic) GetSimplePlayerByUid(Id int) *PlayerSimpleData { p := new(Player) p.GetSimpleData(Id, player) value, _ := json.Marshal(player) - db.RedisSetKey(Idstr, string(value), 0) + db.RedisSetKey(Idstr, string(value), 300) } else { err := json.Unmarshal([]byte(Value), player) if err != nil { @@ -393,11 +393,14 @@ func (ad *GameLogic) GetResSimplePlayerByUid(Id int) *msg.ResPlayerSimple { } return &msg.ResPlayerSimple{ - Uid: int32(player.Uid), - Name: player.Name, - Level: int32(player.Level), - Avatar: int32(player.Avatar), - Face: int32(player.Face), + Uid: int32(player.Uid), + Name: player.Name, + Level: int32(player.Level), + Avatar: int32(player.Avatar), + Face: int32(player.Face), + Decorate: int32(player.Decorate), + Login: int32(player.Login), + Loginout: int32(player.Loginout), } } @@ -907,6 +910,10 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqUnlockDecorate", ReqUnlockDecorate) RegisterMsgProcessFunc("ReqSaveSelectDecorate", ReqSaveSelectDecorate) + // 玩家 + RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo) + RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字 + // 棋盘 RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数 RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子 @@ -964,6 +971,12 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqLimitSenceReward", ReqLimitSenceReward) // 好友 + RegisterMsgProcessFunc("ReqFriendList", ReqFriendList) // 请求好友列表 + RegisterMsgProcessFunc("ReqFriendApply", ReqFriendApply) // 请求申请好友列表 + RegisterMsgProcessFunc("ReqFriendCardMsg", ReqFriendCardMsg) // 请求好友卡牌申请列表 + RegisterMsgProcessFunc("ReqFriendTimeLine", ReqFriendTimeLine) // 请求好友时间线 + RegisterMsgProcessFunc("ReqFriendRecommend", ReqFriendRecommend) // 获取推荐好友 + RegisterMsgProcessFunc("ReqSearchPlayer", ReqSearchPlayer) // 搜索好友 RegisterMsgProcessFunc("ReqApplyFriend", ReqApplyFriend) // 申请好友 RegisterMsgProcessFunc("ReqAgreeFriend", ReqAgreeFriend) // 同意申请 @@ -992,7 +1005,8 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqPiggyBankReward", ReqPiggyBankReward) // 小猪存钱罐领取奖励 // 锦标赛 - RegisterMsgProcessFunc("ReqChampshipReward", ReqChampshipReward) // 领取锦标赛奖励 + RegisterMsgProcessFunc("ReqChampshipReward", ReqChampshipReward) // 领取锦标赛奖励 + RegisterMsgProcessFunc("ReqChampshipRankReward", ReqChampshipRankReward) // 领取锦标赛排行榜奖励 } diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index a9793a38..6a3693a8 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -58,9 +58,8 @@ func ReqGmCommand(args []interface{}) error { CardMod.ReqTimes = 10 FriendMod := player.PlayMod.getFriendMod() - FriendMod.ApplyCard = make(map[int]*card.CardInfo) - FriendMod.ExchangeCard = make(map[int]*card.CardInfo) - FriendMod.SelectCard = make(map[int]*card.CardInfo) + FriendMod.Card = make(map[string]*card.CardInfo) + } return nil } diff --git a/src/server/game/Model.go b/src/server/game/Model.go index 65e1f1fa..0fed63d2 100644 --- a/src/server/game/Model.go +++ b/src/server/game/Model.go @@ -7,4 +7,6 @@ type PlayerSimpleData struct { Level int Face int Decorate int + Login int64 + Loginout int64 } diff --git a/src/server/game/Player.go b/src/server/game/Player.go index e728ebe2..d731d0a7 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -266,7 +266,11 @@ func (p *Player) InitPlayer(UserName string) error { log.Debug("load PlayerModData failed:", UserName) return errors.New("load PlayerModData failed") } - IsUpdate := modData.InitMod() + IsUpdate, err := modData.InitMod() + if err != nil { + log.Debug("InitMod failed:", err) + return err + } p.PlayMod.mod_list = modData.ModList p.PlayMod.is_update = IsUpdate @@ -292,7 +296,7 @@ func (p *Player) InitPlayer(UserName string) error { }() p.McronSave = cron.New() - _, err := p.McronSave.AddFunc("@every 1m", p.AutoSaveData) + _, err = p.McronSave.AddFunc("@every 1m", p.AutoSaveData) if err != nil { log.Debug("AddFunc failed:", err) } @@ -523,6 +527,9 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { } p.PushClientRes(ChessMod.BackData()) case item.ITEM_TYPE_LIMIED_TIME_EVENT: // 限时事件 + if p.GetPlayerBaseMod().GetLevel() < 6 { // 等级小于6级不触发 + continue + } EffectList := itemCfg.GetItemEffectList(v.Id) LimitedTimeEventMod := p.PlayMod.getLimitedTimeEventMod() if len(EffectList) < 2 { @@ -559,6 +566,15 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { Lable: Label, }) } + NotifyCard := &msg.ResNotifyCard{} + NotifyCard.Card = make(map[int32]int32) + for _, v := range ResCard { + for _, c := range v.Card { + NotifyCard.Card[c]++ + } + } + + p.PushClientRes(NotifyCard) if is_update { p.PushClientRes(p.GetPlayerBaseMod().BackAsset()) @@ -576,8 +592,6 @@ func (p *Player) LoginBackData() { p.PushClientRes(p.PlayMod.mod_list.Card.BackData()) p.PushClientRes(p.PlayMod.mod_list.Decorate.BackData()) p.PushClientRes(p.PlayMod.mod_list.DailyTask.BackData()) - p.PushClientRes(p.PlayMod.mod_list.Face.BackData()) - p.PushClientRes(p.PlayMod.mod_list.Avatar.BackData()) p.PushClientRes(p.PlayMod.mod_list.SevenLogin.BackData()) p.PushClientRes(p.PlayMod.mod_list.Activity.BackData()) p.PushClientRes(p.PlayMod.mod_list.LimitedTimeEvent.ProgressBackData()) @@ -586,8 +600,9 @@ func (p *Player) LoginBackData() { p.PushClientRes(p.PlayMod.mod_list.PiggyBank.BackData()) p.PushClientRes(p.GetPlayerBaseMod().BackAsset()) p.PushClientRes(p.GetPlayerBaseMod().BackKv()) - - p.PushClientRes(p.PlayMod.mod_list.Champship.BackData()) + MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(p.M_DwUin)) + p.PushClientRes(p.PlayMod.mod_list.Champship.BackData(MyRank)) + BackUserInfo(p) } // 获取玩家简单数据 @@ -626,7 +641,9 @@ func (p *Player) GetSimpleData(Uid int, simple *PlayerSimpleData) error { simple.Avatar = p.PlayMod.getAvatarMod().SetId simple.Face = p.PlayMod.getFaceMod().SetId simple.Level = p.GetPlayerBaseMod().GetLevel() - simple.Decorate = p.PlayMod.getDecorateMod().GetAreaId()*1000 + p.PlayMod.getDecorateMod().GetProgress() + simple.Decorate = p.PlayMod.getDecorateMod().DecorateNum + simple.Login = int64(Base.Data.LoginTime) + simple.Loginout = int64(Base.Data.LogoutTime) return nil } @@ -658,7 +675,7 @@ func (p *Player) HandleInChampshipRank() { Extra: RankMsg{ Uid: int(p.M_DwUin), Score: Score, - RankType: RANK_TYPE_USER, + RankType: RANK_TYPE_CHAMPSHIP, }, } G_GameLogicPtr.RankMgrSend(m) diff --git a/src/server/game/PlayerDataModule.go b/src/server/game/PlayerDataModule.go index 8005a1be..e8121761 100644 --- a/src/server/game/PlayerDataModule.go +++ b/src/server/game/PlayerDataModule.go @@ -458,11 +458,11 @@ func (p *PlayerLevelUpPackData) SaveDataFromDB(Key interface{}) bool { sqlStruck.DwUin = p.M_Player.M_DwUin sqlStruck.CurBuyedLv = p.Data.CurBuyLv - if p.IsHaveDataDb { - db.FormatAllMemUpdateDb(&sqlStruck, "t_player_lv_Pack", "dwUin") - } else { - db.FormatAllMemInsertDb(&sqlStruck, "t_player_lv_Pack") - } + // if p.IsHaveDataDb { + // db.FormatAllMemUpdateDb(&sqlStruck, "t_player_lv_Pack", "dwUin") + // } else { + // db.FormatAllMemInsertDb(&sqlStruck, "t_player_lv_Pack") + // } p.IsHaveDataDb = true return true } @@ -539,11 +539,11 @@ func (p *PlayerGrowthFundData) SaveDataFromDB(Key interface{}) bool { sqlStruck.DwUin = p.M_Player.M_DwUin sqlStruck.CurBuyLv = p.Data.CurBuyLv sqlStruck.IsBuy = p.Data.IsBuy - if p.IsHaveDataDb { - db.FormatAllMemUpdateDb(&sqlStruck, "t_player_growth_fund", "dwUin") - } else { - db.FormatAllMemInsertDb(&sqlStruck, "t_player_growth_fund") - } + // if p.IsHaveDataDb { + // db.FormatAllMemUpdateDb(&sqlStruck, "t_player_growth_fund", "dwUin") + // } else { + // db.FormatAllMemInsertDb(&sqlStruck, "t_player_growth_fund") + // } p.IsHaveDataDb = true return true } @@ -1315,11 +1315,11 @@ func (p *PlayerPetData) ClearData() bool { return true } func (p *PlayerPetData) SaveDataFromDB(Key interface{}) bool { - if p.IsHaveDataDb { - db.FormatAllMemUpdateDb(&p.sqlStruck, "t_player_Pet_Data", "dwUin") - } else { - db.FormatAllMemInsertDb(&p.sqlStruck, "t_player_Pet_Data") - } + // if p.IsHaveDataDb { + // db.FormatAllMemUpdateDb(&p.sqlStruck, "t_player_Pet_Data", "dwUin") + // } else { + // db.FormatAllMemInsertDb(&p.sqlStruck, "t_player_Pet_Data") + // } p.IsHaveDataDb = true return true } diff --git a/src/server/game/PlayerFriendData.go b/src/server/game/PlayerFriendData.go index e53b1668..1b339f4a 100644 --- a/src/server/game/PlayerFriendData.go +++ b/src/server/game/PlayerFriendData.go @@ -180,11 +180,11 @@ func (p *PlayerFriendData) SaveDataFromDB(Key interface{}) bool { sqlStruck.DwUin = p.M_Player.M_DwUin sqlStruck.FriendList = str_concat sqlStruck.TreasureStar = p.sqlStruck.TreasureStar - if p.IsHaveDataDb { - db.FormatAllMemUpdateDb(&sqlStruck, "t_player_Friend_Data", "dwUin") - } else { - db.FormatAllMemInsertDb(&sqlStruck, "t_player_Friend_Data") - } + // if p.IsHaveDataDb { + // db.FormatAllMemUpdateDb(&sqlStruck, "t_player_Friend_Data", "dwUin") + // } else { + // db.FormatAllMemInsertDb(&sqlStruck, "t_player_Friend_Data") + // } p.IsHaveDataDb = true return true } diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index f3f5cea4..a6d984a2 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -1,6 +1,7 @@ package game import ( + "encoding/json" "fmt" "server/GoUtil" "server/MergeConst" @@ -13,6 +14,7 @@ import ( proto "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" + "strconv" ) // 处理玩家异步请求 @@ -42,11 +44,25 @@ func handle(p *Player, m *msg.Msg) error { switch m.Type { case msg.HANDLE_TYPE_DEL, msg.HANDLE_TYPE_APPLY, msg.HADNLE_TYPE_AGREE, msg.HANDLE_TYPE_REQ_CARD: return HandleFriendMsg(p, m) + case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌 + CardInfo := m.Extra.(*card.CardInfo) + FriendMod := p.PlayMod.getFriendMod() + FriendMod.SetCardInfo(CardInfo) + + p.PushClientRes( + &proto.NotifyFriendCard{ + Info: GetCardInfoMsg(CardInfo), + }, + ) + + p.PlayMod.save() + case msg.HANDLE_TYPE_AGREE_CARD: // A收到B同意卡牌 CardInfo := m.Extra.(*card.CardInfo) CardMod := p.PlayMod.getCardMod() - CardMod.AddCard(CardInfo.CardId) OtherUid, err := CardMod.DelRequestCard(CardInfo.BUid) + FriendMod := p.PlayMod.getFriendMod() + FriendMod.SetCardInfo(CardInfo) if err != nil { // 同意失败,请求已失效 msg := &msg.Msg{Type: msg.HANDLE_TYPE_AGREE_CARD_FAIL, From: CardInfo.AUid, End: CardInfo.EndTime} FriendMgrSend(msg) @@ -57,6 +73,11 @@ func handle(p *Player, m *msg.Msg) error { FriendMgrSend(msg) } p.PlayMod.save() + p.PushClientRes( + &proto.NotifyFriendCard{ + Info: GetCardInfoMsg(CardInfo), + }, + ) p.PushClientRes(CardMod.BackData()) case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌 CardInfo := m.Extra.(*card.CardInfo) @@ -67,29 +88,35 @@ func handle(p *Player, m *msg.Msg) error { case msg.HANDLE_TYPE_EX_CARD: // B收到A置换卡牌 FriendMod := p.PlayMod.getFriendMod() CardInfo := m.Extra.(*card.CardInfo) - if CardInfo.Type == card.TYPE_GIVE { // A卡牌白送 - CardMod := p.PlayMod.getCardMod() - CardMod.AddCard(CardInfo.CardId) - p.PushClientRes(CardMod.BackData()) - } else { - FriendMod.SetCardExchange(CardInfo) - } + FriendMod.SetCardInfo(CardInfo) p.PlayMod.save() + p.PushClientRes( + &proto.NotifyFriendCard{ + Info: GetCardInfoMsg(CardInfo), + }, + ) FriendCardBackData(p) case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换 FriendMod := p.PlayMod.getFriendMod() CardInfo := m.Extra.(*card.CardInfo) - FriendMod.CardSelectExchange(CardInfo) + FriendMod.SetCardInfo(CardInfo) p.PlayMod.save() + p.PushClientRes( + &proto.NotifyFriendCard{ + Info: GetCardInfoMsg(CardInfo), + }, + ) FriendCardBackData(p) case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌 - CardMod := p.PlayMod.getCardMod() CardInfo := m.Extra.(*card.CardInfo) - CardMod.AddCard(CardInfo.CardId) FriendMod := p.PlayMod.getFriendMod() - FriendMod.DelCardExchange(CardInfo.AUid) + FriendMod.SetCardInfo(CardInfo) + p.PushClientRes( + &proto.NotifyFriendCard{ + Info: GetCardInfoMsg(CardInfo), + }, + ) p.PlayMod.save() - p.PushClientRes(CardMod.BackData()) case msg.HANDLE_TYPE_REFUSE_SELECT_CARD: // A收到B拒绝置换卡牌 CardMod := p.PlayMod.getCardMod() CardInfo := m.Extra.(*card.CardInfo) @@ -103,7 +130,7 @@ func handle(p *Player, m *msg.Msg) error { CardInfo := m.Extra.(*card.CardInfo) CardMod.AddCard(CardInfo.ExId) FriendMod := p.PlayMod.getFriendMod() - FriendMod.DelCardExchange(CardInfo.AUid) + FriendMod.DelCardInfo(CardInfo.Id) p.PlayMod.save() p.PushClientRes(CardMod.BackData()) case msg.HANDLE_TYPE_MAIL: // 邮件操作 @@ -142,34 +169,35 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error { FriendMod.HandleMsg(m) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) switch m.Type { - case msg.HANDLE_TYPE_RANK_NOTIFY: - p.PushClientRes(p.PlayMod.getChampshipMod().BackData()) - case msg.HANDLE_TYPE_APPLY: + case msg.HANDLE_TYPE_RANK_NOTIFY: // 排行榜更新 + MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(p.M_DwUin)) + p.PushClientRes(p.PlayMod.getChampshipMod().BackData(MyRank)) + case msg.HANDLE_TYPE_APPLY: // 好友申请 FriendMod.AddFriendApply(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, }) - case msg.HADNLE_TYPE_AGREE: + case msg.HADNLE_TYPE_AGREE: // 同意好友申请 FriendMod.AgreeApply(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, }) - case msg.HANDLE_TYPE_DEL: + case msg.HANDLE_TYPE_DEL: // 删除好友 FriendMod.DelFriend(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, }) - case msg.HANDLE_TYPE_REFUSE: + case msg.HANDLE_TYPE_REFUSE: // 拒绝好友申请 p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_REFUSE, }) - case msg.HANDLE_TYPE_REQ_CARD: + case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请 CardInfo := m.Extra.(*card.CardInfo) - FriendMod.CardGiveApply(CardInfo) + FriendMod.SetCardInfo(CardInfo) } return nil } @@ -258,29 +286,9 @@ func FriendLogBackData(p *Player) { func FriendCardBackData(p *Player) { FriendMod := p.PlayMod.getFriendMod() var msgList []*proto.ResFriendCard - for _, v := range FriendMod.ApplyCard { - ps := G_GameLogicPtr.GetSimplePlayerByUid(v.BUid) - msgList = append(msgList, &proto.ResFriendCard{ - Uid: int32(v.AUid), - Name: ps.Name, - Face: int32(ps.Face), - Avatar: int32(ps.Avatar), - Level: int32(ps.Level), - CardId: int32(v.CardId), - Time: int32(v.EndTime), - }) - } - for _, v := range FriendMod.ExchangeCard { - ps := G_GameLogicPtr.GetSimplePlayerByUid(v.BUid) - msgList = append(msgList, &proto.ResFriendCard{ - Uid: int32(v.AUid), - Name: ps.Name, - Face: int32(ps.Face), - Avatar: int32(ps.Avatar), - Level: int32(ps.Level), - CardId: int32(v.CardId), - Time: int32(v.EndTime), - }) + for _, v := range FriendMod.Card { + m := GetCardInfoMsg(v) + msgList = append(msgList, m) } p.PushClientRes(&proto.ResFriendCardMsg{ MsgList: msgList, @@ -324,14 +332,73 @@ func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlCha return Order, nil } -// func PlayerFriendRecommend(p *Player) { -// FriendMod := p.PlayMod.getFriendMod() -// n := 0 -// if len(FriendMod.FriendList) < 10 { -// n = 3 -// } else { -// n = int(3 - float64(len(FriendMod.FriendList))*0.1) -// } +func BackUserInfo(p *Player) { + BaseMod := p.PlayMod.getBaseMod() + FaceMod := p.PlayMod.getFaceMod() + AvatarMod := p.PlayMod.getAvatarMod() + DecorateMod := p.PlayMod.getDecorateMod() + PlayerBaseMod := p.GetPlayerBaseMod() + p.PushClientRes(&proto.UserInfo{ + Uid: int32(p.M_DwUin), + Nickname: BaseMod.NickName, + Avatar: int32(AvatarMod.SetId), + Face: int32(FaceMod.SetId), + DecorateCnt: int32(DecorateMod.DecorateNum), + AvatarList: AvatarMod.BackData(), + FaceList: FaceMod.BackData(), + Login: PlayerBaseMod.Data.LoginTime, + }) +} -// UserList := G_GameLogicPtr.RankMgr.getRank(RANK_TYPE_USER) -// } +func UpdateUserInfo(p *Player) { + simple := &PlayerSimpleData{} + Base := p.GetPlayerBaseMod() + simple.Name = p.GetPlayerBaseMod().GetName() + simple.Avatar = p.PlayMod.getAvatarMod().SetId + simple.Face = p.PlayMod.getFaceMod().SetId + simple.Level = p.GetPlayerBaseMod().GetLevel() + simple.Decorate = p.PlayMod.getDecorateMod().DecorateNum + simple.Login = int64(Base.Data.LoginTime) + simple.Loginout = int64(Base.Data.LogoutTime) + value, _ := json.Marshal(simple) + IdStr := strconv.Itoa(int(p.M_DwUin)) + db.RedisSetKey(IdStr, string(value), 0) +} + +func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { + Uid := 0 + if CardInfo.Type == card.TYPE_CARD_SEND { + Uid = CardInfo.BUid + } + + if CardInfo.Type == card.TYPE_CARD_GIVE { + if CardInfo.Status == card.STATUS_CARD_GIVE_1 { + Uid = CardInfo.BUid + } else { + Uid = CardInfo.AUid + } + } + + if CardInfo.Type == card.TYPE_CARD_EX { + if CardInfo.Status == card.STATUS_CARD_EX_2 { + Uid = CardInfo.AUid + } else { + Uid = CardInfo.BUid + } + } + + ps := G_GameLogicPtr.GetSimplePlayerByUid(Uid) + return &proto.ResFriendCard{ + Uid: int32(Uid), + Name: ps.Name, + Face: int32(ps.Face), + Avatar: int32(ps.Avatar), + Level: int32(ps.Level), + CardId: int32(CardInfo.CardId), + ExCardId: int32(CardInfo.ExId), + Time: int32(CardInfo.StartTime), + Type: int32(CardInfo.Type), + Status: int32(CardInfo.Status), + Id: CardInfo.Id, + } +} diff --git a/src/server/game/PlayerMod.go b/src/server/game/PlayerMod.go index f4c7aa19..8e7e0467 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/PlayerMod.go @@ -94,14 +94,15 @@ func (p *PlayerModData) Reconnect(b bool) []byte { return []byte{} } -func (p *PlayerModData) InitMod() bool { +func (p *PlayerModData) InitMod() (bool, error) { playerModList := PlayerModList{} buf := bytes.NewBuffer(p.Data.ModData) decoder := gob.NewDecoder(buf) err := decoder.Decode(&playerModList) // err := json.Unmarshal([]byte(p.Data.ModData), &playerModList) if err != nil { - fmt.Printf("playmod get data failed, err:%v\n", err) + log.Debug("playmod get data failed, err:%v\n", err) + return false, fmt.Errorf("playmod get data failed, err:%v\n", err) } p.ModList = playerModList is_update := false @@ -139,7 +140,7 @@ func (p *PlayerModData) InitMod() bool { p.ModList.Charge.InitData() p.ModList.Endless.InitData() - return is_update + return is_update, nil } type PlayerMod struct { diff --git a/src/server/game/PlayerShopData.go b/src/server/game/PlayerShopData.go index 8ed4c56e..d2caa5e5 100644 --- a/src/server/game/PlayerShopData.go +++ b/src/server/game/PlayerShopData.go @@ -854,11 +854,11 @@ func (p *PlayerAdPackData) SaveDataFromDB(Key interface{}) bool { p.SqlStruct.RewardInfo = strings.Join(p.Data.RewardInfo, ";") p.SqlStruct.DwUin = p.M_Player.M_DwUin p.SqlStruct.Score = p.Data.Score - if p.IsHaveDataDb { - db.FormatAllMemUpdateDb(&p.SqlStruct, "t_player_AD_Pack", "dwUin") - } else { - db.FormatAllMemInsertDb(&p.SqlStruct, "t_player_AD_Pack") - } + // if p.IsHaveDataDb { + // db.FormatAllMemUpdateDb(&p.SqlStruct, "t_player_AD_Pack", "dwUin") + // } else { + // db.FormatAllMemInsertDb(&p.SqlStruct, "t_player_AD_Pack") + // } p.IsHaveDataDb = true return true } diff --git a/src/server/game/RankMgr.go b/src/server/game/RankMgr.go index 31e8c641..58708ffc 100644 --- a/src/server/game/RankMgr.go +++ b/src/server/game/RankMgr.go @@ -12,8 +12,9 @@ type RankMgr struct { } type RankData struct { - List map[int][]*Rank // 玩家排行榜 - BackData map[int][]*Rank // 玩家排行榜 备份 + List map[int][]*Rank // 玩家排行榜 + Champship map[int][]*Rank // 锦标赛排行榜 + BackData map[int][]*Rank // 玩家排行榜 备份 } const ( @@ -68,6 +69,35 @@ func (r *RankMgr) getRank(RankType int) []*Rank { return []*Rank{} } +func (r *RankMgr) getLastChampshipRank() []*Rank { + if v, ok := r.getData().BackData[RANK_TYPE_CHAMPSHIP]; ok { + return v + } + return []*Rank{} +} + +func (r *RankMgr) getMyRank(Uid, RankType int) int { + if d, ok := r.getData().List[RankType]; ok { + for k, v := range d { + if v.Uid == Uid { + return k + 1 + } + } + } + return 0 +} + +func (r *RankMgr) getLastChampship(Uid int) int { + if d, ok := r.getData().List[RANK_TYPE_CHAMPSHIP]; ok { + for k, v := range d { + if v.Uid == Uid { + return k + 1 + } + } + } + return 0 +} + // 设置榜单数据 func (r *RankMgr) setRank(RankType int, data []*Rank) { r.getData().List[RankType] = data diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index bbe0592d..2145abdc 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -2026,12 +2026,12 @@ func ReqRewardOrder(args []interface{}) error { // 限时事件增加进度 LimitedTimeEventMod.AddProgress(player.GetPlayerBaseMod().GetLevel()) - + MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(player.M_DwUin)) player.HandleInChampshipRank() player.PlayMod.save() player.PushClientRes(PiggyBankMod.BackData()) player.PushClientRes(OrderMod.BackData()) - player.PushClientRes(ChampshipMod.BackData()) + player.PushClientRes(ChampshipMod.BackData(MyRank)) player.PushClientRes(LimitedTimeEventMod.BackData()) return nil } @@ -2062,10 +2062,6 @@ func ReqDecorate(args []interface{}) error { }) return err } - // if limitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_SENCE_DASH) { // 场景冲刺奖励 - // _, Items := limitedTimeEventMod.GetSceneDashReward(DecorateMod.GetAreaId(), DecorateMod.GetProgress()) - // AddItem = item.Merge(AddItem, Items) - // } err = player.HandleItem(AddItem, "DecorateAdd") // 增加道具 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ @@ -2102,6 +2098,8 @@ func ReqDecorate(args []interface{}) error { Code: msg.RES_CODE_SUCCESS, }) player.HandleInUserRank() + BackUserInfo(player) + UpdateUserInfo(player) return nil } @@ -2500,10 +2498,11 @@ func ReqSetAvatar(args []interface{}) error { return err } player.PlayMod.save() - player.PushClientRes(avatarMod.BackData()) player.PushClientRes(&msg.ResSetAvatar{ Code: msg.RES_CODE_SUCCESS, }) + BackUserInfo(player) + UpdateUserInfo(player) return nil } @@ -2522,10 +2521,11 @@ func ReqSetFace(args []interface{}) error { return err } player.PlayMod.save() - player.PushClientRes(FaceMod.BackData()) player.PushClientRes(&msg.ResSetFace{ Code: msg.RES_CODE_SUCCESS, }) + BackUserInfo(player) + UpdateUserInfo(player) return nil } @@ -2826,7 +2826,6 @@ func ReqCardGive(args []interface{}) error { CardMod := player.PlayMod.getCardMod() EndTime := GoUtil.Now() + 86400 - Id := CardMod.CreateRequestCardId(int(player.M_DwUin), int(req.CardId), EndTime) FriendMod := player.PlayMod.getFriendMod() err := CardMod.RequestCard() @@ -2853,6 +2852,7 @@ func ReqCardGive(args []interface{}) error { }) return fmt.Errorf("card id empty") } + Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId)) for _, v := range req.Uid { Uid := int(v) if !FriendMod.CheckFriend(Uid) { @@ -2863,12 +2863,14 @@ func ReqCardGive(args []interface{}) error { return fmt.Errorf("not friend") } CardInfo := &card.CardInfo{ - Id: Id, - AUid: int(player.M_DwUin), - BUid: Uid, - CardId: CardId, - EndTime: EndTime, - Type: card.TYPE_REQ, + Id: Id, + AUid: int(player.M_DwUin), + BUid: Uid, + CardId: CardId, + StartTime: GoUtil.Now(), + EndTime: EndTime, + Type: card.TYPE_CARD_GIVE, + Status: card.STATUS_CARD_GIVE_1, } err = CardMod.AddRequestCard(CardInfo) // 添加请求卡牌 if err != nil { @@ -2888,6 +2890,7 @@ func ReqCardGive(args []interface{}) error { } FriendMgrSend(m) } + player.PushClientRes(&msg.ResCardGive{ Code: msg.RES_CODE_SUCCESS, }) @@ -2902,7 +2905,7 @@ func ReqAgreeCardGive(args []interface{}) error { req := &msg.ReqAgreeCardGive{} proto.Unmarshal(buf, req) FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardGiveId(int(req.Uid)) + CardInfo := FriendMod.GetCardInfo(req.Id) if CardInfo == nil { player.SendErrClienRes(&msg.ResAgreeCardGive{ Code: msg.RES_CODE_FAIL, @@ -2919,6 +2922,8 @@ func ReqAgreeCardGive(args []interface{}) error { }) return fmt.Errorf("card not exist") } + CardInfo.Status = card.STATUS_CARD_GIVE_2 + CardInfo.EndTime = 0 m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_AGREE_CARD, From: int(player.M_DwUin), @@ -2927,6 +2932,9 @@ func ReqAgreeCardGive(args []interface{}) error { Extra: CardInfo, } FriendMgrSend(m) + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardInfo.CardId): -1}, + }) player.PushClientRes(CardMod.BackData()) player.PushClientRes(&msg.ResAgreeCardGive{ Code: msg.RES_CODE_SUCCESS, @@ -2941,7 +2949,7 @@ func ReqRefuseCardGive(args []interface{}) error { req := &msg.ReqRefuseCardGive{} proto.Unmarshal(buf, req) FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.RefuseCardGive(int(req.Uid)) + CardInfo := FriendMod.GetCardInfo(req.Id) if CardInfo == nil { player.SendErrClienRes(&msg.ResRefuseCardGive{ Code: msg.RES_CODE_FAIL, @@ -2949,6 +2957,7 @@ func ReqRefuseCardGive(args []interface{}) error { }) return fmt.Errorf("card apply not exist") } + FriendMod.DelCardInfo(req.Id) player.PlayMod.save() player.PushClientRes(&msg.ResRefuseCardGive{ Code: msg.RES_CODE_SUCCESS, @@ -2964,6 +2973,42 @@ func ReqRefuseCardGive(args []interface{}) error { return nil } +// 赠送卡牌 +func ReqCardSend(args []interface{}) error { + _, player, buf := ParseArgs(args) + req := &msg.ReqCardExchange{} + proto.Unmarshal(buf, req) + CardMod := player.PlayMod.getCardMod() + CardId := int(req.CardId) + CardInfo, err := CardMod.SendCard(int(player.M_DwUin), int(req.Uid), CardId) + if err != nil { + player.SendErrClienRes(&msg.ResCardExchange{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + m := &MsqMod.Msg{ + Type: MsqMod.HANDLE_TYPE_SEND_CARD, + From: int(player.M_DwUin), + To: int(req.Uid), + SendT: GoUtil.Now(), + End: GoUtil.Now() + 86400, + Extra: CardInfo, + } + setRedisLock(CardInfo.Id, "", time.Second*86400) + player.PushClientRes(CardMod.BackData()) + player.PushClientRes(&msg.ResCardExchange{ + Code: msg.RES_CODE_SUCCESS, + }) + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardInfo.CardId): -1}, + }) + player.PlayMod.save() + FriendMgrSend(m) + return nil +} + // 卡牌交换 func ReqCardExchange(args []interface{}) error { _, player, buf := ParseArgs(args) @@ -2971,7 +3016,7 @@ func ReqCardExchange(args []interface{}) error { proto.Unmarshal(buf, req) CardMod := player.PlayMod.getCardMod() CardId := int(req.CardId) - CardInfo, err := CardMod.ExchangeCard(int(player.M_DwUin), int(req.Uid), CardId, int(req.Type)) + CardInfo, err := CardMod.ExchangeCard(int(player.M_DwUin), int(req.Uid), CardId) if err != nil { player.SendErrClienRes(&msg.ResCardExchange{ Code: msg.RES_CODE_FAIL, @@ -2992,6 +3037,9 @@ func ReqCardExchange(args []interface{}) error { player.PushClientRes(&msg.ResCardExchange{ Code: msg.RES_CODE_SUCCESS, }) + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardInfo.CardId): -1}, + }) player.PlayMod.save() FriendMgrSend(m) return nil @@ -3005,7 +3053,7 @@ func ReqSelectCardExchange(args []interface{}) error { CardId := int(req.CardId) CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardExchange(int(req.Uid)) + CardInfo := FriendMod.GetCardInfo(req.Id) if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() { player.SendErrClienRes(&msg.ResSelectCardExchange{ Code: msg.RES_CODE_FAIL, @@ -3021,7 +3069,8 @@ func ReqSelectCardExchange(args []interface{}) error { return fmt.Errorf("card already selected") } CardInfo.ExId = CardId - FriendMod.SetCardExchange(CardInfo) + CardInfo.Status = card.STATUS_CARD_EX_2 + FriendMod.SetCardInfo(CardInfo) err := CardMod.SubCard(CardId) if err != nil { player.SendErrClienRes(&msg.ResSelectCardExchange{ @@ -3035,25 +3084,27 @@ func ReqSelectCardExchange(args []interface{}) error { player.PushClientRes(&msg.ResSelectCardExchange{ Code: msg.RES_CODE_SUCCESS, }) - + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardId): -1}, + }) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_SELECT_EX_CARD, From: int(player.M_DwUin), - To: int(req.Uid), + To: CardInfo.AUid, Extra: CardInfo, } FriendMgrSend(m) return nil } +// 同意卡牌交换 func ReqAgreeCardExchange(args []interface{}) error { _, player, buf := ParseArgs(args) req := &msg.ReqSelectCardExchange{} proto.Unmarshal(buf, req) - Uid := int(req.Uid) CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetSelectInfo(Uid) + CardInfo := FriendMod.GetCardInfo(req.Id) if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() { player.SendErrClienRes(&msg.ResAgreeCardExchange{ @@ -3064,7 +3115,9 @@ func ReqAgreeCardExchange(args []interface{}) error { } CardMod.AddCard(CardInfo.ExId) CardMod.DelExCard(CardInfo) - FriendMod.DelSelectInfo(CardInfo) + FriendMod.DelCardInfo(req.Id) + CardInfo.Status = card.STATUS_CARD_EX_3 + CardInfo.EndTime = 0 player.PlayMod.save() player.PushClientRes(CardMod.BackData()) player.PushClientRes(&msg.ResAgreeCardExchange{ @@ -3073,20 +3126,23 @@ func ReqAgreeCardExchange(args []interface{}) error { m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_ARGREE_EX_CARD, From: int(player.M_DwUin), - To: Uid, + To: CardInfo.BUid, Extra: CardInfo, } + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardInfo.ExId): 1}, + }) FriendMgrSend(m) return nil } +// 拒绝选择卡牌 func ReqRefuseCardSelect(args []interface{}) error { _, player, buf := ParseArgs(args) req := &msg.ReqRefuseCardSelect{} proto.Unmarshal(buf, req) - Uid := int(req.Uid) FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardExchange(Uid) + CardInfo := FriendMod.GetCardInfo(req.Id) if CardInfo == nil { player.SendErrClienRes(&msg.ResRefuseCardSelect{ Code: msg.RES_CODE_FAIL, @@ -3094,11 +3150,11 @@ func ReqRefuseCardSelect(args []interface{}) error { }) return fmt.Errorf("exchange time out") } - FriendMod.DelCardExchange(Uid) + FriendMod.DelCardInfo(req.Id) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_REFUSE_SELECT_CARD, From: int(player.M_DwUin), - To: Uid, + To: CardInfo.AUid, Extra: CardInfo, } FriendMgrSend(m) @@ -3109,14 +3165,14 @@ func ReqRefuseCardSelect(args []interface{}) error { return nil } +// 拒绝进行交换 func ReqRefuseCardExchange(args []interface{}) error { _, player, buf := ParseArgs(args) req := &msg.ReqRefuseCardExchange{} proto.Unmarshal(buf, req) - Uid := int(req.Uid) CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetSelectInfo(Uid) + CardInfo := FriendMod.GetCardInfo(req.Id) if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() { player.SendErrClienRes(&msg.ResRefuseCardExchange{ Code: msg.RES_CODE_FAIL, @@ -3124,7 +3180,8 @@ func ReqRefuseCardExchange(args []interface{}) error { }) return fmt.Errorf("exchange time out") } - FriendMod.DelSelectInfo(CardInfo) + FriendMod.DelCardInfo(req.Id) + CardMod.AddCard(CardInfo.CardId) CardMod.DelExCard(CardInfo) player.PlayMod.save() @@ -3135,13 +3192,49 @@ func ReqRefuseCardExchange(args []interface{}) error { m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_REFUSE_EX_CARD, From: int(player.M_DwUin), - To: Uid, + To: CardInfo.BUid, Extra: CardInfo, } + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardInfo.CardId): 1}, + }) FriendMgrSend(m) return nil } +func ReqGetFriendCard(args []interface{}) error { + _, player, buf := ParseArgs(args) + req := &msg.ReqRefuseCardExchange{} + proto.Unmarshal(buf, req) + CardMod := player.PlayMod.getCardMod() + FriendMod := player.PlayMod.getFriendMod() + CardInfo := FriendMod.GetCardInfo(req.Id) + if CardInfo == nil || CardInfo.EndTime != 0 { + player.SendErrClienRes(&msg.ResRefuseCardExchange{ + Code: msg.RES_CODE_FAIL, + Msg: "exchange time out", + }) + return fmt.Errorf("exchange time out") + } + CardId := 0 + if CardInfo.Type == card.TYPE_CARD_EX { + CardId = CardInfo.ExId + } else { + CardId = CardInfo.CardId + } + FriendMod.DelCardInfo(req.Id) + CardMod.AddCard(CardId) + player.PlayMod.save() + player.PushClientRes(CardMod.BackData()) + player.PushClientRes(&msg.ResRefuseCardExchange{ + Code: msg.RES_CODE_SUCCESS, + }) + player.PushClientRes(&msg.ResNotifyCard{ + Card: map[int32]int32{int32(CardId): 1}, + }) + return nil +} + // 请求玩家榜单 func ReqRank(args []interface{}) error { _, player, buf := ParseArgs(args) @@ -3164,6 +3257,24 @@ func ReqRank(args []interface{}) error { return nil } +// 请求昨日竞标赛榜单 +func ReqChampshipRank(args []interface{}) error { + _, player, buf := ParseArgs(args) + req := &msg.ReqRank{} + proto.Unmarshal(buf, req) + rankList := G_GameLogicPtr.RankMgr.getLastChampshipRank() + res := make(map[int32]*msg.ResPlayerSimple) + for k, rank := range rankList { + res[int32(k+1)] = G_GameLogicPtr.GetResSimplePlayerByUid(rank.Uid) + } + + player.PushClientRes(&msg.ResRank{ + Type: req.Type, + RankList: res, + }) + return nil +} + // 请求邮件列表 func ReqMailList(args []interface{}) error { _, player, _ := ParseArgs(args) @@ -3431,8 +3542,9 @@ func ReqChampshipReward(args []interface{}) error { }) return err } + MyRank := G_GameLogicPtr.RankMgr.getMyRank(RANK_TYPE_CHAMPSHIP, int(player.M_DwUin)) player.PlayMod.save() - player.PushClientRes(ChampshipMod.BackData()) + player.PushClientRes(ChampshipMod.BackData(MyRank)) player.PushClientRes(&msg.ResChampshipReward{ Code: msg.RES_CODE_SUCCESS, }) @@ -3541,3 +3653,52 @@ func ReqFriendTimeLine(args []interface{}) error { FriendLogBackData(player) return nil } + +func ReqChampshipRankReward(args []interface{}) error { + _, player, _ := ParseArgs(args) + MyRank := G_GameLogicPtr.RankMgr.getLastChampship(int(player.M_DwUin)) + ChampshipMod := player.PlayMod.getChampshipMod() + itemList, err := ChampshipMod.GetRankReward(MyRank) + if err != nil { + player.SendErrClienRes(&msg.ResChampshipRankReward{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + err = player.HandleItem(itemList, "ChampshipRankReward") + if err != nil { + player.SendErrClienRes(&msg.ResChampshipRankReward{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + player.PlayMod.save() + player.PushClientRes(ChampshipMod.BackData(MyRank)) + player.PushClientRes(&msg.ResChampshipRankReward{ + Code: msg.RES_CODE_SUCCESS, + }) + return nil +} + +func ReqSetName(args []interface{}) error { + _, player, buf := ParseArgs(args) + req := &msg.ReqSetName{} + proto.Unmarshal(buf, req) + BaseMod := player.PlayMod.getBaseMod() + BaseMod.SetNickName(req.Name) + player.PushClientRes(&msg.ResSetName{ + ResultCode: msg.RES_CODE_SUCCESS, + }) + player.PlayMod.save() + BackUserInfo(player) + UpdateUserInfo(player) + return nil +} + +func ReqUserInfo(args []interface{}) error { + _, player, _ := ParseArgs(args) + BackUserInfo(player) + return nil +} diff --git a/src/server/game/ServerMod.go b/src/server/game/ServerMod.go index 6a41e900..15c8a9e7 100644 --- a/src/server/game/ServerMod.go +++ b/src/server/game/ServerMod.go @@ -12,11 +12,11 @@ import ( ) const ( - FRIEND_MGR_KEY = "FRIEND_MGR" - RANK_MGR_KEY = "RANK_MGR" - MAIL_MGR_KEY = "MAIL_MGR" - - PER_SAVE_TIME = 1 + FRIEND_MGR_KEY = "FRIEND_MGR" + RANK_MGR_KEY = "RANK_MGR" + MAIL_MGR_KEY = "MAIL_MGR" + CHAMPSHIP_MGR_KEY = "CHAMPSHIP_MGR" + PER_SAVE_TIME = 1 ) type ServerMod struct { diff --git a/src/server/game/mod/avatar/Avatar.go b/src/server/game/mod/avatar/Avatar.go index 6024f9de..6f3b06b0 100644 --- a/src/server/game/mod/avatar/Avatar.go +++ b/src/server/game/mod/avatar/Avatar.go @@ -22,7 +22,7 @@ func (a *AvatarMod) InitData() { for _, v := range InitId { a.List[v] = Avatar{} } - a.SetId = InitId[0] + a.SetId = 1 } } @@ -34,7 +34,7 @@ func (a *AvatarMod) SetAvatar(Id int) error { return nil } -func (a *AvatarMod) BackData() *msg.ResAvatarInfo { +func (a *AvatarMod) BackData() []*msg.AvatarInfo { l := make([]*msg.AvatarInfo, 0) for k, v := range a.List { l = append(l, &msg.AvatarInfo{ @@ -43,8 +43,5 @@ func (a *AvatarMod) BackData() *msg.ResAvatarInfo { }) } // 返回数据 - return &msg.ResAvatarInfo{ - AvatarList: l, - SetId: int32(a.SetId), - } + return l } diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index 3c9e6396..ddc228ac 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -14,6 +14,7 @@ type Base struct { EnergyMul int IsFirstBuy bool EnergyBuy int + NickName string } func (b *Base) InitData() { @@ -30,6 +31,10 @@ func (b *Base) SetEnergyMul(mul int) { b.EnergyMul = mul } +func (b *Base) SetNickName(Name string) { + b.NickName = Name +} + func (b *Base) GetIsFirstBuy() bool { return b.IsFirstBuy } diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index d3354d25..825091b3 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -22,22 +22,40 @@ type CardMod struct { ExCard map[int]*CardInfo // 交换卡牌 } -type CardInfo struct { - Id string - AUid int - BUid int - CardId int - ExId int - Type int - EndTime int64 -} +const ( + MASTER_CARD_NORMAL = 6 + MASTER_CARD_GOLD = 7 +) const ( - TYPE_REQ = 0 - TYPE_GIVE = 1 - TYPE_EXCHANGE = 2 + TYPE_CARD_GIVE = 1 // 请求卡牌 + TYPE_CARD_SEND = 2 // 赠送卡牌 + TYPE_CARD_EX = 3 // 卡牌交换 ) +const ( + STATUS_CARD_GIVE_1 = 1 // 请求中 + STATUS_CARD_GIVE_2 = 2 // 对方同意,等待领取 + + STATUS_CARD_SEND_1 = 1 // 赠送成功 等待领取 + + STATUS_CARD_EX_1 = 1 // 发起交换 + STATUS_CARD_EX_2 = 2 // 选择卡牌交换 + STATUS_CARD_EX_3 = 3 // 交换成功,等待领取 +) + +type CardInfo struct { + Id string + AUid int + BUid int + CardId int + ExId int + Type int + EndTime int64 + StartTime int64 + Status int +} + func (c *CardMod) InitData() { // 初始化数据 if c.CardList == nil { @@ -242,11 +260,6 @@ func (c *CardMod) RequestCard() error { return nil } -// 生成索要卡牌唯一id -func (c *CardMod) CreateRequestCardId(Uid, CardId int, EndTime int64) string { - return fmt.Sprint(Uid, "_", CardId, "_", EndTime) -} - // 增加请求卡牌记录 func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error { _, ok := c.ReqFriend[CardInfo.BUid] @@ -278,9 +291,9 @@ func (c *CardMod) AddExTimes() { } // 交换卡牌 -func (c *CardMod) ExchangeCard(From, To, CardId, Type int) (*CardInfo, error) { +func (c *CardMod) ExchangeCard(From, To, CardId int) (*CardInfo, error) { Now := GoUtil.Now() - Id := fmt.Sprintf("%d_%d_%d_%d", From, To, CardId, Now) + Id := GoUtil.CreateCardId(From, To, CardId) err := c.SubCard(CardId) if c.ExTimes <= 0 { return nil, fmt.Errorf("ExchangeCard times not enough") @@ -293,9 +306,37 @@ func (c *CardMod) ExchangeCard(From, To, CardId, Type int) (*CardInfo, error) { if ok { return nil, fmt.Errorf("ExchangeCard already exchange") } - CardInfo := &CardInfo{Id: Id, AUid: From, BUid: To, CardId: CardId, Type: Type, EndTime: Now + 86400} - if Type == TYPE_EXCHANGE { - c.ExCard[To] = CardInfo + CardInfo := &CardInfo{ + Id: Id, + AUid: From, + BUid: To, + CardId: CardId, + Type: TYPE_CARD_EX, + EndTime: Now + 86400, + } + c.ExCard[To] = CardInfo + return CardInfo, nil +} + +func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) { + Now := GoUtil.Now() + Id := GoUtil.CreateCardId(From, To, CardId) + err := c.SubCard(CardId) + if c.ExTimes <= 0 { + return nil, fmt.Errorf("SendCard times not enough") + } + c.ExTimes-- + if err != nil { + return nil, err + } + CardInfo := &CardInfo{ + Id: Id, + AUid: From, + BUid: To, + CardId: CardId, + Type: TYPE_CARD_EX, + StartTime: Now, + Status: STATUS_CARD_SEND_1, } return CardInfo, nil } diff --git a/src/server/game/mod/champship/Champship.go b/src/server/game/mod/champship/Champship.go index 8507f7d6..1ef2fe18 100644 --- a/src/server/game/mod/champship/Champship.go +++ b/src/server/game/mod/champship/Champship.go @@ -1,6 +1,7 @@ package champship import ( + "fmt" "server/GoUtil" champshipCfg "server/conf/champship" mergeDataCfg "server/conf/mergeData" @@ -11,7 +12,7 @@ import ( type ChampshipMod struct { Score int Reward int - RankReward int64 + RankReward bool } func (c *ChampshipMod) InitData() {} @@ -19,12 +20,21 @@ func (c *ChampshipMod) InitData() {} func (c *ChampshipMod) ZeroUpdate() { c.Score = 0 c.Reward = 0 + c.RankReward = false } func (c *ChampshipMod) GetScore() int { return c.Score } +func (c *ChampshipMod) GetRankReward(Rank int) ([]*item.Item, error) { + if c.RankReward { + return nil, fmt.Errorf("rank reward has been received") + } + c.RankReward = true + return champshipCfg.GetRankReward(Rank), nil +} + func (c *ChampshipMod) AddScore(Chess []int) { score := 0 for _, v := range Chess { @@ -41,11 +51,12 @@ func (c *ChampshipMod) GetReward() []*item.Item { return Items } -func (c *ChampshipMod) BackData() *msg.ResChampship { +func (c *ChampshipMod) BackData(MyRank int) *msg.ResChampship { return &msg.ResChampship{ Score: int32(c.Score), Reward: int32(c.Reward), EndTime: int32(GoUtil.ZeroTimestamp() + 86400), // 零点结束 Period: int32(GoUtil.GetServerOpenDay()), + Rank: int32(MyRank), } } diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index 62d06960..d7505bb9 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -9,9 +9,10 @@ import ( ) type Decorate struct { - AreaId int - FinishList map[int]struct{} - Progress int + AreaId int + FinishList map[int]struct{} + Progress int + DecorateNum int } func (d *Decorate) InitData() { @@ -41,6 +42,7 @@ func (d *Decorate) Decorate(areaId int, decorateId int) ([]*item.Item, error) { d.Progress = 0 d.FinishList = make(map[int]struct{}) } + d.DecorateNum++ return Item, nil } diff --git a/src/server/game/mod/face/Face.go b/src/server/game/mod/face/Face.go index 14fd2eae..35a71449 100644 --- a/src/server/game/mod/face/Face.go +++ b/src/server/game/mod/face/Face.go @@ -22,7 +22,7 @@ func (f *FaceMod) InitData() { for _, v := range InitId { f.List[v] = Face{} } - f.SetId = InitId[0] + f.SetId = 1 } } @@ -34,7 +34,7 @@ func (f *FaceMod) SetFace(Id int) error { return nil } -func (f *FaceMod) BackData() *msg.ResFaceInfo { +func (f *FaceMod) BackData() []*msg.FaceInfo { l := make([]*msg.FaceInfo, 0) for k, v := range f.List { l = append(l, &msg.FaceInfo{ @@ -42,9 +42,5 @@ func (f *FaceMod) BackData() *msg.ResFaceInfo { EndTime: v.Ts, }) } - // 返回数据 - return &msg.ResFaceInfo{ - FaceList: l, - SetId: int32(f.SetId), - } + return l } diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index cebbed35..0d150fb5 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -7,12 +7,10 @@ import ( ) type FriendMod struct { - FriendList map[int]struct{} // 好友列表 - Apply map[int]struct{} // 请求列表 - ApplyCard map[int]*card.CardInfo // 收到的申请交换 - ExchangeCard map[int]*card.CardInfo // 申请交换 - SelectCard map[int]*card.CardInfo // 选择交换 - Log []*LogInfo // 日志 + FriendList map[int]struct{} // 好友列表 + Apply map[int]struct{} // 请求列表 + Card map[string]*card.CardInfo // 收到的申请交换 + Log []*LogInfo // 日志 } const ( @@ -40,14 +38,8 @@ func (f *FriendMod) InitData() { if f.Apply == nil { f.Apply = make(map[int]struct{}) } - if f.ApplyCard == nil { - f.ApplyCard = make(map[int]*card.CardInfo) - } - if f.ExchangeCard == nil { - f.ExchangeCard = make(map[int]*card.CardInfo) - } - if f.SelectCard == nil { - f.SelectCard = make(map[int]*card.CardInfo) + if f.Card == nil { + f.Card = make(map[string]*card.CardInfo) } } @@ -57,49 +49,20 @@ func (f *FriendMod) AddFriend(id int) { f.Log = append(f.Log, &LogInfo{Uid: id, Type: LOG_TYPE_ADD, Time: GoUtil.Now()}) } -func (f *FriendMod) GetCardGiveId(Uid int) *card.CardInfo { - for _, v := range f.ApplyCard { - if v.AUid == Uid { - return v - } - } - return nil -} - -func (f *FriendMod) CardGiveApply(CardInfo *card.CardInfo) { - f.ApplyCard[CardInfo.AUid] = CardInfo -} - -func (f *FriendMod) SetCardExchange(CardInfo *card.CardInfo) { - f.ExchangeCard[CardInfo.AUid] = CardInfo -} - -func (f *FriendMod) GetCardExchange(Uid int) *card.CardInfo { - v, ok := f.ExchangeCard[Uid] +func (f *FriendMod) GetCardInfo(Id string) *card.CardInfo { + v, ok := f.Card[Id] if !ok { return nil } return v } -func (f *FriendMod) DelCardExchange(Uid int) { - delete(f.ExchangeCard, Uid) +func (f *FriendMod) SetCardInfo(CardInfo *card.CardInfo) { + f.Card[CardInfo.Id] = CardInfo } -func (f *FriendMod) CardSelectExchange(CardInfo *card.CardInfo) { - f.SelectCard[CardInfo.BUid] = CardInfo -} - -func (f *FriendMod) GetSelectInfo(Uid int) *card.CardInfo { - v, ok := f.SelectCard[Uid] - if !ok { - return nil - } - return v -} - -func (f *FriendMod) DelSelectInfo(CardInfo *card.CardInfo) { - delete(f.SelectCard, CardInfo.BUid) +func (f *FriendMod) DelCardInfo(Id string) { + delete(f.Card, Id) } func (f *FriendMod) DelFriend(id int) { @@ -127,7 +90,7 @@ func (f *FriendMod) HandleMsg(m *msg.Msg) { delete(f.FriendList, m.From) case msg.HANDLE_TYPE_REQ_CARD: CardInfo := m.Extra.(*card.CardInfo) - f.CardGiveApply(CardInfo) + f.SetCardInfo(CardInfo) } } @@ -135,14 +98,6 @@ func (f *FriendMod) CheckApply(id int) bool { _, ok := f.Apply[id] return ok } -func (f *FriendMod) RefuseCardGive(Uid int) *card.CardInfo { - v, ok := f.ApplyCard[Uid] - if !ok { - return nil - } - delete(f.ApplyCard, Uid) - return v -} func (f *FriendMod) AddFriendApply(UId int) { f.Apply[UId] = struct{}{} diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index f3fbabbb..4b05b7bd 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -33,13 +33,16 @@ const ( HANDLE_TYPE_REFUSE_SELECT_CARD = 10 //B拒绝选择置换卡牌 HANDLE_TYPE_REFUSE_EX_CARD = 11 //A拒绝置换卡牌 + HANDLE_TYPE_SEND_CARD = 15 //赠送卡牌 // 榜单操作 HANDLE_TYPE_RANK = 101 //榜单操作 HANDLE_TYPE_RANK_INFO = 102 //榜单信息 HANDLE_TYPE_RANK_NOTIFY = 103 //榜单信息 // 邮件操作 HANDLE_TYPE_MAIL = 201 //邮件操作 - + // 锦标赛 + HANDLE_TYPE_CHAMPSHIP_GROUP = 301 //锦标赛分组操作 + HANDLE_TYPE_CHAMPSHIP_INRANK = 302 //锦标赛入榜操作 //server mod handle SERVER_ZERO_UPDATE = 1000 //zero update ) diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index ff75aa2e..6674d316 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -170,58 +170,6 @@ func (ITEM_TYPE) EnumDescriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{2} } -type FRIEND_NOTIFY_TYPE int32 - -const ( - FRIEND_NOTIFY_TYPE_FAPPLY FRIEND_NOTIFY_TYPE = 0 - FRIEND_NOTIFY_TYPE_FADD FRIEND_NOTIFY_TYPE = 1 - FRIEND_NOTIFY_TYPE_FREFUSE FRIEND_NOTIFY_TYPE = 2 - FRIEND_NOTIFY_TYPE_FDELETE FRIEND_NOTIFY_TYPE = 3 -) - -// Enum value maps for FRIEND_NOTIFY_TYPE. -var ( - FRIEND_NOTIFY_TYPE_name = map[int32]string{ - 0: "FAPPLY", - 1: "FADD", - 2: "FREFUSE", - 3: "FDELETE", - } - FRIEND_NOTIFY_TYPE_value = map[string]int32{ - "FAPPLY": 0, - "FADD": 1, - "FREFUSE": 2, - "FDELETE": 3, - } -) - -func (x FRIEND_NOTIFY_TYPE) Enum() *FRIEND_NOTIFY_TYPE { - p := new(FRIEND_NOTIFY_TYPE) - *p = x - return p -} - -func (x FRIEND_NOTIFY_TYPE) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (FRIEND_NOTIFY_TYPE) Descriptor() protoreflect.EnumDescriptor { - return file_Gameapi_proto_enumTypes[3].Descriptor() -} - -func (FRIEND_NOTIFY_TYPE) Type() protoreflect.EnumType { - return &file_Gameapi_proto_enumTypes[3] -} - -func (x FRIEND_NOTIFY_TYPE) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use FRIEND_NOTIFY_TYPE.Descriptor instead. -func (FRIEND_NOTIFY_TYPE) EnumDescriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{3} -} - type UseItemResponse_CODE int32 const ( @@ -267,11 +215,11 @@ func (x UseItemResponse_CODE) String() string { } func (UseItemResponse_CODE) Descriptor() protoreflect.EnumDescriptor { - return file_Gameapi_proto_enumTypes[4].Descriptor() + return file_Gameapi_proto_enumTypes[3].Descriptor() } func (UseItemResponse_CODE) Type() protoreflect.EnumType { - return &file_Gameapi_proto_enumTypes[4] + return &file_Gameapi_proto_enumTypes[3] } func (x UseItemResponse_CODE) Number() protoreflect.EnumNumber { @@ -22782,6 +22730,242 @@ func (x *BaseInfo) GetEnergyBuy() int32 { return 0 } +type ReqUserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReqUserInfo) Reset() { + *x = ReqUserInfo{} + mi := &file_Gameapi_proto_msgTypes[384] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReqUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqUserInfo) ProtoMessage() {} + +func (x *ReqUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[384] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqUserInfo.ProtoReflect.Descriptor instead. +func (*ReqUserInfo) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{384} +} + +type UserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` + Face int32 `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"` + DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` + AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` + FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` + Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录 +} + +func (x *UserInfo) Reset() { + *x = UserInfo{} + mi := &file_Gameapi_proto_msgTypes[385] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[385] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{385} +} + +func (x *UserInfo) GetUid() int32 { + if x != nil { + return x.Uid + } + return 0 +} + +func (x *UserInfo) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *UserInfo) GetAvatar() int32 { + if x != nil { + return x.Avatar + } + return 0 +} + +func (x *UserInfo) GetFace() int32 { + if x != nil { + return x.Face + } + return 0 +} + +func (x *UserInfo) GetDecorateCnt() int32 { + if x != nil { + return x.DecorateCnt + } + return 0 +} + +func (x *UserInfo) GetAvatarList() []*AvatarInfo { + if x != nil { + return x.AvatarList + } + return nil +} + +func (x *UserInfo) GetFaceList() []*FaceInfo { + if x != nil { + return x.FaceList + } + return nil +} + +func (x *UserInfo) GetLogin() int32 { + if x != nil { + return x.Login + } + return 0 +} + +// 设置昵称 +type ReqSetName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` +} + +func (x *ReqSetName) Reset() { + *x = ReqSetName{} + mi := &file_Gameapi_proto_msgTypes[386] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReqSetName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqSetName) ProtoMessage() {} + +func (x *ReqSetName) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[386] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqSetName.ProtoReflect.Descriptor instead. +func (*ReqSetName) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{386} +} + +func (x *ReqSetName) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type ResSetName struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` +} + +func (x *ResSetName) Reset() { + *x = ResSetName{} + mi := &file_Gameapi_proto_msgTypes[387] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResSetName) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResSetName) ProtoMessage() {} + +func (x *ResSetName) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[387] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResSetName.ProtoReflect.Descriptor instead. +func (*ResSetName) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{387} +} + +func (x *ResSetName) GetResultCode() RES_CODE { + if x != nil { + return x.ResultCode + } + return RES_CODE_FAIL +} + +func (x *ResSetName) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + // 购买能量 type ReqBuyEnergy struct { state protoimpl.MessageState @@ -22793,7 +22977,7 @@ type ReqBuyEnergy struct { func (x *ReqBuyEnergy) Reset() { *x = ReqBuyEnergy{} - mi := &file_Gameapi_proto_msgTypes[384] + mi := &file_Gameapi_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22805,7 +22989,7 @@ func (x *ReqBuyEnergy) String() string { func (*ReqBuyEnergy) ProtoMessage() {} func (x *ReqBuyEnergy) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[384] + mi := &file_Gameapi_proto_msgTypes[388] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22818,7 +23002,7 @@ func (x *ReqBuyEnergy) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqBuyEnergy.ProtoReflect.Descriptor instead. func (*ReqBuyEnergy) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{384} + return file_Gameapi_proto_rawDescGZIP(), []int{388} } func (x *ReqBuyEnergy) GetEnergy() int32 { @@ -22839,7 +23023,7 @@ type ResBuyEnergy struct { func (x *ResBuyEnergy) Reset() { *x = ResBuyEnergy{} - mi := &file_Gameapi_proto_msgTypes[385] + mi := &file_Gameapi_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22851,7 +23035,7 @@ func (x *ResBuyEnergy) String() string { func (*ResBuyEnergy) ProtoMessage() {} func (x *ResBuyEnergy) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[385] + mi := &file_Gameapi_proto_msgTypes[389] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22864,7 +23048,7 @@ func (x *ResBuyEnergy) ProtoReflect() protoreflect.Message { // Deprecated: Use ResBuyEnergy.ProtoReflect.Descriptor instead. func (*ResBuyEnergy) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{385} + return file_Gameapi_proto_rawDescGZIP(), []int{389} } func (x *ResBuyEnergy) GetCode() RES_CODE { @@ -22891,7 +23075,7 @@ type ReqGetHandbookReward struct { func (x *ReqGetHandbookReward) Reset() { *x = ReqGetHandbookReward{} - mi := &file_Gameapi_proto_msgTypes[386] + mi := &file_Gameapi_proto_msgTypes[390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22903,7 +23087,7 @@ func (x *ReqGetHandbookReward) String() string { func (*ReqGetHandbookReward) ProtoMessage() {} func (x *ReqGetHandbookReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[386] + mi := &file_Gameapi_proto_msgTypes[390] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22916,7 +23100,7 @@ func (x *ReqGetHandbookReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetHandbookReward.ProtoReflect.Descriptor instead. func (*ReqGetHandbookReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{386} + return file_Gameapi_proto_rawDescGZIP(), []int{390} } func (x *ReqGetHandbookReward) GetChessId() int32 { @@ -22937,7 +23121,7 @@ type HandbookInfo struct { func (x *HandbookInfo) Reset() { *x = HandbookInfo{} - mi := &file_Gameapi_proto_msgTypes[387] + mi := &file_Gameapi_proto_msgTypes[391] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22949,7 +23133,7 @@ func (x *HandbookInfo) String() string { func (*HandbookInfo) ProtoMessage() {} func (x *HandbookInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[387] + mi := &file_Gameapi_proto_msgTypes[391] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22962,7 +23146,7 @@ func (x *HandbookInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use HandbookInfo.ProtoReflect.Descriptor instead. func (*HandbookInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{387} + return file_Gameapi_proto_rawDescGZIP(), []int{391} } func (x *HandbookInfo) GetChessId() int32 { @@ -22989,7 +23173,7 @@ type Handbook struct { func (x *Handbook) Reset() { *x = Handbook{} - mi := &file_Gameapi_proto_msgTypes[388] + mi := &file_Gameapi_proto_msgTypes[392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23001,7 +23185,7 @@ func (x *Handbook) String() string { func (*Handbook) ProtoMessage() {} func (x *Handbook) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[388] + mi := &file_Gameapi_proto_msgTypes[392] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23014,7 +23198,7 @@ func (x *Handbook) ProtoReflect() protoreflect.Message { // Deprecated: Use Handbook.ProtoReflect.Descriptor instead. func (*Handbook) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{388} + return file_Gameapi_proto_rawDescGZIP(), []int{392} } func (x *Handbook) GetHandbooks() []*HandbookInfo { @@ -23035,7 +23219,7 @@ type ResGetHandbookReward struct { func (x *ResGetHandbookReward) Reset() { *x = ResGetHandbookReward{} - mi := &file_Gameapi_proto_msgTypes[389] + mi := &file_Gameapi_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23047,7 +23231,7 @@ func (x *ResGetHandbookReward) String() string { func (*ResGetHandbookReward) ProtoMessage() {} func (x *ResGetHandbookReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[389] + mi := &file_Gameapi_proto_msgTypes[393] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23060,7 +23244,7 @@ func (x *ResGetHandbookReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetHandbookReward.ProtoReflect.Descriptor instead. func (*ResGetHandbookReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{389} + return file_Gameapi_proto_rawDescGZIP(), []int{393} } func (x *ResGetHandbookReward) GetCode() RES_CODE { @@ -23087,7 +23271,7 @@ type ReqRewardOrder struct { func (x *ReqRewardOrder) Reset() { *x = ReqRewardOrder{} - mi := &file_Gameapi_proto_msgTypes[390] + mi := &file_Gameapi_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23099,7 +23283,7 @@ func (x *ReqRewardOrder) String() string { func (*ReqRewardOrder) ProtoMessage() {} func (x *ReqRewardOrder) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[390] + mi := &file_Gameapi_proto_msgTypes[394] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23112,7 +23296,7 @@ func (x *ReqRewardOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRewardOrder.ProtoReflect.Descriptor instead. func (*ReqRewardOrder) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{390} + return file_Gameapi_proto_rawDescGZIP(), []int{394} } func (x *ReqRewardOrder) GetOrderId() int32 { @@ -23133,7 +23317,7 @@ type ResRewardOrder struct { func (x *ResRewardOrder) Reset() { *x = ResRewardOrder{} - mi := &file_Gameapi_proto_msgTypes[391] + mi := &file_Gameapi_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23145,7 +23329,7 @@ func (x *ResRewardOrder) String() string { func (*ResRewardOrder) ProtoMessage() {} func (x *ResRewardOrder) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[391] + mi := &file_Gameapi_proto_msgTypes[395] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23158,7 +23342,7 @@ func (x *ResRewardOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRewardOrder.ProtoReflect.Descriptor instead. func (*ResRewardOrder) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{391} + return file_Gameapi_proto_rawDescGZIP(), []int{395} } func (x *ResRewardOrder) GetCode() RES_CODE { @@ -23187,7 +23371,7 @@ type Order struct { func (x *Order) Reset() { *x = Order{} - mi := &file_Gameapi_proto_msgTypes[392] + mi := &file_Gameapi_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23199,7 +23383,7 @@ func (x *Order) String() string { func (*Order) ProtoMessage() {} func (x *Order) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[392] + mi := &file_Gameapi_proto_msgTypes[396] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23212,7 +23396,7 @@ func (x *Order) ProtoReflect() protoreflect.Message { // Deprecated: Use Order.ProtoReflect.Descriptor instead. func (*Order) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{392} + return file_Gameapi_proto_rawDescGZIP(), []int{396} } func (x *Order) GetId() int32 { @@ -23246,7 +23430,7 @@ type ResOrderList struct { func (x *ResOrderList) Reset() { *x = ResOrderList{} - mi := &file_Gameapi_proto_msgTypes[393] + mi := &file_Gameapi_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23258,7 +23442,7 @@ func (x *ResOrderList) String() string { func (*ResOrderList) ProtoMessage() {} func (x *ResOrderList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[393] + mi := &file_Gameapi_proto_msgTypes[397] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23271,7 +23455,7 @@ func (x *ResOrderList) ProtoReflect() protoreflect.Message { // Deprecated: Use ResOrderList.ProtoReflect.Descriptor instead. func (*ResOrderList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{393} + return file_Gameapi_proto_rawDescGZIP(), []int{397} } func (x *ResOrderList) GetOrderList() []*Order { @@ -23293,7 +23477,7 @@ type ResDecorateInfo struct { func (x *ResDecorateInfo) Reset() { *x = ResDecorateInfo{} - mi := &file_Gameapi_proto_msgTypes[394] + mi := &file_Gameapi_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23305,7 +23489,7 @@ func (x *ResDecorateInfo) String() string { func (*ResDecorateInfo) ProtoMessage() {} func (x *ResDecorateInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[394] + mi := &file_Gameapi_proto_msgTypes[398] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23318,7 +23502,7 @@ func (x *ResDecorateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDecorateInfo.ProtoReflect.Descriptor instead. func (*ResDecorateInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{394} + return file_Gameapi_proto_rawDescGZIP(), []int{398} } func (x *ResDecorateInfo) GetAreaId() int32 { @@ -23347,7 +23531,7 @@ type ReqDecorate struct { func (x *ReqDecorate) Reset() { *x = ReqDecorate{} - mi := &file_Gameapi_proto_msgTypes[395] + mi := &file_Gameapi_proto_msgTypes[399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23359,7 +23543,7 @@ func (x *ReqDecorate) String() string { func (*ReqDecorate) ProtoMessage() {} func (x *ReqDecorate) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[395] + mi := &file_Gameapi_proto_msgTypes[399] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23372,7 +23556,7 @@ func (x *ReqDecorate) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDecorate.ProtoReflect.Descriptor instead. func (*ReqDecorate) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{395} + return file_Gameapi_proto_rawDescGZIP(), []int{399} } func (x *ReqDecorate) GetAreaId() int32 { @@ -23400,7 +23584,7 @@ type ResDecorate struct { func (x *ResDecorate) Reset() { *x = ResDecorate{} - mi := &file_Gameapi_proto_msgTypes[396] + mi := &file_Gameapi_proto_msgTypes[400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23412,7 +23596,7 @@ func (x *ResDecorate) String() string { func (*ResDecorate) ProtoMessage() {} func (x *ResDecorate) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[396] + mi := &file_Gameapi_proto_msgTypes[400] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23425,7 +23609,7 @@ func (x *ResDecorate) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDecorate.ProtoReflect.Descriptor instead. func (*ResDecorate) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{396} + return file_Gameapi_proto_rawDescGZIP(), []int{400} } func (x *ResDecorate) GetCode() RES_CODE { @@ -23454,7 +23638,7 @@ type ReqGmCommand struct { func (x *ReqGmCommand) Reset() { *x = ReqGmCommand{} - mi := &file_Gameapi_proto_msgTypes[397] + mi := &file_Gameapi_proto_msgTypes[401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23466,7 +23650,7 @@ func (x *ReqGmCommand) String() string { func (*ReqGmCommand) ProtoMessage() {} func (x *ReqGmCommand) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[397] + mi := &file_Gameapi_proto_msgTypes[401] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23479,7 +23663,7 @@ func (x *ReqGmCommand) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGmCommand.ProtoReflect.Descriptor instead. func (*ReqGmCommand) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{397} + return file_Gameapi_proto_rawDescGZIP(), []int{401} } func (x *ReqGmCommand) GetCommand() string { @@ -23508,7 +23692,7 @@ type Card struct { func (x *Card) Reset() { *x = Card{} - mi := &file_Gameapi_proto_msgTypes[398] + mi := &file_Gameapi_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23520,7 +23704,7 @@ func (x *Card) String() string { func (*Card) ProtoMessage() {} func (x *Card) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[398] + mi := &file_Gameapi_proto_msgTypes[402] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23533,7 +23717,7 @@ func (x *Card) ProtoReflect() protoreflect.Message { // Deprecated: Use Card.ProtoReflect.Descriptor instead. func (*Card) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{398} + return file_Gameapi_proto_rawDescGZIP(), []int{402} } func (x *Card) GetId() int32 { @@ -23569,7 +23753,7 @@ type ResCardInfo struct { func (x *ResCardInfo) Reset() { *x = ResCardInfo{} - mi := &file_Gameapi_proto_msgTypes[399] + mi := &file_Gameapi_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23581,7 +23765,7 @@ func (x *ResCardInfo) String() string { func (*ResCardInfo) ProtoMessage() {} func (x *ResCardInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[399] + mi := &file_Gameapi_proto_msgTypes[403] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23594,7 +23778,7 @@ func (x *ResCardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCardInfo.ProtoReflect.Descriptor instead. func (*ResCardInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{399} + return file_Gameapi_proto_rawDescGZIP(), []int{403} } func (x *ResCardInfo) GetCardList() []*Card { @@ -23678,7 +23862,7 @@ type ReqCardCollectReward struct { func (x *ReqCardCollectReward) Reset() { *x = ReqCardCollectReward{} - mi := &file_Gameapi_proto_msgTypes[400] + mi := &file_Gameapi_proto_msgTypes[404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23690,7 +23874,7 @@ func (x *ReqCardCollectReward) String() string { func (*ReqCardCollectReward) ProtoMessage() {} func (x *ReqCardCollectReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[400] + mi := &file_Gameapi_proto_msgTypes[404] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23703,7 +23887,7 @@ func (x *ReqCardCollectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCardCollectReward.ProtoReflect.Descriptor instead. func (*ReqCardCollectReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{400} + return file_Gameapi_proto_rawDescGZIP(), []int{404} } func (x *ReqCardCollectReward) GetColor() int32 { @@ -23724,7 +23908,7 @@ type ResCardCollectReward struct { func (x *ResCardCollectReward) Reset() { *x = ResCardCollectReward{} - mi := &file_Gameapi_proto_msgTypes[401] + mi := &file_Gameapi_proto_msgTypes[405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23736,7 +23920,7 @@ func (x *ResCardCollectReward) String() string { func (*ResCardCollectReward) ProtoMessage() {} func (x *ResCardCollectReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[401] + mi := &file_Gameapi_proto_msgTypes[405] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23749,7 +23933,7 @@ func (x *ResCardCollectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCardCollectReward.ProtoReflect.Descriptor instead. func (*ResCardCollectReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{401} + return file_Gameapi_proto_rawDescGZIP(), []int{405} } func (x *ResCardCollectReward) GetCode() RES_CODE { @@ -23777,7 +23961,7 @@ type ReqExStarReward struct { func (x *ReqExStarReward) Reset() { *x = ReqExStarReward{} - mi := &file_Gameapi_proto_msgTypes[402] + mi := &file_Gameapi_proto_msgTypes[406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23789,7 +23973,7 @@ func (x *ReqExStarReward) String() string { func (*ReqExStarReward) ProtoMessage() {} func (x *ReqExStarReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[402] + mi := &file_Gameapi_proto_msgTypes[406] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23802,7 +23986,7 @@ func (x *ReqExStarReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqExStarReward.ProtoReflect.Descriptor instead. func (*ReqExStarReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{402} + return file_Gameapi_proto_rawDescGZIP(), []int{406} } func (x *ReqExStarReward) GetId() int32 { @@ -23823,7 +24007,7 @@ type ResExStarReward struct { func (x *ResExStarReward) Reset() { *x = ResExStarReward{} - mi := &file_Gameapi_proto_msgTypes[403] + mi := &file_Gameapi_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23835,7 +24019,7 @@ func (x *ResExStarReward) String() string { func (*ResExStarReward) ProtoMessage() {} func (x *ResExStarReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[403] + mi := &file_Gameapi_proto_msgTypes[407] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23848,7 +24032,7 @@ func (x *ResExStarReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResExStarReward.ProtoReflect.Descriptor instead. func (*ResExStarReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{403} + return file_Gameapi_proto_rawDescGZIP(), []int{407} } func (x *ResExStarReward) GetCode() RES_CODE { @@ -23874,7 +24058,7 @@ type ReqAllCollectReward struct { func (x *ReqAllCollectReward) Reset() { *x = ReqAllCollectReward{} - mi := &file_Gameapi_proto_msgTypes[404] + mi := &file_Gameapi_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23886,7 +24070,7 @@ func (x *ReqAllCollectReward) String() string { func (*ReqAllCollectReward) ProtoMessage() {} func (x *ReqAllCollectReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[404] + mi := &file_Gameapi_proto_msgTypes[408] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23899,7 +24083,7 @@ func (x *ReqAllCollectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAllCollectReward.ProtoReflect.Descriptor instead. func (*ReqAllCollectReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{404} + return file_Gameapi_proto_rawDescGZIP(), []int{408} } type ResAllCollectReward struct { @@ -23913,7 +24097,7 @@ type ResAllCollectReward struct { func (x *ResAllCollectReward) Reset() { *x = ResAllCollectReward{} - mi := &file_Gameapi_proto_msgTypes[405] + mi := &file_Gameapi_proto_msgTypes[409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23925,7 +24109,7 @@ func (x *ResAllCollectReward) String() string { func (*ResAllCollectReward) ProtoMessage() {} func (x *ResAllCollectReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[405] + mi := &file_Gameapi_proto_msgTypes[409] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23938,7 +24122,7 @@ func (x *ResAllCollectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAllCollectReward.ProtoReflect.Descriptor instead. func (*ResAllCollectReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{405} + return file_Gameapi_proto_rawDescGZIP(), []int{409} } func (x *ResAllCollectReward) GetCode() RES_CODE { @@ -23967,7 +24151,7 @@ type ReqCardGive struct { func (x *ReqCardGive) Reset() { *x = ReqCardGive{} - mi := &file_Gameapi_proto_msgTypes[406] + mi := &file_Gameapi_proto_msgTypes[410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23979,7 +24163,7 @@ func (x *ReqCardGive) String() string { func (*ReqCardGive) ProtoMessage() {} func (x *ReqCardGive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[406] + mi := &file_Gameapi_proto_msgTypes[410] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23992,7 +24176,7 @@ func (x *ReqCardGive) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCardGive.ProtoReflect.Descriptor instead. func (*ReqCardGive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{406} + return file_Gameapi_proto_rawDescGZIP(), []int{410} } func (x *ReqCardGive) GetUid() []int32 { @@ -24020,7 +24204,7 @@ type ResCardGive struct { func (x *ResCardGive) Reset() { *x = ResCardGive{} - mi := &file_Gameapi_proto_msgTypes[407] + mi := &file_Gameapi_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24032,7 +24216,7 @@ func (x *ResCardGive) String() string { func (*ResCardGive) ProtoMessage() {} func (x *ResCardGive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[407] + mi := &file_Gameapi_proto_msgTypes[411] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24045,7 +24229,7 @@ func (x *ResCardGive) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCardGive.ProtoReflect.Descriptor instead. func (*ResCardGive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{407} + return file_Gameapi_proto_rawDescGZIP(), []int{411} } func (x *ResCardGive) GetCode() RES_CODE { @@ -24068,12 +24252,12 @@ type ReqAgreeCardGive struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友Uid + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id } func (x *ReqAgreeCardGive) Reset() { *x = ReqAgreeCardGive{} - mi := &file_Gameapi_proto_msgTypes[408] + mi := &file_Gameapi_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24085,7 +24269,7 @@ func (x *ReqAgreeCardGive) String() string { func (*ReqAgreeCardGive) ProtoMessage() {} func (x *ReqAgreeCardGive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[408] + mi := &file_Gameapi_proto_msgTypes[412] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24098,14 +24282,14 @@ func (x *ReqAgreeCardGive) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAgreeCardGive.ProtoReflect.Descriptor instead. func (*ReqAgreeCardGive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{408} + return file_Gameapi_proto_rawDescGZIP(), []int{412} } -func (x *ReqAgreeCardGive) GetUid() int32 { +func (x *ReqAgreeCardGive) GetId() string { if x != nil { - return x.Uid + return x.Id } - return 0 + return "" } type ResAgreeCardGive struct { @@ -24119,7 +24303,7 @@ type ResAgreeCardGive struct { func (x *ResAgreeCardGive) Reset() { *x = ResAgreeCardGive{} - mi := &file_Gameapi_proto_msgTypes[409] + mi := &file_Gameapi_proto_msgTypes[413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24131,7 +24315,7 @@ func (x *ResAgreeCardGive) String() string { func (*ResAgreeCardGive) ProtoMessage() {} func (x *ResAgreeCardGive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[409] + mi := &file_Gameapi_proto_msgTypes[413] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24144,7 +24328,7 @@ func (x *ResAgreeCardGive) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAgreeCardGive.ProtoReflect.Descriptor instead. func (*ResAgreeCardGive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{409} + return file_Gameapi_proto_rawDescGZIP(), []int{413} } func (x *ResAgreeCardGive) GetCode() RES_CODE { @@ -24167,12 +24351,12 @@ type ReqRefuseCardGive struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` // 好友Uid + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id } func (x *ReqRefuseCardGive) Reset() { *x = ReqRefuseCardGive{} - mi := &file_Gameapi_proto_msgTypes[410] + mi := &file_Gameapi_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24184,7 +24368,7 @@ func (x *ReqRefuseCardGive) String() string { func (*ReqRefuseCardGive) ProtoMessage() {} func (x *ReqRefuseCardGive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[410] + mi := &file_Gameapi_proto_msgTypes[414] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24197,14 +24381,14 @@ func (x *ReqRefuseCardGive) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefuseCardGive.ProtoReflect.Descriptor instead. func (*ReqRefuseCardGive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{410} + return file_Gameapi_proto_rawDescGZIP(), []int{414} } -func (x *ReqRefuseCardGive) GetUid() int32 { +func (x *ReqRefuseCardGive) GetId() string { if x != nil { - return x.Uid + return x.Id } - return 0 + return "" } type ResRefuseCardGive struct { @@ -24218,7 +24402,7 @@ type ResRefuseCardGive struct { func (x *ResRefuseCardGive) Reset() { *x = ResRefuseCardGive{} - mi := &file_Gameapi_proto_msgTypes[411] + mi := &file_Gameapi_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24230,7 +24414,7 @@ func (x *ResRefuseCardGive) String() string { func (*ResRefuseCardGive) ProtoMessage() {} func (x *ResRefuseCardGive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[411] + mi := &file_Gameapi_proto_msgTypes[415] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24243,7 +24427,7 @@ func (x *ResRefuseCardGive) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefuseCardGive.ProtoReflect.Descriptor instead. func (*ResRefuseCardGive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{411} + return file_Gameapi_proto_rawDescGZIP(), []int{415} } func (x *ResRefuseCardGive) GetCode() RES_CODE { @@ -24260,6 +24444,113 @@ func (x *ResRefuseCardGive) GetMsg() string { return "" } +// 直接赠送卡牌 +type ReqCardSend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` +} + +func (x *ReqCardSend) Reset() { + *x = ReqCardSend{} + mi := &file_Gameapi_proto_msgTypes[416] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReqCardSend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqCardSend) ProtoMessage() {} + +func (x *ReqCardSend) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[416] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqCardSend.ProtoReflect.Descriptor instead. +func (*ReqCardSend) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{416} +} + +func (x *ReqCardSend) GetUid() int32 { + if x != nil { + return x.Uid + } + return 0 +} + +func (x *ReqCardSend) GetCardId() int32 { + if x != nil { + return x.CardId + } + return 0 +} + +type ResCardSend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` +} + +func (x *ResCardSend) Reset() { + *x = ResCardSend{} + mi := &file_Gameapi_proto_msgTypes[417] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResCardSend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResCardSend) ProtoMessage() {} + +func (x *ResCardSend) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[417] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResCardSend.ProtoReflect.Descriptor instead. +func (*ResCardSend) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{417} +} + +func (x *ResCardSend) GetCode() RES_CODE { + if x != nil { + return x.Code + } + return RES_CODE_FAIL +} + +func (x *ResCardSend) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + // 请求卡牌交换 type ReqCardExchange struct { state protoimpl.MessageState @@ -24268,12 +24559,11 @@ type ReqCardExchange struct { Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` - Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 1 白送 2 交换 } func (x *ReqCardExchange) Reset() { *x = ReqCardExchange{} - mi := &file_Gameapi_proto_msgTypes[412] + mi := &file_Gameapi_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24285,7 +24575,7 @@ func (x *ReqCardExchange) String() string { func (*ReqCardExchange) ProtoMessage() {} func (x *ReqCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[412] + mi := &file_Gameapi_proto_msgTypes[418] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24298,7 +24588,7 @@ func (x *ReqCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCardExchange.ProtoReflect.Descriptor instead. func (*ReqCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{412} + return file_Gameapi_proto_rawDescGZIP(), []int{418} } func (x *ReqCardExchange) GetUid() int32 { @@ -24315,13 +24605,6 @@ func (x *ReqCardExchange) GetCardId() int32 { return 0 } -func (x *ReqCardExchange) GetType() int32 { - if x != nil { - return x.Type - } - return 0 -} - type ResCardExchange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -24333,7 +24616,7 @@ type ResCardExchange struct { func (x *ResCardExchange) Reset() { *x = ResCardExchange{} - mi := &file_Gameapi_proto_msgTypes[413] + mi := &file_Gameapi_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24345,7 +24628,7 @@ func (x *ResCardExchange) String() string { func (*ResCardExchange) ProtoMessage() {} func (x *ResCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[413] + mi := &file_Gameapi_proto_msgTypes[419] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24358,7 +24641,7 @@ func (x *ResCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCardExchange.ProtoReflect.Descriptor instead. func (*ResCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{413} + return file_Gameapi_proto_rawDescGZIP(), []int{419} } func (x *ResCardExchange) GetCode() RES_CODE { @@ -24381,13 +24664,13 @@ type ReqSelectCardExchange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` - CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqSelectCardExchange) Reset() { *x = ReqSelectCardExchange{} - mi := &file_Gameapi_proto_msgTypes[414] + mi := &file_Gameapi_proto_msgTypes[420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24399,7 +24682,7 @@ func (x *ReqSelectCardExchange) String() string { func (*ReqSelectCardExchange) ProtoMessage() {} func (x *ReqSelectCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[414] + mi := &file_Gameapi_proto_msgTypes[420] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24412,14 +24695,14 @@ func (x *ReqSelectCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSelectCardExchange.ProtoReflect.Descriptor instead. func (*ReqSelectCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{414} + return file_Gameapi_proto_rawDescGZIP(), []int{420} } -func (x *ReqSelectCardExchange) GetUid() int32 { +func (x *ReqSelectCardExchange) GetId() string { if x != nil { - return x.Uid + return x.Id } - return 0 + return "" } func (x *ReqSelectCardExchange) GetCardId() int32 { @@ -24440,7 +24723,7 @@ type ResSelectCardExchange struct { func (x *ResSelectCardExchange) Reset() { *x = ResSelectCardExchange{} - mi := &file_Gameapi_proto_msgTypes[415] + mi := &file_Gameapi_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24452,7 +24735,7 @@ func (x *ResSelectCardExchange) String() string { func (*ResSelectCardExchange) ProtoMessage() {} func (x *ResSelectCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[415] + mi := &file_Gameapi_proto_msgTypes[421] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24465,7 +24748,7 @@ func (x *ResSelectCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSelectCardExchange.ProtoReflect.Descriptor instead. func (*ResSelectCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{415} + return file_Gameapi_proto_rawDescGZIP(), []int{421} } func (x *ResSelectCardExchange) GetCode() RES_CODE { @@ -24488,12 +24771,12 @@ type ReqAgreeCardExchange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqAgreeCardExchange) Reset() { *x = ReqAgreeCardExchange{} - mi := &file_Gameapi_proto_msgTypes[416] + mi := &file_Gameapi_proto_msgTypes[422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24505,7 +24788,7 @@ func (x *ReqAgreeCardExchange) String() string { func (*ReqAgreeCardExchange) ProtoMessage() {} func (x *ReqAgreeCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[416] + mi := &file_Gameapi_proto_msgTypes[422] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24518,14 +24801,14 @@ func (x *ReqAgreeCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAgreeCardExchange.ProtoReflect.Descriptor instead. func (*ReqAgreeCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{416} + return file_Gameapi_proto_rawDescGZIP(), []int{422} } -func (x *ReqAgreeCardExchange) GetUid() int32 { +func (x *ReqAgreeCardExchange) GetId() string { if x != nil { - return x.Uid + return x.Id } - return 0 + return "" } type ResAgreeCardExchange struct { @@ -24539,7 +24822,7 @@ type ResAgreeCardExchange struct { func (x *ResAgreeCardExchange) Reset() { *x = ResAgreeCardExchange{} - mi := &file_Gameapi_proto_msgTypes[417] + mi := &file_Gameapi_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24551,7 +24834,7 @@ func (x *ResAgreeCardExchange) String() string { func (*ResAgreeCardExchange) ProtoMessage() {} func (x *ResAgreeCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[417] + mi := &file_Gameapi_proto_msgTypes[423] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24564,7 +24847,7 @@ func (x *ResAgreeCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAgreeCardExchange.ProtoReflect.Descriptor instead. func (*ResAgreeCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{417} + return file_Gameapi_proto_rawDescGZIP(), []int{423} } func (x *ResAgreeCardExchange) GetCode() RES_CODE { @@ -24587,12 +24870,12 @@ type ReqRefuseCardSelect struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqRefuseCardSelect) Reset() { *x = ReqRefuseCardSelect{} - mi := &file_Gameapi_proto_msgTypes[418] + mi := &file_Gameapi_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24604,7 +24887,7 @@ func (x *ReqRefuseCardSelect) String() string { func (*ReqRefuseCardSelect) ProtoMessage() {} func (x *ReqRefuseCardSelect) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[418] + mi := &file_Gameapi_proto_msgTypes[424] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24617,14 +24900,14 @@ func (x *ReqRefuseCardSelect) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefuseCardSelect.ProtoReflect.Descriptor instead. func (*ReqRefuseCardSelect) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{418} + return file_Gameapi_proto_rawDescGZIP(), []int{424} } -func (x *ReqRefuseCardSelect) GetUid() int32 { +func (x *ReqRefuseCardSelect) GetId() string { if x != nil { - return x.Uid + return x.Id } - return 0 + return "" } type ResRefuseCardSelect struct { @@ -24638,7 +24921,7 @@ type ResRefuseCardSelect struct { func (x *ResRefuseCardSelect) Reset() { *x = ResRefuseCardSelect{} - mi := &file_Gameapi_proto_msgTypes[419] + mi := &file_Gameapi_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24650,7 +24933,7 @@ func (x *ResRefuseCardSelect) String() string { func (*ResRefuseCardSelect) ProtoMessage() {} func (x *ResRefuseCardSelect) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[419] + mi := &file_Gameapi_proto_msgTypes[425] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24663,7 +24946,7 @@ func (x *ResRefuseCardSelect) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefuseCardSelect.ProtoReflect.Descriptor instead. func (*ResRefuseCardSelect) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{419} + return file_Gameapi_proto_rawDescGZIP(), []int{425} } func (x *ResRefuseCardSelect) GetCode() RES_CODE { @@ -24686,12 +24969,12 @@ type ReqRefuseCardExchange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uid int32 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqRefuseCardExchange) Reset() { *x = ReqRefuseCardExchange{} - mi := &file_Gameapi_proto_msgTypes[420] + mi := &file_Gameapi_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24703,7 +24986,7 @@ func (x *ReqRefuseCardExchange) String() string { func (*ReqRefuseCardExchange) ProtoMessage() {} func (x *ReqRefuseCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[420] + mi := &file_Gameapi_proto_msgTypes[426] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24716,14 +24999,14 @@ func (x *ReqRefuseCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefuseCardExchange.ProtoReflect.Descriptor instead. func (*ReqRefuseCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{420} + return file_Gameapi_proto_rawDescGZIP(), []int{426} } -func (x *ReqRefuseCardExchange) GetUid() int32 { +func (x *ReqRefuseCardExchange) GetId() string { if x != nil { - return x.Uid + return x.Id } - return 0 + return "" } type ResRefuseCardExchange struct { @@ -24737,7 +25020,7 @@ type ResRefuseCardExchange struct { func (x *ResRefuseCardExchange) Reset() { *x = ResRefuseCardExchange{} - mi := &file_Gameapi_proto_msgTypes[421] + mi := &file_Gameapi_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24749,7 +25032,7 @@ func (x *ResRefuseCardExchange) String() string { func (*ResRefuseCardExchange) ProtoMessage() {} func (x *ResRefuseCardExchange) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[421] + mi := &file_Gameapi_proto_msgTypes[427] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24762,7 +25045,7 @@ func (x *ResRefuseCardExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefuseCardExchange.ProtoReflect.Descriptor instead. func (*ResRefuseCardExchange) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{421} + return file_Gameapi_proto_rawDescGZIP(), []int{427} } func (x *ResRefuseCardExchange) GetCode() RES_CODE { @@ -24779,6 +25062,105 @@ func (x *ResRefuseCardExchange) GetMsg() string { return "" } +// 领取卡牌 +type ReqGetFriendCard struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` +} + +func (x *ReqGetFriendCard) Reset() { + *x = ReqGetFriendCard{} + mi := &file_Gameapi_proto_msgTypes[428] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReqGetFriendCard) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqGetFriendCard) ProtoMessage() {} + +func (x *ReqGetFriendCard) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[428] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqGetFriendCard.ProtoReflect.Descriptor instead. +func (*ReqGetFriendCard) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{428} +} + +func (x *ReqGetFriendCard) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type ResGetFriendCard struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` +} + +func (x *ResGetFriendCard) Reset() { + *x = ResGetFriendCard{} + mi := &file_Gameapi_proto_msgTypes[429] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResGetFriendCard) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResGetFriendCard) ProtoMessage() {} + +func (x *ResGetFriendCard) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[429] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResGetFriendCard.ProtoReflect.Descriptor instead. +func (*ResGetFriendCard) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{429} +} + +func (x *ResGetFriendCard) GetCode() RES_CODE { + if x != nil { + return x.Code + } + return RES_CODE_FAIL +} + +func (x *ResGetFriendCard) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + // 领取引导奖励 type ReqGuideReward struct { state protoimpl.MessageState @@ -24790,7 +25172,7 @@ type ReqGuideReward struct { func (x *ReqGuideReward) Reset() { *x = ReqGuideReward{} - mi := &file_Gameapi_proto_msgTypes[422] + mi := &file_Gameapi_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24802,7 +25184,7 @@ func (x *ReqGuideReward) String() string { func (*ReqGuideReward) ProtoMessage() {} func (x *ReqGuideReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[422] + mi := &file_Gameapi_proto_msgTypes[430] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24815,7 +25197,7 @@ func (x *ReqGuideReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGuideReward.ProtoReflect.Descriptor instead. func (*ReqGuideReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{422} + return file_Gameapi_proto_rawDescGZIP(), []int{430} } func (x *ReqGuideReward) GetId() int32 { @@ -24836,7 +25218,7 @@ type ResGuideReward struct { func (x *ResGuideReward) Reset() { *x = ResGuideReward{} - mi := &file_Gameapi_proto_msgTypes[423] + mi := &file_Gameapi_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24848,7 +25230,7 @@ func (x *ResGuideReward) String() string { func (*ResGuideReward) ProtoMessage() {} func (x *ResGuideReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[423] + mi := &file_Gameapi_proto_msgTypes[431] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24861,7 +25243,7 @@ func (x *ResGuideReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGuideReward.ProtoReflect.Descriptor instead. func (*ResGuideReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{423} + return file_Gameapi_proto_rawDescGZIP(), []int{431} } func (x *ResGuideReward) GetCode() RES_CODE { @@ -24888,7 +25270,7 @@ type ResGuildInfo struct { func (x *ResGuildInfo) Reset() { *x = ResGuildInfo{} - mi := &file_Gameapi_proto_msgTypes[424] + mi := &file_Gameapi_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24900,7 +25282,7 @@ func (x *ResGuildInfo) String() string { func (*ResGuildInfo) ProtoMessage() {} func (x *ResGuildInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[424] + mi := &file_Gameapi_proto_msgTypes[432] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24913,7 +25295,7 @@ func (x *ResGuildInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGuildInfo.ProtoReflect.Descriptor instead. func (*ResGuildInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{424} + return file_Gameapi_proto_rawDescGZIP(), []int{432} } func (x *ResGuildInfo) GetReward() map[int32]int32 { @@ -24936,7 +25318,7 @@ type ResItemPop struct { func (x *ResItemPop) Reset() { *x = ResItemPop{} - mi := &file_Gameapi_proto_msgTypes[425] + mi := &file_Gameapi_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24948,7 +25330,7 @@ func (x *ResItemPop) String() string { func (*ResItemPop) ProtoMessage() {} func (x *ResItemPop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[425] + mi := &file_Gameapi_proto_msgTypes[433] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24961,7 +25343,7 @@ func (x *ResItemPop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResItemPop.ProtoReflect.Descriptor instead. func (*ResItemPop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{425} + return file_Gameapi_proto_rawDescGZIP(), []int{433} } func (x *ResItemPop) GetId() int32 { @@ -25003,7 +25385,7 @@ type ItemInfo struct { func (x *ItemInfo) Reset() { *x = ItemInfo{} - mi := &file_Gameapi_proto_msgTypes[426] + mi := &file_Gameapi_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25015,7 +25397,7 @@ func (x *ItemInfo) String() string { func (*ItemInfo) ProtoMessage() {} func (x *ItemInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[426] + mi := &file_Gameapi_proto_msgTypes[434] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25028,7 +25410,7 @@ func (x *ItemInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ItemInfo.ProtoReflect.Descriptor instead. func (*ItemInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{426} + return file_Gameapi_proto_rawDescGZIP(), []int{434} } func (x *ItemInfo) GetId() int32 { @@ -25056,7 +25438,7 @@ type CardPack struct { func (x *CardPack) Reset() { *x = CardPack{} - mi := &file_Gameapi_proto_msgTypes[427] + mi := &file_Gameapi_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25068,7 +25450,7 @@ func (x *CardPack) String() string { func (*CardPack) ProtoMessage() {} func (x *CardPack) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[427] + mi := &file_Gameapi_proto_msgTypes[435] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25081,7 +25463,7 @@ func (x *CardPack) ProtoReflect() protoreflect.Message { // Deprecated: Use CardPack.ProtoReflect.Descriptor instead. func (*CardPack) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{427} + return file_Gameapi_proto_rawDescGZIP(), []int{435} } func (x *CardPack) GetId() int32 { @@ -25112,7 +25494,7 @@ type ResDailyTask struct { func (x *ResDailyTask) Reset() { *x = ResDailyTask{} - mi := &file_Gameapi_proto_msgTypes[428] + mi := &file_Gameapi_proto_msgTypes[436] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25124,7 +25506,7 @@ func (x *ResDailyTask) String() string { func (*ResDailyTask) ProtoMessage() {} func (x *ResDailyTask) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[428] + mi := &file_Gameapi_proto_msgTypes[436] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25137,7 +25519,7 @@ func (x *ResDailyTask) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDailyTask.ProtoReflect.Descriptor instead. func (*ResDailyTask) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{428} + return file_Gameapi_proto_rawDescGZIP(), []int{436} } func (x *ResDailyTask) GetWeekReward() map[int32]*DailyWeek { @@ -25187,7 +25569,7 @@ type DailyWeek struct { func (x *DailyWeek) Reset() { *x = DailyWeek{} - mi := &file_Gameapi_proto_msgTypes[429] + mi := &file_Gameapi_proto_msgTypes[437] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25199,7 +25581,7 @@ func (x *DailyWeek) String() string { func (*DailyWeek) ProtoMessage() {} func (x *DailyWeek) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[429] + mi := &file_Gameapi_proto_msgTypes[437] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25212,7 +25594,7 @@ func (x *DailyWeek) ProtoReflect() protoreflect.Message { // Deprecated: Use DailyWeek.ProtoReflect.Descriptor instead. func (*DailyWeek) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{429} + return file_Gameapi_proto_rawDescGZIP(), []int{437} } func (x *DailyWeek) GetItems() []*ItemInfo { @@ -25249,7 +25631,7 @@ type DailyTask struct { func (x *DailyTask) Reset() { *x = DailyTask{} - mi := &file_Gameapi_proto_msgTypes[430] + mi := &file_Gameapi_proto_msgTypes[438] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25261,7 +25643,7 @@ func (x *DailyTask) String() string { func (*DailyTask) ProtoMessage() {} func (x *DailyTask) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[430] + mi := &file_Gameapi_proto_msgTypes[438] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25274,7 +25656,7 @@ func (x *DailyTask) ProtoReflect() protoreflect.Message { // Deprecated: Use DailyTask.ProtoReflect.Descriptor instead. func (*DailyTask) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{430} + return file_Gameapi_proto_rawDescGZIP(), []int{438} } func (x *DailyTask) GetStatus() int32 { @@ -25319,7 +25701,7 @@ type QuestProgress struct { func (x *QuestProgress) Reset() { *x = QuestProgress{} - mi := &file_Gameapi_proto_msgTypes[431] + mi := &file_Gameapi_proto_msgTypes[439] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25331,7 +25713,7 @@ func (x *QuestProgress) String() string { func (*QuestProgress) ProtoMessage() {} func (x *QuestProgress) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[431] + mi := &file_Gameapi_proto_msgTypes[439] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25344,7 +25726,7 @@ func (x *QuestProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use QuestProgress.ProtoReflect.Descriptor instead. func (*QuestProgress) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{431} + return file_Gameapi_proto_rawDescGZIP(), []int{439} } func (x *QuestProgress) GetLabel() string { @@ -25393,7 +25775,7 @@ type ReqGetDailyTaskReward struct { func (x *ReqGetDailyTaskReward) Reset() { *x = ReqGetDailyTaskReward{} - mi := &file_Gameapi_proto_msgTypes[432] + mi := &file_Gameapi_proto_msgTypes[440] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25405,7 +25787,7 @@ func (x *ReqGetDailyTaskReward) String() string { func (*ReqGetDailyTaskReward) ProtoMessage() {} func (x *ReqGetDailyTaskReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[432] + mi := &file_Gameapi_proto_msgTypes[440] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25418,7 +25800,7 @@ func (x *ReqGetDailyTaskReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetDailyTaskReward.ProtoReflect.Descriptor instead. func (*ReqGetDailyTaskReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{432} + return file_Gameapi_proto_rawDescGZIP(), []int{440} } func (x *ReqGetDailyTaskReward) GetId() int32 { @@ -25439,7 +25821,7 @@ type ResGetDailyTaskReward struct { func (x *ResGetDailyTaskReward) Reset() { *x = ResGetDailyTaskReward{} - mi := &file_Gameapi_proto_msgTypes[433] + mi := &file_Gameapi_proto_msgTypes[441] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25451,7 +25833,7 @@ func (x *ResGetDailyTaskReward) String() string { func (*ResGetDailyTaskReward) ProtoMessage() {} func (x *ResGetDailyTaskReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[433] + mi := &file_Gameapi_proto_msgTypes[441] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25464,7 +25846,7 @@ func (x *ResGetDailyTaskReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetDailyTaskReward.ProtoReflect.Descriptor instead. func (*ResGetDailyTaskReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{433} + return file_Gameapi_proto_rawDescGZIP(), []int{441} } func (x *ResGetDailyTaskReward) GetCode() RES_CODE { @@ -25492,7 +25874,7 @@ type ReqGetDailyWeekReward struct { func (x *ReqGetDailyWeekReward) Reset() { *x = ReqGetDailyWeekReward{} - mi := &file_Gameapi_proto_msgTypes[434] + mi := &file_Gameapi_proto_msgTypes[442] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25504,7 +25886,7 @@ func (x *ReqGetDailyWeekReward) String() string { func (*ReqGetDailyWeekReward) ProtoMessage() {} func (x *ReqGetDailyWeekReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[434] + mi := &file_Gameapi_proto_msgTypes[442] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25517,7 +25899,7 @@ func (x *ReqGetDailyWeekReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetDailyWeekReward.ProtoReflect.Descriptor instead. func (*ReqGetDailyWeekReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{434} + return file_Gameapi_proto_rawDescGZIP(), []int{442} } func (x *ReqGetDailyWeekReward) GetId() int32 { @@ -25538,7 +25920,7 @@ type ResGetDailyWeekReward struct { func (x *ResGetDailyWeekReward) Reset() { *x = ResGetDailyWeekReward{} - mi := &file_Gameapi_proto_msgTypes[435] + mi := &file_Gameapi_proto_msgTypes[443] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25550,7 +25932,7 @@ func (x *ResGetDailyWeekReward) String() string { func (*ResGetDailyWeekReward) ProtoMessage() {} func (x *ResGetDailyWeekReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[435] + mi := &file_Gameapi_proto_msgTypes[443] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25563,7 +25945,7 @@ func (x *ResGetDailyWeekReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetDailyWeekReward.ProtoReflect.Descriptor instead. func (*ResGetDailyWeekReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{435} + return file_Gameapi_proto_rawDescGZIP(), []int{443} } func (x *ResGetDailyWeekReward) GetCode() RES_CODE { @@ -25591,7 +25973,7 @@ type ResFaceInfo struct { func (x *ResFaceInfo) Reset() { *x = ResFaceInfo{} - mi := &file_Gameapi_proto_msgTypes[436] + mi := &file_Gameapi_proto_msgTypes[444] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25603,7 +25985,7 @@ func (x *ResFaceInfo) String() string { func (*ResFaceInfo) ProtoMessage() {} func (x *ResFaceInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[436] + mi := &file_Gameapi_proto_msgTypes[444] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25616,7 +25998,7 @@ func (x *ResFaceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFaceInfo.ProtoReflect.Descriptor instead. func (*ResFaceInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{436} + return file_Gameapi_proto_rawDescGZIP(), []int{444} } func (x *ResFaceInfo) GetFaceList() []*FaceInfo { @@ -25644,7 +26026,7 @@ type FaceInfo struct { func (x *FaceInfo) Reset() { *x = FaceInfo{} - mi := &file_Gameapi_proto_msgTypes[437] + mi := &file_Gameapi_proto_msgTypes[445] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25656,7 +26038,7 @@ func (x *FaceInfo) String() string { func (*FaceInfo) ProtoMessage() {} func (x *FaceInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[437] + mi := &file_Gameapi_proto_msgTypes[445] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25669,7 +26051,7 @@ func (x *FaceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FaceInfo.ProtoReflect.Descriptor instead. func (*FaceInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{437} + return file_Gameapi_proto_rawDescGZIP(), []int{445} } func (x *FaceInfo) GetId() int32 { @@ -25696,7 +26078,7 @@ type ReqSetFace struct { func (x *ReqSetFace) Reset() { *x = ReqSetFace{} - mi := &file_Gameapi_proto_msgTypes[438] + mi := &file_Gameapi_proto_msgTypes[446] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25708,7 +26090,7 @@ func (x *ReqSetFace) String() string { func (*ReqSetFace) ProtoMessage() {} func (x *ReqSetFace) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[438] + mi := &file_Gameapi_proto_msgTypes[446] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25721,7 +26103,7 @@ func (x *ReqSetFace) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSetFace.ProtoReflect.Descriptor instead. func (*ReqSetFace) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{438} + return file_Gameapi_proto_rawDescGZIP(), []int{446} } func (x *ReqSetFace) GetFace() int32 { @@ -25742,7 +26124,7 @@ type ResSetFace struct { func (x *ResSetFace) Reset() { *x = ResSetFace{} - mi := &file_Gameapi_proto_msgTypes[439] + mi := &file_Gameapi_proto_msgTypes[447] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25754,7 +26136,7 @@ func (x *ResSetFace) String() string { func (*ResSetFace) ProtoMessage() {} func (x *ResSetFace) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[439] + mi := &file_Gameapi_proto_msgTypes[447] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25767,7 +26149,7 @@ func (x *ResSetFace) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSetFace.ProtoReflect.Descriptor instead. func (*ResSetFace) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{439} + return file_Gameapi_proto_rawDescGZIP(), []int{447} } func (x *ResSetFace) GetCode() RES_CODE { @@ -25795,7 +26177,7 @@ type ResAvatarInfo struct { func (x *ResAvatarInfo) Reset() { *x = ResAvatarInfo{} - mi := &file_Gameapi_proto_msgTypes[440] + mi := &file_Gameapi_proto_msgTypes[448] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25807,7 +26189,7 @@ func (x *ResAvatarInfo) String() string { func (*ResAvatarInfo) ProtoMessage() {} func (x *ResAvatarInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[440] + mi := &file_Gameapi_proto_msgTypes[448] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25820,7 +26202,7 @@ func (x *ResAvatarInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAvatarInfo.ProtoReflect.Descriptor instead. func (*ResAvatarInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{440} + return file_Gameapi_proto_rawDescGZIP(), []int{448} } func (x *ResAvatarInfo) GetAvatarList() []*AvatarInfo { @@ -25848,7 +26230,7 @@ type AvatarInfo struct { func (x *AvatarInfo) Reset() { *x = AvatarInfo{} - mi := &file_Gameapi_proto_msgTypes[441] + mi := &file_Gameapi_proto_msgTypes[449] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25860,7 +26242,7 @@ func (x *AvatarInfo) String() string { func (*AvatarInfo) ProtoMessage() {} func (x *AvatarInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[441] + mi := &file_Gameapi_proto_msgTypes[449] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25873,7 +26255,7 @@ func (x *AvatarInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AvatarInfo.ProtoReflect.Descriptor instead. func (*AvatarInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{441} + return file_Gameapi_proto_rawDescGZIP(), []int{449} } func (x *AvatarInfo) GetId() int32 { @@ -25900,7 +26282,7 @@ type ReqSetAvatar struct { func (x *ReqSetAvatar) Reset() { *x = ReqSetAvatar{} - mi := &file_Gameapi_proto_msgTypes[442] + mi := &file_Gameapi_proto_msgTypes[450] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25912,7 +26294,7 @@ func (x *ReqSetAvatar) String() string { func (*ReqSetAvatar) ProtoMessage() {} func (x *ReqSetAvatar) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[442] + mi := &file_Gameapi_proto_msgTypes[450] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25925,7 +26307,7 @@ func (x *ReqSetAvatar) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSetAvatar.ProtoReflect.Descriptor instead. func (*ReqSetAvatar) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{442} + return file_Gameapi_proto_rawDescGZIP(), []int{450} } func (x *ReqSetAvatar) GetAvatar() int32 { @@ -25946,7 +26328,7 @@ type ResSetAvatar struct { func (x *ResSetAvatar) Reset() { *x = ResSetAvatar{} - mi := &file_Gameapi_proto_msgTypes[443] + mi := &file_Gameapi_proto_msgTypes[451] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25958,7 +26340,7 @@ func (x *ResSetAvatar) String() string { func (*ResSetAvatar) ProtoMessage() {} func (x *ResSetAvatar) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[443] + mi := &file_Gameapi_proto_msgTypes[451] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25971,7 +26353,7 @@ func (x *ResSetAvatar) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSetAvatar.ProtoReflect.Descriptor instead. func (*ResSetAvatar) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{443} + return file_Gameapi_proto_rawDescGZIP(), []int{451} } func (x *ResSetAvatar) GetCode() RES_CODE { @@ -26002,7 +26384,7 @@ type ResSevenLogin struct { func (x *ResSevenLogin) Reset() { *x = ResSevenLogin{} - mi := &file_Gameapi_proto_msgTypes[444] + mi := &file_Gameapi_proto_msgTypes[452] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26014,7 +26396,7 @@ func (x *ResSevenLogin) String() string { func (*ResSevenLogin) ProtoMessage() {} func (x *ResSevenLogin) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[444] + mi := &file_Gameapi_proto_msgTypes[452] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26027,7 +26409,7 @@ func (x *ResSevenLogin) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSevenLogin.ProtoReflect.Descriptor instead. func (*ResSevenLogin) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{444} + return file_Gameapi_proto_rawDescGZIP(), []int{452} } func (x *ResSevenLogin) GetWeekReward() []*SevenLoginReward { @@ -26072,7 +26454,7 @@ type SevenLoginReward struct { func (x *SevenLoginReward) Reset() { *x = SevenLoginReward{} - mi := &file_Gameapi_proto_msgTypes[445] + mi := &file_Gameapi_proto_msgTypes[453] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26084,7 +26466,7 @@ func (x *SevenLoginReward) String() string { func (*SevenLoginReward) ProtoMessage() {} func (x *SevenLoginReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[445] + mi := &file_Gameapi_proto_msgTypes[453] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26097,7 +26479,7 @@ func (x *SevenLoginReward) ProtoReflect() protoreflect.Message { // Deprecated: Use SevenLoginReward.ProtoReflect.Descriptor instead. func (*SevenLoginReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{445} + return file_Gameapi_proto_rawDescGZIP(), []int{453} } func (x *SevenLoginReward) GetItem1() []*ItemInfo { @@ -26146,7 +26528,7 @@ type ReqGetSevenLoginReward struct { func (x *ReqGetSevenLoginReward) Reset() { *x = ReqGetSevenLoginReward{} - mi := &file_Gameapi_proto_msgTypes[446] + mi := &file_Gameapi_proto_msgTypes[454] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26158,7 +26540,7 @@ func (x *ReqGetSevenLoginReward) String() string { func (*ReqGetSevenLoginReward) ProtoMessage() {} func (x *ReqGetSevenLoginReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[446] + mi := &file_Gameapi_proto_msgTypes[454] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26171,7 +26553,7 @@ func (x *ReqGetSevenLoginReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetSevenLoginReward.ProtoReflect.Descriptor instead. func (*ReqGetSevenLoginReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{446} + return file_Gameapi_proto_rawDescGZIP(), []int{454} } func (x *ReqGetSevenLoginReward) GetId() int32 { @@ -26192,7 +26574,7 @@ type ResGetSevenLoginReward struct { func (x *ResGetSevenLoginReward) Reset() { *x = ResGetSevenLoginReward{} - mi := &file_Gameapi_proto_msgTypes[447] + mi := &file_Gameapi_proto_msgTypes[455] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26204,7 +26586,7 @@ func (x *ResGetSevenLoginReward) String() string { func (*ResGetSevenLoginReward) ProtoMessage() {} func (x *ResGetSevenLoginReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[447] + mi := &file_Gameapi_proto_msgTypes[455] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26217,7 +26599,7 @@ func (x *ResGetSevenLoginReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetSevenLoginReward.ProtoReflect.Descriptor instead. func (*ResGetSevenLoginReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{447} + return file_Gameapi_proto_rawDescGZIP(), []int{455} } func (x *ResGetSevenLoginReward) GetCode() RES_CODE { @@ -26245,7 +26627,7 @@ type ReqGetMonthLoginReward struct { func (x *ReqGetMonthLoginReward) Reset() { *x = ReqGetMonthLoginReward{} - mi := &file_Gameapi_proto_msgTypes[448] + mi := &file_Gameapi_proto_msgTypes[456] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26257,7 +26639,7 @@ func (x *ReqGetMonthLoginReward) String() string { func (*ReqGetMonthLoginReward) ProtoMessage() {} func (x *ReqGetMonthLoginReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[448] + mi := &file_Gameapi_proto_msgTypes[456] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26270,7 +26652,7 @@ func (x *ReqGetMonthLoginReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetMonthLoginReward.ProtoReflect.Descriptor instead. func (*ReqGetMonthLoginReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{448} + return file_Gameapi_proto_rawDescGZIP(), []int{456} } func (x *ReqGetMonthLoginReward) GetId() int32 { @@ -26291,7 +26673,7 @@ type ResGetMonthLoginReward struct { func (x *ResGetMonthLoginReward) Reset() { *x = ResGetMonthLoginReward{} - mi := &file_Gameapi_proto_msgTypes[449] + mi := &file_Gameapi_proto_msgTypes[457] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26303,7 +26685,7 @@ func (x *ResGetMonthLoginReward) String() string { func (*ResGetMonthLoginReward) ProtoMessage() {} func (x *ResGetMonthLoginReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[449] + mi := &file_Gameapi_proto_msgTypes[457] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26316,7 +26698,7 @@ func (x *ResGetMonthLoginReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetMonthLoginReward.ProtoReflect.Descriptor instead. func (*ResGetMonthLoginReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{449} + return file_Gameapi_proto_rawDescGZIP(), []int{457} } func (x *ResGetMonthLoginReward) GetCode() RES_CODE { @@ -26344,7 +26726,7 @@ type ResAcitive struct { func (x *ResAcitive) Reset() { *x = ResAcitive{} - mi := &file_Gameapi_proto_msgTypes[450] + mi := &file_Gameapi_proto_msgTypes[458] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26356,7 +26738,7 @@ func (x *ResAcitive) String() string { func (*ResAcitive) ProtoMessage() {} func (x *ResAcitive) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[450] + mi := &file_Gameapi_proto_msgTypes[458] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26369,7 +26751,7 @@ func (x *ResAcitive) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAcitive.ProtoReflect.Descriptor instead. func (*ResAcitive) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{450} + return file_Gameapi_proto_rawDescGZIP(), []int{458} } func (x *ResAcitive) GetActiveList() []*ActiveInfo { @@ -26394,7 +26776,7 @@ type ActiveInfo struct { func (x *ActiveInfo) Reset() { *x = ActiveInfo{} - mi := &file_Gameapi_proto_msgTypes[451] + mi := &file_Gameapi_proto_msgTypes[459] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26406,7 +26788,7 @@ func (x *ActiveInfo) String() string { func (*ActiveInfo) ProtoMessage() {} func (x *ActiveInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[451] + mi := &file_Gameapi_proto_msgTypes[459] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26419,7 +26801,7 @@ func (x *ActiveInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ActiveInfo.ProtoReflect.Descriptor instead. func (*ActiveInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{451} + return file_Gameapi_proto_rawDescGZIP(), []int{459} } func (x *ActiveInfo) GetId() int32 { @@ -26473,7 +26855,7 @@ type ReqLimitEvent struct { func (x *ReqLimitEvent) Reset() { *x = ReqLimitEvent{} - mi := &file_Gameapi_proto_msgTypes[452] + mi := &file_Gameapi_proto_msgTypes[460] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26485,7 +26867,7 @@ func (x *ReqLimitEvent) String() string { func (*ReqLimitEvent) ProtoMessage() {} func (x *ReqLimitEvent) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[452] + mi := &file_Gameapi_proto_msgTypes[460] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26498,7 +26880,7 @@ func (x *ReqLimitEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqLimitEvent.ProtoReflect.Descriptor instead. func (*ReqLimitEvent) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{452} + return file_Gameapi_proto_rawDescGZIP(), []int{460} } type ResLimitEvent struct { @@ -26511,7 +26893,7 @@ type ResLimitEvent struct { func (x *ResLimitEvent) Reset() { *x = ResLimitEvent{} - mi := &file_Gameapi_proto_msgTypes[453] + mi := &file_Gameapi_proto_msgTypes[461] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26523,7 +26905,7 @@ func (x *ResLimitEvent) String() string { func (*ResLimitEvent) ProtoMessage() {} func (x *ResLimitEvent) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[453] + mi := &file_Gameapi_proto_msgTypes[461] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26536,7 +26918,7 @@ func (x *ResLimitEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ResLimitEvent.ProtoReflect.Descriptor instead. func (*ResLimitEvent) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{453} + return file_Gameapi_proto_rawDescGZIP(), []int{461} } func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent { @@ -26557,7 +26939,7 @@ type ResLimitEventProgress struct { func (x *ResLimitEventProgress) Reset() { *x = ResLimitEventProgress{} - mi := &file_Gameapi_proto_msgTypes[454] + mi := &file_Gameapi_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26569,7 +26951,7 @@ func (x *ResLimitEventProgress) String() string { func (*ResLimitEventProgress) ProtoMessage() {} func (x *ResLimitEventProgress) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[454] + mi := &file_Gameapi_proto_msgTypes[462] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26582,7 +26964,7 @@ func (x *ResLimitEventProgress) ProtoReflect() protoreflect.Message { // Deprecated: Use ResLimitEventProgress.ProtoReflect.Descriptor instead. func (*ResLimitEventProgress) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{454} + return file_Gameapi_proto_rawDescGZIP(), []int{462} } func (x *ResLimitEventProgress) GetProgress() int32 { @@ -26610,7 +26992,7 @@ type LimitEvent struct { func (x *LimitEvent) Reset() { *x = LimitEvent{} - mi := &file_Gameapi_proto_msgTypes[455] + mi := &file_Gameapi_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26622,7 +27004,7 @@ func (x *LimitEvent) String() string { func (*LimitEvent) ProtoMessage() {} func (x *LimitEvent) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[455] + mi := &file_Gameapi_proto_msgTypes[463] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26635,7 +27017,7 @@ func (x *LimitEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LimitEvent.ProtoReflect.Descriptor instead. func (*LimitEvent) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{455} + return file_Gameapi_proto_rawDescGZIP(), []int{463} } func (x *LimitEvent) GetEndTime() int32 { @@ -26665,7 +27047,7 @@ type LimitEventNotify struct { func (x *LimitEventNotify) Reset() { *x = LimitEventNotify{} - mi := &file_Gameapi_proto_msgTypes[456] + mi := &file_Gameapi_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26677,7 +27059,7 @@ func (x *LimitEventNotify) String() string { func (*LimitEventNotify) ProtoMessage() {} func (x *LimitEventNotify) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[456] + mi := &file_Gameapi_proto_msgTypes[464] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26690,7 +27072,7 @@ func (x *LimitEventNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use LimitEventNotify.ProtoReflect.Descriptor instead. func (*LimitEventNotify) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{456} + return file_Gameapi_proto_rawDescGZIP(), []int{464} } func (x *LimitEventNotify) GetId() int32 { @@ -26729,7 +27111,7 @@ type ReqLimitSenceReward struct { func (x *ReqLimitSenceReward) Reset() { *x = ReqLimitSenceReward{} - mi := &file_Gameapi_proto_msgTypes[457] + mi := &file_Gameapi_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26741,7 +27123,7 @@ func (x *ReqLimitSenceReward) String() string { func (*ReqLimitSenceReward) ProtoMessage() {} func (x *ReqLimitSenceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[457] + mi := &file_Gameapi_proto_msgTypes[465] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26754,7 +27136,7 @@ func (x *ReqLimitSenceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqLimitSenceReward.ProtoReflect.Descriptor instead. func (*ReqLimitSenceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{457} + return file_Gameapi_proto_rawDescGZIP(), []int{465} } type ResLimitSenceReward struct { @@ -26768,7 +27150,7 @@ type ResLimitSenceReward struct { func (x *ResLimitSenceReward) Reset() { *x = ResLimitSenceReward{} - mi := &file_Gameapi_proto_msgTypes[458] + mi := &file_Gameapi_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26780,7 +27162,7 @@ func (x *ResLimitSenceReward) String() string { func (*ResLimitSenceReward) ProtoMessage() {} func (x *ResLimitSenceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[458] + mi := &file_Gameapi_proto_msgTypes[466] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26793,7 +27175,7 @@ func (x *ResLimitSenceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResLimitSenceReward.ProtoReflect.Descriptor instead. func (*ResLimitSenceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{458} + return file_Gameapi_proto_rawDescGZIP(), []int{466} } func (x *ResLimitSenceReward) GetCode() RES_CODE { @@ -26820,7 +27202,7 @@ type ResChessRainReward struct { func (x *ResChessRainReward) Reset() { *x = ResChessRainReward{} - mi := &file_Gameapi_proto_msgTypes[459] + mi := &file_Gameapi_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26832,7 +27214,7 @@ func (x *ResChessRainReward) String() string { func (*ResChessRainReward) ProtoMessage() {} func (x *ResChessRainReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[459] + mi := &file_Gameapi_proto_msgTypes[467] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26845,7 +27227,7 @@ func (x *ResChessRainReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChessRainReward.ProtoReflect.Descriptor instead. func (*ResChessRainReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{459} + return file_Gameapi_proto_rawDescGZIP(), []int{467} } func (x *ResChessRainReward) GetChest() int32 { @@ -26865,7 +27247,7 @@ type ReqLimitEventReward struct { func (x *ReqLimitEventReward) Reset() { *x = ReqLimitEventReward{} - mi := &file_Gameapi_proto_msgTypes[460] + mi := &file_Gameapi_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26877,7 +27259,7 @@ func (x *ReqLimitEventReward) String() string { func (*ReqLimitEventReward) ProtoMessage() {} func (x *ReqLimitEventReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[460] + mi := &file_Gameapi_proto_msgTypes[468] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26890,7 +27272,7 @@ func (x *ReqLimitEventReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqLimitEventReward.ProtoReflect.Descriptor instead. func (*ReqLimitEventReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{460} + return file_Gameapi_proto_rawDescGZIP(), []int{468} } func (x *ReqLimitEventReward) GetId() int32 { @@ -26911,7 +27293,7 @@ type ResLimitEventReward struct { func (x *ResLimitEventReward) Reset() { *x = ResLimitEventReward{} - mi := &file_Gameapi_proto_msgTypes[461] + mi := &file_Gameapi_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26923,7 +27305,7 @@ func (x *ResLimitEventReward) String() string { func (*ResLimitEventReward) ProtoMessage() {} func (x *ResLimitEventReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[461] + mi := &file_Gameapi_proto_msgTypes[469] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26936,7 +27318,7 @@ func (x *ResLimitEventReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResLimitEventReward.ProtoReflect.Descriptor instead. func (*ResLimitEventReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{461} + return file_Gameapi_proto_rawDescGZIP(), []int{469} } func (x *ResLimitEventReward) GetCode() RES_CODE { @@ -26964,7 +27346,7 @@ type ReqFastProduceReward struct { func (x *ReqFastProduceReward) Reset() { *x = ReqFastProduceReward{} - mi := &file_Gameapi_proto_msgTypes[462] + mi := &file_Gameapi_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26976,7 +27358,7 @@ func (x *ReqFastProduceReward) String() string { func (*ReqFastProduceReward) ProtoMessage() {} func (x *ReqFastProduceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[462] + mi := &file_Gameapi_proto_msgTypes[470] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26989,7 +27371,7 @@ func (x *ReqFastProduceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFastProduceReward.ProtoReflect.Descriptor instead. func (*ReqFastProduceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{462} + return file_Gameapi_proto_rawDescGZIP(), []int{470} } func (x *ReqFastProduceReward) GetEnergy() int32 { @@ -27010,7 +27392,7 @@ type ResFastProduceReward struct { func (x *ResFastProduceReward) Reset() { *x = ResFastProduceReward{} - mi := &file_Gameapi_proto_msgTypes[463] + mi := &file_Gameapi_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27022,7 +27404,7 @@ func (x *ResFastProduceReward) String() string { func (*ResFastProduceReward) ProtoMessage() {} func (x *ResFastProduceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[463] + mi := &file_Gameapi_proto_msgTypes[471] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27035,7 +27417,7 @@ func (x *ResFastProduceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFastProduceReward.ProtoReflect.Descriptor instead. func (*ResFastProduceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{463} + return file_Gameapi_proto_rawDescGZIP(), []int{471} } func (x *ResFastProduceReward) GetCode() RES_CODE { @@ -27063,7 +27445,7 @@ type ReqSearchPlayer struct { func (x *ReqSearchPlayer) Reset() { *x = ReqSearchPlayer{} - mi := &file_Gameapi_proto_msgTypes[464] + mi := &file_Gameapi_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27075,7 +27457,7 @@ func (x *ReqSearchPlayer) String() string { func (*ReqSearchPlayer) ProtoMessage() {} func (x *ReqSearchPlayer) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[464] + mi := &file_Gameapi_proto_msgTypes[472] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27088,7 +27470,7 @@ func (x *ReqSearchPlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSearchPlayer.ProtoReflect.Descriptor instead. func (*ReqSearchPlayer) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{464} + return file_Gameapi_proto_rawDescGZIP(), []int{472} } func (x *ReqSearchPlayer) GetUid() string { @@ -27109,7 +27491,7 @@ type ResSearchPlayer struct { func (x *ResSearchPlayer) Reset() { *x = ResSearchPlayer{} - mi := &file_Gameapi_proto_msgTypes[465] + mi := &file_Gameapi_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27121,7 +27503,7 @@ func (x *ResSearchPlayer) String() string { func (*ResSearchPlayer) ProtoMessage() {} func (x *ResSearchPlayer) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[465] + mi := &file_Gameapi_proto_msgTypes[473] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27134,7 +27516,7 @@ func (x *ResSearchPlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSearchPlayer.ProtoReflect.Descriptor instead. func (*ResSearchPlayer) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{465} + return file_Gameapi_proto_rawDescGZIP(), []int{473} } func (x *ResSearchPlayer) GetCode() int32 { @@ -27162,11 +27544,13 @@ type ResPlayerSimple struct { Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` + Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` + Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` } func (x *ResPlayerSimple) Reset() { *x = ResPlayerSimple{} - mi := &file_Gameapi_proto_msgTypes[466] + mi := &file_Gameapi_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27178,7 +27562,7 @@ func (x *ResPlayerSimple) String() string { func (*ResPlayerSimple) ProtoMessage() {} func (x *ResPlayerSimple) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[466] + mi := &file_Gameapi_proto_msgTypes[474] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27191,7 +27575,7 @@ func (x *ResPlayerSimple) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayerSimple.ProtoReflect.Descriptor instead. func (*ResPlayerSimple) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{466} + return file_Gameapi_proto_rawDescGZIP(), []int{474} } func (x *ResPlayerSimple) GetUid() int32 { @@ -27236,6 +27620,20 @@ func (x *ResPlayerSimple) GetDecorate() int32 { return 0 } +func (x *ResPlayerSimple) GetLogin() int32 { + if x != nil { + return x.Login + } + return 0 +} + +func (x *ResPlayerSimple) GetLoginout() int32 { + if x != nil { + return x.Loginout + } + return 0 +} + type ResFriendLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -27252,7 +27650,7 @@ type ResFriendLog struct { func (x *ResFriendLog) Reset() { *x = ResFriendLog{} - mi := &file_Gameapi_proto_msgTypes[467] + mi := &file_Gameapi_proto_msgTypes[475] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27264,7 +27662,7 @@ func (x *ResFriendLog) String() string { func (*ResFriendLog) ProtoMessage() {} func (x *ResFriendLog) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[467] + mi := &file_Gameapi_proto_msgTypes[475] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27277,7 +27675,7 @@ func (x *ResFriendLog) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendLog.ProtoReflect.Descriptor instead. func (*ResFriendLog) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{467} + return file_Gameapi_proto_rawDescGZIP(), []int{475} } func (x *ResFriendLog) GetUid() int32 { @@ -27329,6 +27727,51 @@ func (x *ResFriendLog) GetTime() int32 { return 0 } +type NotifyFriendCard struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` +} + +func (x *NotifyFriendCard) Reset() { + *x = NotifyFriendCard{} + mi := &file_Gameapi_proto_msgTypes[476] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NotifyFriendCard) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyFriendCard) ProtoMessage() {} + +func (x *NotifyFriendCard) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[476] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotifyFriendCard.ProtoReflect.Descriptor instead. +func (*NotifyFriendCard) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{476} +} + +func (x *NotifyFriendCard) GetInfo() *ResFriendCard { + if x != nil { + return x.Info + } + return nil +} + type ResFriendCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -27339,14 +27782,17 @@ type ResFriendCard struct { Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` - Time int32 `protobuf:"varint,6,opt,name=Time,proto3" json:"Time,omitempty"` - CardId int32 `protobuf:"varint,7,opt,name=CardId,proto3" json:"CardId,omitempty"` - ExCardId int32 `protobuf:"varint,8,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` + Type int32 `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"` + Time int32 `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"` + CardId int32 `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"` + ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` + Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResFriendCard) Reset() { *x = ResFriendCard{} - mi := &file_Gameapi_proto_msgTypes[468] + mi := &file_Gameapi_proto_msgTypes[477] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27358,7 +27804,7 @@ func (x *ResFriendCard) String() string { func (*ResFriendCard) ProtoMessage() {} func (x *ResFriendCard) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[468] + mi := &file_Gameapi_proto_msgTypes[477] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27371,7 +27817,7 @@ func (x *ResFriendCard) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendCard.ProtoReflect.Descriptor instead. func (*ResFriendCard) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{468} + return file_Gameapi_proto_rawDescGZIP(), []int{477} } func (x *ResFriendCard) GetUid() int32 { @@ -27409,6 +27855,13 @@ func (x *ResFriendCard) GetLevel() int32 { return 0 } +func (x *ResFriendCard) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + func (x *ResFriendCard) GetTime() int32 { if x != nil { return x.Time @@ -27430,6 +27883,20 @@ func (x *ResFriendCard) GetExCardId() int32 { return 0 } +func (x *ResFriendCard) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ResFriendCard) GetId() string { + if x != nil { + return x.Id + } + return "" +} + type ReqKv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -27441,7 +27908,7 @@ type ReqKv struct { func (x *ReqKv) Reset() { *x = ReqKv{} - mi := &file_Gameapi_proto_msgTypes[469] + mi := &file_Gameapi_proto_msgTypes[478] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27453,7 +27920,7 @@ func (x *ReqKv) String() string { func (*ReqKv) ProtoMessage() {} func (x *ReqKv) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[469] + mi := &file_Gameapi_proto_msgTypes[478] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27466,7 +27933,7 @@ func (x *ReqKv) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqKv.ProtoReflect.Descriptor instead. func (*ReqKv) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{469} + return file_Gameapi_proto_rawDescGZIP(), []int{478} } func (x *ReqKv) GetKey() int32 { @@ -27493,7 +27960,7 @@ type ResKv struct { func (x *ResKv) Reset() { *x = ResKv{} - mi := &file_Gameapi_proto_msgTypes[470] + mi := &file_Gameapi_proto_msgTypes[479] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27505,7 +27972,7 @@ func (x *ResKv) String() string { func (*ResKv) ProtoMessage() {} func (x *ResKv) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[470] + mi := &file_Gameapi_proto_msgTypes[479] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27518,7 +27985,7 @@ func (x *ResKv) ProtoReflect() protoreflect.Message { // Deprecated: Use ResKv.ProtoReflect.Descriptor instead. func (*ResKv) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{470} + return file_Gameapi_proto_rawDescGZIP(), []int{479} } func (x *ResKv) GetKv() map[int32]string { @@ -27539,7 +28006,7 @@ type ResFriendRecommend struct { func (x *ResFriendRecommend) Reset() { *x = ResFriendRecommend{} - mi := &file_Gameapi_proto_msgTypes[471] + mi := &file_Gameapi_proto_msgTypes[480] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27551,7 +28018,7 @@ func (x *ResFriendRecommend) String() string { func (*ResFriendRecommend) ProtoMessage() {} func (x *ResFriendRecommend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[471] + mi := &file_Gameapi_proto_msgTypes[480] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27564,7 +28031,7 @@ func (x *ResFriendRecommend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendRecommend.ProtoReflect.Descriptor instead. func (*ResFriendRecommend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{471} + return file_Gameapi_proto_rawDescGZIP(), []int{480} } func (x *ResFriendRecommend) GetList() []*ResPlayerSimple { @@ -27585,7 +28052,7 @@ type ReqFriendIgnore struct { func (x *ReqFriendIgnore) Reset() { *x = ReqFriendIgnore{} - mi := &file_Gameapi_proto_msgTypes[472] + mi := &file_Gameapi_proto_msgTypes[481] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27597,7 +28064,7 @@ func (x *ReqFriendIgnore) String() string { func (*ReqFriendIgnore) ProtoMessage() {} func (x *ReqFriendIgnore) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[472] + mi := &file_Gameapi_proto_msgTypes[481] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27610,7 +28077,7 @@ func (x *ReqFriendIgnore) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendIgnore.ProtoReflect.Descriptor instead. func (*ReqFriendIgnore) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{472} + return file_Gameapi_proto_rawDescGZIP(), []int{481} } func (x *ReqFriendIgnore) GetUid() int32 { @@ -27631,7 +28098,7 @@ type ResFriendIgnore struct { func (x *ResFriendIgnore) Reset() { *x = ResFriendIgnore{} - mi := &file_Gameapi_proto_msgTypes[473] + mi := &file_Gameapi_proto_msgTypes[482] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27643,7 +28110,7 @@ func (x *ResFriendIgnore) String() string { func (*ResFriendIgnore) ProtoMessage() {} func (x *ResFriendIgnore) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[473] + mi := &file_Gameapi_proto_msgTypes[482] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27656,7 +28123,7 @@ func (x *ResFriendIgnore) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendIgnore.ProtoReflect.Descriptor instead. func (*ResFriendIgnore) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{473} + return file_Gameapi_proto_rawDescGZIP(), []int{482} } func (x *ResFriendIgnore) GetCode() RES_CODE { @@ -27683,7 +28150,7 @@ type ResFriendList struct { func (x *ResFriendList) Reset() { *x = ResFriendList{} - mi := &file_Gameapi_proto_msgTypes[474] + mi := &file_Gameapi_proto_msgTypes[483] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27695,7 +28162,7 @@ func (x *ResFriendList) String() string { func (*ResFriendList) ProtoMessage() {} func (x *ResFriendList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[474] + mi := &file_Gameapi_proto_msgTypes[483] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27708,7 +28175,7 @@ func (x *ResFriendList) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendList.ProtoReflect.Descriptor instead. func (*ResFriendList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{474} + return file_Gameapi_proto_rawDescGZIP(), []int{483} } func (x *ResFriendList) GetFriendList() []*ResPlayerSimple { @@ -27726,7 +28193,7 @@ type ReqFriendApply struct { func (x *ReqFriendApply) Reset() { *x = ReqFriendApply{} - mi := &file_Gameapi_proto_msgTypes[475] + mi := &file_Gameapi_proto_msgTypes[484] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27738,7 +28205,7 @@ func (x *ReqFriendApply) String() string { func (*ReqFriendApply) ProtoMessage() {} func (x *ReqFriendApply) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[475] + mi := &file_Gameapi_proto_msgTypes[484] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27751,7 +28218,7 @@ func (x *ReqFriendApply) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendApply.ProtoReflect.Descriptor instead. func (*ReqFriendApply) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{475} + return file_Gameapi_proto_rawDescGZIP(), []int{484} } type ResFriendApply struct { @@ -27764,7 +28231,7 @@ type ResFriendApply struct { func (x *ResFriendApply) Reset() { *x = ResFriendApply{} - mi := &file_Gameapi_proto_msgTypes[476] + mi := &file_Gameapi_proto_msgTypes[485] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27776,7 +28243,7 @@ func (x *ResFriendApply) String() string { func (*ResFriendApply) ProtoMessage() {} func (x *ResFriendApply) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[476] + mi := &file_Gameapi_proto_msgTypes[485] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27789,7 +28256,7 @@ func (x *ResFriendApply) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendApply.ProtoReflect.Descriptor instead. func (*ResFriendApply) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{476} + return file_Gameapi_proto_rawDescGZIP(), []int{485} } func (x *ResFriendApply) GetApplyList() []*ResPlayerSimple { @@ -27807,7 +28274,7 @@ type ReqFriendCardMsg struct { func (x *ReqFriendCardMsg) Reset() { *x = ReqFriendCardMsg{} - mi := &file_Gameapi_proto_msgTypes[477] + mi := &file_Gameapi_proto_msgTypes[486] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27819,7 +28286,7 @@ func (x *ReqFriendCardMsg) String() string { func (*ReqFriendCardMsg) ProtoMessage() {} func (x *ReqFriendCardMsg) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[477] + mi := &file_Gameapi_proto_msgTypes[486] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27832,7 +28299,7 @@ func (x *ReqFriendCardMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendCardMsg.ProtoReflect.Descriptor instead. func (*ReqFriendCardMsg) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{477} + return file_Gameapi_proto_rawDescGZIP(), []int{486} } type ResFriendCardMsg struct { @@ -27845,7 +28312,7 @@ type ResFriendCardMsg struct { func (x *ResFriendCardMsg) Reset() { *x = ResFriendCardMsg{} - mi := &file_Gameapi_proto_msgTypes[478] + mi := &file_Gameapi_proto_msgTypes[487] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27857,7 +28324,7 @@ func (x *ResFriendCardMsg) String() string { func (*ResFriendCardMsg) ProtoMessage() {} func (x *ResFriendCardMsg) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[478] + mi := &file_Gameapi_proto_msgTypes[487] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27870,7 +28337,7 @@ func (x *ResFriendCardMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendCardMsg.ProtoReflect.Descriptor instead. func (*ResFriendCardMsg) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{478} + return file_Gameapi_proto_rawDescGZIP(), []int{487} } func (x *ResFriendCardMsg) GetMsgList() []*ResFriendCard { @@ -27888,7 +28355,7 @@ type ReqFriendTimeLine struct { func (x *ReqFriendTimeLine) Reset() { *x = ReqFriendTimeLine{} - mi := &file_Gameapi_proto_msgTypes[479] + mi := &file_Gameapi_proto_msgTypes[488] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27900,7 +28367,7 @@ func (x *ReqFriendTimeLine) String() string { func (*ReqFriendTimeLine) ProtoMessage() {} func (x *ReqFriendTimeLine) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[479] + mi := &file_Gameapi_proto_msgTypes[488] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27913,7 +28380,7 @@ func (x *ReqFriendTimeLine) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTimeLine.ProtoReflect.Descriptor instead. func (*ReqFriendTimeLine) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{479} + return file_Gameapi_proto_rawDescGZIP(), []int{488} } type ResFriendTimeLine struct { @@ -27926,7 +28393,7 @@ type ResFriendTimeLine struct { func (x *ResFriendTimeLine) Reset() { *x = ResFriendTimeLine{} - mi := &file_Gameapi_proto_msgTypes[480] + mi := &file_Gameapi_proto_msgTypes[489] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27938,7 +28405,7 @@ func (x *ResFriendTimeLine) String() string { func (*ResFriendTimeLine) ProtoMessage() {} func (x *ResFriendTimeLine) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[480] + mi := &file_Gameapi_proto_msgTypes[489] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27951,7 +28418,7 @@ func (x *ResFriendTimeLine) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTimeLine.ProtoReflect.Descriptor instead. func (*ResFriendTimeLine) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{480} + return file_Gameapi_proto_rawDescGZIP(), []int{489} } func (x *ResFriendTimeLine) GetLog() []*ResFriendLog { @@ -27972,7 +28439,7 @@ type ResFriendApplyNotify struct { func (x *ResFriendApplyNotify) Reset() { *x = ResFriendApplyNotify{} - mi := &file_Gameapi_proto_msgTypes[481] + mi := &file_Gameapi_proto_msgTypes[490] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27984,7 +28451,7 @@ func (x *ResFriendApplyNotify) String() string { func (*ResFriendApplyNotify) ProtoMessage() {} func (x *ResFriendApplyNotify) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[481] + mi := &file_Gameapi_proto_msgTypes[490] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27997,7 +28464,7 @@ func (x *ResFriendApplyNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendApplyNotify.ProtoReflect.Descriptor instead. func (*ResFriendApplyNotify) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{481} + return file_Gameapi_proto_rawDescGZIP(), []int{490} } func (x *ResFriendApplyNotify) GetPlayer() *ResPlayerSimple { @@ -28025,7 +28492,7 @@ type ReqApplyFriend struct { func (x *ReqApplyFriend) Reset() { *x = ReqApplyFriend{} - mi := &file_Gameapi_proto_msgTypes[482] + mi := &file_Gameapi_proto_msgTypes[491] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28037,7 +28504,7 @@ func (x *ReqApplyFriend) String() string { func (*ReqApplyFriend) ProtoMessage() {} func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[482] + mi := &file_Gameapi_proto_msgTypes[491] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28050,7 +28517,7 @@ func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqApplyFriend.ProtoReflect.Descriptor instead. func (*ReqApplyFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{482} + return file_Gameapi_proto_rawDescGZIP(), []int{491} } func (x *ReqApplyFriend) GetUid() int32 { @@ -28071,7 +28538,7 @@ type ResApplyFriend struct { func (x *ResApplyFriend) Reset() { *x = ResApplyFriend{} - mi := &file_Gameapi_proto_msgTypes[483] + mi := &file_Gameapi_proto_msgTypes[492] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28083,7 +28550,7 @@ func (x *ResApplyFriend) String() string { func (*ResApplyFriend) ProtoMessage() {} func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[483] + mi := &file_Gameapi_proto_msgTypes[492] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28096,7 +28563,7 @@ func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResApplyFriend.ProtoReflect.Descriptor instead. func (*ResApplyFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{483} + return file_Gameapi_proto_rawDescGZIP(), []int{492} } func (x *ResApplyFriend) GetCode() RES_CODE { @@ -28124,7 +28591,7 @@ type ReqAgreeFriend struct { func (x *ReqAgreeFriend) Reset() { *x = ReqAgreeFriend{} - mi := &file_Gameapi_proto_msgTypes[484] + mi := &file_Gameapi_proto_msgTypes[493] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28136,7 +28603,7 @@ func (x *ReqAgreeFriend) String() string { func (*ReqAgreeFriend) ProtoMessage() {} func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[484] + mi := &file_Gameapi_proto_msgTypes[493] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28149,7 +28616,7 @@ func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAgreeFriend.ProtoReflect.Descriptor instead. func (*ReqAgreeFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{484} + return file_Gameapi_proto_rawDescGZIP(), []int{493} } func (x *ReqAgreeFriend) GetUid() int32 { @@ -28170,7 +28637,7 @@ type ResAgreeFriend struct { func (x *ResAgreeFriend) Reset() { *x = ResAgreeFriend{} - mi := &file_Gameapi_proto_msgTypes[485] + mi := &file_Gameapi_proto_msgTypes[494] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28182,7 +28649,7 @@ func (x *ResAgreeFriend) String() string { func (*ResAgreeFriend) ProtoMessage() {} func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[485] + mi := &file_Gameapi_proto_msgTypes[494] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28195,7 +28662,7 @@ func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAgreeFriend.ProtoReflect.Descriptor instead. func (*ResAgreeFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{485} + return file_Gameapi_proto_rawDescGZIP(), []int{494} } func (x *ResAgreeFriend) GetCode() RES_CODE { @@ -28223,7 +28690,7 @@ type ReqRefuseFriend struct { func (x *ReqRefuseFriend) Reset() { *x = ReqRefuseFriend{} - mi := &file_Gameapi_proto_msgTypes[486] + mi := &file_Gameapi_proto_msgTypes[495] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28235,7 +28702,7 @@ func (x *ReqRefuseFriend) String() string { func (*ReqRefuseFriend) ProtoMessage() {} func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[486] + mi := &file_Gameapi_proto_msgTypes[495] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28248,7 +28715,7 @@ func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefuseFriend.ProtoReflect.Descriptor instead. func (*ReqRefuseFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{486} + return file_Gameapi_proto_rawDescGZIP(), []int{495} } func (x *ReqRefuseFriend) GetUid() int32 { @@ -28269,7 +28736,7 @@ type ResRefuseFriend struct { func (x *ResRefuseFriend) Reset() { *x = ResRefuseFriend{} - mi := &file_Gameapi_proto_msgTypes[487] + mi := &file_Gameapi_proto_msgTypes[496] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28281,7 +28748,7 @@ func (x *ResRefuseFriend) String() string { func (*ResRefuseFriend) ProtoMessage() {} func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[487] + mi := &file_Gameapi_proto_msgTypes[496] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28294,7 +28761,7 @@ func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefuseFriend.ProtoReflect.Descriptor instead. func (*ResRefuseFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{487} + return file_Gameapi_proto_rawDescGZIP(), []int{496} } func (x *ResRefuseFriend) GetCode() RES_CODE { @@ -28322,7 +28789,7 @@ type ReqDelFriend struct { func (x *ReqDelFriend) Reset() { *x = ReqDelFriend{} - mi := &file_Gameapi_proto_msgTypes[488] + mi := &file_Gameapi_proto_msgTypes[497] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28334,7 +28801,7 @@ func (x *ReqDelFriend) String() string { func (*ReqDelFriend) ProtoMessage() {} func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[488] + mi := &file_Gameapi_proto_msgTypes[497] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28347,7 +28814,7 @@ func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDelFriend.ProtoReflect.Descriptor instead. func (*ReqDelFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{488} + return file_Gameapi_proto_rawDescGZIP(), []int{497} } func (x *ReqDelFriend) GetUid() int32 { @@ -28368,7 +28835,7 @@ type ResDelFriend struct { func (x *ResDelFriend) Reset() { *x = ResDelFriend{} - mi := &file_Gameapi_proto_msgTypes[489] + mi := &file_Gameapi_proto_msgTypes[498] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28380,7 +28847,7 @@ func (x *ResDelFriend) String() string { func (*ResDelFriend) ProtoMessage() {} func (x *ResDelFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[489] + mi := &file_Gameapi_proto_msgTypes[498] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28393,7 +28860,7 @@ func (x *ResDelFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDelFriend.ProtoReflect.Descriptor instead. func (*ResDelFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{489} + return file_Gameapi_proto_rawDescGZIP(), []int{498} } func (x *ResDelFriend) GetCode() RES_CODE { @@ -28421,7 +28888,7 @@ type ReqRank struct { func (x *ReqRank) Reset() { *x = ReqRank{} - mi := &file_Gameapi_proto_msgTypes[490] + mi := &file_Gameapi_proto_msgTypes[499] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28433,7 +28900,7 @@ func (x *ReqRank) String() string { func (*ReqRank) ProtoMessage() {} func (x *ReqRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[490] + mi := &file_Gameapi_proto_msgTypes[499] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28446,7 +28913,7 @@ func (x *ReqRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRank.ProtoReflect.Descriptor instead. func (*ReqRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{490} + return file_Gameapi_proto_rawDescGZIP(), []int{499} } func (x *ReqRank) GetType() int32 { @@ -28467,7 +28934,7 @@ type ResRank struct { func (x *ResRank) Reset() { *x = ResRank{} - mi := &file_Gameapi_proto_msgTypes[491] + mi := &file_Gameapi_proto_msgTypes[500] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28479,7 +28946,7 @@ func (x *ResRank) String() string { func (*ResRank) ProtoMessage() {} func (x *ResRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[491] + mi := &file_Gameapi_proto_msgTypes[500] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28492,7 +28959,7 @@ func (x *ResRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRank.ProtoReflect.Descriptor instead. func (*ResRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{491} + return file_Gameapi_proto_rawDescGZIP(), []int{500} } func (x *ResRank) GetType() int32 { @@ -28518,7 +28985,7 @@ type ReqMailList struct { func (x *ReqMailList) Reset() { *x = ReqMailList{} - mi := &file_Gameapi_proto_msgTypes[492] + mi := &file_Gameapi_proto_msgTypes[501] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28530,7 +28997,7 @@ func (x *ReqMailList) String() string { func (*ReqMailList) ProtoMessage() {} func (x *ReqMailList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[492] + mi := &file_Gameapi_proto_msgTypes[501] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28543,7 +29010,7 @@ func (x *ReqMailList) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqMailList.ProtoReflect.Descriptor instead. func (*ReqMailList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{492} + return file_Gameapi_proto_rawDescGZIP(), []int{501} } type ResMailList struct { @@ -28556,7 +29023,7 @@ type ResMailList struct { func (x *ResMailList) Reset() { *x = ResMailList{} - mi := &file_Gameapi_proto_msgTypes[493] + mi := &file_Gameapi_proto_msgTypes[502] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28568,7 +29035,7 @@ func (x *ResMailList) String() string { func (*ResMailList) ProtoMessage() {} func (x *ResMailList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[493] + mi := &file_Gameapi_proto_msgTypes[502] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28581,7 +29048,7 @@ func (x *ResMailList) ProtoReflect() protoreflect.Message { // Deprecated: Use ResMailList.ProtoReflect.Descriptor instead. func (*ResMailList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{493} + return file_Gameapi_proto_rawDescGZIP(), []int{502} } func (x *ResMailList) GetMailList() map[int32]*MailInfo { @@ -28605,7 +29072,7 @@ type MailInfo struct { func (x *MailInfo) Reset() { *x = MailInfo{} - mi := &file_Gameapi_proto_msgTypes[494] + mi := &file_Gameapi_proto_msgTypes[503] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28617,7 +29084,7 @@ func (x *MailInfo) String() string { func (*MailInfo) ProtoMessage() {} func (x *MailInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[494] + mi := &file_Gameapi_proto_msgTypes[503] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28630,7 +29097,7 @@ func (x *MailInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MailInfo.ProtoReflect.Descriptor instead. func (*MailInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{494} + return file_Gameapi_proto_rawDescGZIP(), []int{503} } func (x *MailInfo) GetTitle() string { @@ -28679,7 +29146,7 @@ type ReqReadMail struct { func (x *ReqReadMail) Reset() { *x = ReqReadMail{} - mi := &file_Gameapi_proto_msgTypes[495] + mi := &file_Gameapi_proto_msgTypes[504] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28691,7 +29158,7 @@ func (x *ReqReadMail) String() string { func (*ReqReadMail) ProtoMessage() {} func (x *ReqReadMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[495] + mi := &file_Gameapi_proto_msgTypes[504] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28704,7 +29171,7 @@ func (x *ReqReadMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReadMail.ProtoReflect.Descriptor instead. func (*ReqReadMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{495} + return file_Gameapi_proto_rawDescGZIP(), []int{504} } func (x *ReqReadMail) GetId() int32 { @@ -28725,7 +29192,7 @@ type ResReadMail struct { func (x *ResReadMail) Reset() { *x = ResReadMail{} - mi := &file_Gameapi_proto_msgTypes[496] + mi := &file_Gameapi_proto_msgTypes[505] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28737,7 +29204,7 @@ func (x *ResReadMail) String() string { func (*ResReadMail) ProtoMessage() {} func (x *ResReadMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[496] + mi := &file_Gameapi_proto_msgTypes[505] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28750,7 +29217,7 @@ func (x *ResReadMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ResReadMail.ProtoReflect.Descriptor instead. func (*ResReadMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{496} + return file_Gameapi_proto_rawDescGZIP(), []int{505} } func (x *ResReadMail) GetCode() RES_CODE { @@ -28778,7 +29245,7 @@ type ReqGetMailReward struct { func (x *ReqGetMailReward) Reset() { *x = ReqGetMailReward{} - mi := &file_Gameapi_proto_msgTypes[497] + mi := &file_Gameapi_proto_msgTypes[506] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28790,7 +29257,7 @@ func (x *ReqGetMailReward) String() string { func (*ReqGetMailReward) ProtoMessage() {} func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[497] + mi := &file_Gameapi_proto_msgTypes[506] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28803,7 +29270,7 @@ func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetMailReward.ProtoReflect.Descriptor instead. func (*ReqGetMailReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{497} + return file_Gameapi_proto_rawDescGZIP(), []int{506} } func (x *ReqGetMailReward) GetId() int32 { @@ -28824,7 +29291,7 @@ type ResGetMailReward struct { func (x *ResGetMailReward) Reset() { *x = ResGetMailReward{} - mi := &file_Gameapi_proto_msgTypes[498] + mi := &file_Gameapi_proto_msgTypes[507] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28836,7 +29303,7 @@ func (x *ResGetMailReward) String() string { func (*ResGetMailReward) ProtoMessage() {} func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[498] + mi := &file_Gameapi_proto_msgTypes[507] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28849,7 +29316,7 @@ func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetMailReward.ProtoReflect.Descriptor instead. func (*ResGetMailReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{498} + return file_Gameapi_proto_rawDescGZIP(), []int{507} } func (x *ResGetMailReward) GetCode() RES_CODE { @@ -28877,7 +29344,7 @@ type ReqDeleteMail struct { func (x *ReqDeleteMail) Reset() { *x = ReqDeleteMail{} - mi := &file_Gameapi_proto_msgTypes[499] + mi := &file_Gameapi_proto_msgTypes[508] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28889,7 +29356,7 @@ func (x *ReqDeleteMail) String() string { func (*ReqDeleteMail) ProtoMessage() {} func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[499] + mi := &file_Gameapi_proto_msgTypes[508] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28902,7 +29369,7 @@ func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDeleteMail.ProtoReflect.Descriptor instead. func (*ReqDeleteMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{499} + return file_Gameapi_proto_rawDescGZIP(), []int{508} } func (x *ReqDeleteMail) GetId() int32 { @@ -28923,7 +29390,7 @@ type ResDeleteMail struct { func (x *ResDeleteMail) Reset() { *x = ResDeleteMail{} - mi := &file_Gameapi_proto_msgTypes[500] + mi := &file_Gameapi_proto_msgTypes[509] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28935,7 +29402,7 @@ func (x *ResDeleteMail) String() string { func (*ResDeleteMail) ProtoMessage() {} func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[500] + mi := &file_Gameapi_proto_msgTypes[509] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28948,7 +29415,7 @@ func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDeleteMail.ProtoReflect.Descriptor instead. func (*ResDeleteMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{500} + return file_Gameapi_proto_rawDescGZIP(), []int{509} } func (x *ResDeleteMail) GetCode() RES_CODE { @@ -28982,7 +29449,7 @@ type ResCharge struct { func (x *ResCharge) Reset() { *x = ResCharge{} - mi := &file_Gameapi_proto_msgTypes[501] + mi := &file_Gameapi_proto_msgTypes[510] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28994,7 +29461,7 @@ func (x *ResCharge) String() string { func (*ResCharge) ProtoMessage() {} func (x *ResCharge) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[501] + mi := &file_Gameapi_proto_msgTypes[510] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29007,7 +29474,7 @@ func (x *ResCharge) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCharge.ProtoReflect.Descriptor instead. func (*ResCharge) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{501} + return file_Gameapi_proto_rawDescGZIP(), []int{510} } func (x *ResCharge) GetCharge() float32 { @@ -29077,7 +29544,7 @@ type ResSpecialShop struct { func (x *ResSpecialShop) Reset() { *x = ResSpecialShop{} - mi := &file_Gameapi_proto_msgTypes[502] + mi := &file_Gameapi_proto_msgTypes[511] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29089,7 +29556,7 @@ func (x *ResSpecialShop) String() string { func (*ResSpecialShop) ProtoMessage() {} func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[502] + mi := &file_Gameapi_proto_msgTypes[511] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29102,7 +29569,7 @@ func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSpecialShop.ProtoReflect.Descriptor instead. func (*ResSpecialShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{502} + return file_Gameapi_proto_rawDescGZIP(), []int{511} } func (x *ResSpecialShop) GetGrade() int32 { @@ -29131,7 +29598,7 @@ type ResChessShop struct { func (x *ResChessShop) Reset() { *x = ResChessShop{} - mi := &file_Gameapi_proto_msgTypes[503] + mi := &file_Gameapi_proto_msgTypes[512] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29143,7 +29610,7 @@ func (x *ResChessShop) String() string { func (*ResChessShop) ProtoMessage() {} func (x *ResChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[503] + mi := &file_Gameapi_proto_msgTypes[512] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29156,7 +29623,7 @@ func (x *ResChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChessShop.ProtoReflect.Descriptor instead. func (*ResChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{503} + return file_Gameapi_proto_rawDescGZIP(), []int{512} } func (x *ResChessShop) GetDiamond() int32 { @@ -29188,7 +29655,7 @@ type ReqFreeShop struct { func (x *ReqFreeShop) Reset() { *x = ReqFreeShop{} - mi := &file_Gameapi_proto_msgTypes[504] + mi := &file_Gameapi_proto_msgTypes[513] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29200,7 +29667,7 @@ func (x *ReqFreeShop) String() string { func (*ReqFreeShop) ProtoMessage() {} func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[504] + mi := &file_Gameapi_proto_msgTypes[513] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29213,7 +29680,7 @@ func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFreeShop.ProtoReflect.Descriptor instead. func (*ReqFreeShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{504} + return file_Gameapi_proto_rawDescGZIP(), []int{513} } type ResFreeShop struct { @@ -29227,7 +29694,7 @@ type ResFreeShop struct { func (x *ResFreeShop) Reset() { *x = ResFreeShop{} - mi := &file_Gameapi_proto_msgTypes[505] + mi := &file_Gameapi_proto_msgTypes[514] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29239,7 +29706,7 @@ func (x *ResFreeShop) String() string { func (*ResFreeShop) ProtoMessage() {} func (x *ResFreeShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[505] + mi := &file_Gameapi_proto_msgTypes[514] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29252,7 +29719,7 @@ func (x *ResFreeShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFreeShop.ProtoReflect.Descriptor instead. func (*ResFreeShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{505} + return file_Gameapi_proto_rawDescGZIP(), []int{514} } func (x *ResFreeShop) GetCode() RES_CODE { @@ -29280,7 +29747,7 @@ type ReqBuyChessShop struct { func (x *ReqBuyChessShop) Reset() { *x = ReqBuyChessShop{} - mi := &file_Gameapi_proto_msgTypes[506] + mi := &file_Gameapi_proto_msgTypes[515] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29292,7 +29759,7 @@ func (x *ReqBuyChessShop) String() string { func (*ReqBuyChessShop) ProtoMessage() {} func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[506] + mi := &file_Gameapi_proto_msgTypes[515] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29305,7 +29772,7 @@ func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqBuyChessShop.ProtoReflect.Descriptor instead. func (*ReqBuyChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{506} + return file_Gameapi_proto_rawDescGZIP(), []int{515} } func (x *ReqBuyChessShop) GetId() int32 { @@ -29326,7 +29793,7 @@ type ResBuyChessShop struct { func (x *ResBuyChessShop) Reset() { *x = ResBuyChessShop{} - mi := &file_Gameapi_proto_msgTypes[507] + mi := &file_Gameapi_proto_msgTypes[516] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29338,7 +29805,7 @@ func (x *ResBuyChessShop) String() string { func (*ResBuyChessShop) ProtoMessage() {} func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[507] + mi := &file_Gameapi_proto_msgTypes[516] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29351,7 +29818,7 @@ func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResBuyChessShop.ProtoReflect.Descriptor instead. func (*ResBuyChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{507} + return file_Gameapi_proto_rawDescGZIP(), []int{516} } func (x *ResBuyChessShop) GetCode() RES_CODE { @@ -29377,7 +29844,7 @@ type ReqRefreshChessShop struct { func (x *ReqRefreshChessShop) Reset() { *x = ReqRefreshChessShop{} - mi := &file_Gameapi_proto_msgTypes[508] + mi := &file_Gameapi_proto_msgTypes[517] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29389,7 +29856,7 @@ func (x *ReqRefreshChessShop) String() string { func (*ReqRefreshChessShop) ProtoMessage() {} func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[508] + mi := &file_Gameapi_proto_msgTypes[517] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29402,7 +29869,7 @@ func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefreshChessShop.ProtoReflect.Descriptor instead. func (*ReqRefreshChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{508} + return file_Gameapi_proto_rawDescGZIP(), []int{517} } type ResRefreshChessShop struct { @@ -29416,7 +29883,7 @@ type ResRefreshChessShop struct { func (x *ResRefreshChessShop) Reset() { *x = ResRefreshChessShop{} - mi := &file_Gameapi_proto_msgTypes[509] + mi := &file_Gameapi_proto_msgTypes[518] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29428,7 +29895,7 @@ func (x *ResRefreshChessShop) String() string { func (*ResRefreshChessShop) ProtoMessage() {} func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[509] + mi := &file_Gameapi_proto_msgTypes[518] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29441,7 +29908,7 @@ func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefreshChessShop.ProtoReflect.Descriptor instead. func (*ResRefreshChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{509} + return file_Gameapi_proto_rawDescGZIP(), []int{518} } func (x *ResRefreshChessShop) GetCode() RES_CODE { @@ -29466,7 +29933,7 @@ type ReqEndless struct { func (x *ReqEndless) Reset() { *x = ReqEndless{} - mi := &file_Gameapi_proto_msgTypes[510] + mi := &file_Gameapi_proto_msgTypes[519] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29478,7 +29945,7 @@ func (x *ReqEndless) String() string { func (*ReqEndless) ProtoMessage() {} func (x *ReqEndless) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[510] + mi := &file_Gameapi_proto_msgTypes[519] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29491,7 +29958,7 @@ func (x *ReqEndless) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqEndless.ProtoReflect.Descriptor instead. func (*ReqEndless) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{510} + return file_Gameapi_proto_rawDescGZIP(), []int{519} } type ResEndless struct { @@ -29505,7 +29972,7 @@ type ResEndless struct { func (x *ResEndless) Reset() { *x = ResEndless{} - mi := &file_Gameapi_proto_msgTypes[511] + mi := &file_Gameapi_proto_msgTypes[520] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29517,7 +29984,7 @@ func (x *ResEndless) String() string { func (*ResEndless) ProtoMessage() {} func (x *ResEndless) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[511] + mi := &file_Gameapi_proto_msgTypes[520] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29530,7 +29997,7 @@ func (x *ResEndless) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndless.ProtoReflect.Descriptor instead. func (*ResEndless) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{511} + return file_Gameapi_proto_rawDescGZIP(), []int{520} } func (x *ResEndless) GetId() int32 { @@ -29559,7 +30026,7 @@ type ResEndlessInfo struct { func (x *ResEndlessInfo) Reset() { *x = ResEndlessInfo{} - mi := &file_Gameapi_proto_msgTypes[512] + mi := &file_Gameapi_proto_msgTypes[521] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29571,7 +30038,7 @@ func (x *ResEndlessInfo) String() string { func (*ResEndlessInfo) ProtoMessage() {} func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[512] + mi := &file_Gameapi_proto_msgTypes[521] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29584,7 +30051,7 @@ func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndlessInfo.ProtoReflect.Descriptor instead. func (*ResEndlessInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{512} + return file_Gameapi_proto_rawDescGZIP(), []int{521} } func (x *ResEndlessInfo) GetChargeId() int32 { @@ -29616,7 +30083,7 @@ type ReqEndlessReward struct { func (x *ReqEndlessReward) Reset() { *x = ReqEndlessReward{} - mi := &file_Gameapi_proto_msgTypes[513] + mi := &file_Gameapi_proto_msgTypes[522] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29628,7 +30095,7 @@ func (x *ReqEndlessReward) String() string { func (*ReqEndlessReward) ProtoMessage() {} func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[513] + mi := &file_Gameapi_proto_msgTypes[522] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29641,7 +30108,7 @@ func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqEndlessReward.ProtoReflect.Descriptor instead. func (*ReqEndlessReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{513} + return file_Gameapi_proto_rawDescGZIP(), []int{522} } type ResEndlessReward struct { @@ -29655,7 +30122,7 @@ type ResEndlessReward struct { func (x *ResEndlessReward) Reset() { *x = ResEndlessReward{} - mi := &file_Gameapi_proto_msgTypes[514] + mi := &file_Gameapi_proto_msgTypes[523] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29667,7 +30134,7 @@ func (x *ResEndlessReward) String() string { func (*ResEndlessReward) ProtoMessage() {} func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[514] + mi := &file_Gameapi_proto_msgTypes[523] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29680,7 +30147,7 @@ func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndlessReward.ProtoReflect.Descriptor instead. func (*ResEndlessReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{514} + return file_Gameapi_proto_rawDescGZIP(), []int{523} } func (x *ResEndlessReward) GetCode() RES_CODE { @@ -29710,7 +30177,7 @@ type ResPiggyBank struct { func (x *ResPiggyBank) Reset() { *x = ResPiggyBank{} - mi := &file_Gameapi_proto_msgTypes[515] + mi := &file_Gameapi_proto_msgTypes[524] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29722,7 +30189,7 @@ func (x *ResPiggyBank) String() string { func (*ResPiggyBank) ProtoMessage() {} func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[515] + mi := &file_Gameapi_proto_msgTypes[524] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29735,7 +30202,7 @@ func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPiggyBank.ProtoReflect.Descriptor instead. func (*ResPiggyBank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{515} + return file_Gameapi_proto_rawDescGZIP(), []int{524} } func (x *ResPiggyBank) GetType() int32 { @@ -29774,7 +30241,7 @@ type ReqPiggyBankReward struct { func (x *ReqPiggyBankReward) Reset() { *x = ReqPiggyBankReward{} - mi := &file_Gameapi_proto_msgTypes[516] + mi := &file_Gameapi_proto_msgTypes[525] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29786,7 +30253,7 @@ func (x *ReqPiggyBankReward) String() string { func (*ReqPiggyBankReward) ProtoMessage() {} func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[516] + mi := &file_Gameapi_proto_msgTypes[525] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29799,7 +30266,7 @@ func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPiggyBankReward.ProtoReflect.Descriptor instead. func (*ReqPiggyBankReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{516} + return file_Gameapi_proto_rawDescGZIP(), []int{525} } type ResPiggyBankReward struct { @@ -29813,7 +30280,7 @@ type ResPiggyBankReward struct { func (x *ResPiggyBankReward) Reset() { *x = ResPiggyBankReward{} - mi := &file_Gameapi_proto_msgTypes[517] + mi := &file_Gameapi_proto_msgTypes[526] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29825,7 +30292,7 @@ func (x *ResPiggyBankReward) String() string { func (*ResPiggyBankReward) ProtoMessage() {} func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[517] + mi := &file_Gameapi_proto_msgTypes[526] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29838,7 +30305,7 @@ func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPiggyBankReward.ProtoReflect.Descriptor instead. func (*ResPiggyBankReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{517} + return file_Gameapi_proto_rawDescGZIP(), []int{526} } func (x *ResPiggyBankReward) GetCode() RES_CODE { @@ -29867,7 +30334,7 @@ type ReqCreateOrderSn struct { func (x *ReqCreateOrderSn) Reset() { *x = ReqCreateOrderSn{} - mi := &file_Gameapi_proto_msgTypes[518] + mi := &file_Gameapi_proto_msgTypes[527] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29879,7 +30346,7 @@ func (x *ReqCreateOrderSn) String() string { func (*ReqCreateOrderSn) ProtoMessage() {} func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[518] + mi := &file_Gameapi_proto_msgTypes[527] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29892,7 +30359,7 @@ func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCreateOrderSn.ProtoReflect.Descriptor instead. func (*ReqCreateOrderSn) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{518} + return file_Gameapi_proto_rawDescGZIP(), []int{527} } func (x *ReqCreateOrderSn) GetChargeId() int32 { @@ -29926,7 +30393,7 @@ type ResCreateOrderSn struct { func (x *ResCreateOrderSn) Reset() { *x = ResCreateOrderSn{} - mi := &file_Gameapi_proto_msgTypes[519] + mi := &file_Gameapi_proto_msgTypes[528] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29938,7 +30405,7 @@ func (x *ResCreateOrderSn) String() string { func (*ResCreateOrderSn) ProtoMessage() {} func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[519] + mi := &file_Gameapi_proto_msgTypes[528] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29951,7 +30418,7 @@ func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCreateOrderSn.ProtoReflect.Descriptor instead. func (*ResCreateOrderSn) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{519} + return file_Gameapi_proto_rawDescGZIP(), []int{528} } func (x *ResCreateOrderSn) GetOrderSn() string { @@ -29973,7 +30440,7 @@ type ReqShippingOrder struct { func (x *ReqShippingOrder) Reset() { *x = ReqShippingOrder{} - mi := &file_Gameapi_proto_msgTypes[520] + mi := &file_Gameapi_proto_msgTypes[529] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29985,7 +30452,7 @@ func (x *ReqShippingOrder) String() string { func (*ReqShippingOrder) ProtoMessage() {} func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[520] + mi := &file_Gameapi_proto_msgTypes[529] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29998,7 +30465,7 @@ func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqShippingOrder.ProtoReflect.Descriptor instead. func (*ReqShippingOrder) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{520} + return file_Gameapi_proto_rawDescGZIP(), []int{529} } func (x *ReqShippingOrder) GetOrderSn() string { @@ -30033,7 +30500,7 @@ type ResShippingOrder struct { func (x *ResShippingOrder) Reset() { *x = ResShippingOrder{} - mi := &file_Gameapi_proto_msgTypes[521] + mi := &file_Gameapi_proto_msgTypes[530] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30045,7 +30512,7 @@ func (x *ResShippingOrder) String() string { func (*ResShippingOrder) ProtoMessage() {} func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[521] + mi := &file_Gameapi_proto_msgTypes[530] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30058,7 +30525,7 @@ func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ResShippingOrder.ProtoReflect.Descriptor instead. func (*ResShippingOrder) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{521} + return file_Gameapi_proto_rawDescGZIP(), []int{530} } func (x *ResShippingOrder) GetCode() RES_CODE { @@ -30083,7 +30550,7 @@ type ReqChampship struct { func (x *ReqChampship) Reset() { *x = ReqChampship{} - mi := &file_Gameapi_proto_msgTypes[522] + mi := &file_Gameapi_proto_msgTypes[531] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30095,7 +30562,7 @@ func (x *ReqChampship) String() string { func (*ReqChampship) ProtoMessage() {} func (x *ReqChampship) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[522] + mi := &file_Gameapi_proto_msgTypes[531] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30108,7 +30575,7 @@ func (x *ReqChampship) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampship.ProtoReflect.Descriptor instead. func (*ReqChampship) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{522} + return file_Gameapi_proto_rawDescGZIP(), []int{531} } type ResChampship struct { @@ -30116,15 +30583,17 @@ type ResChampship struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` - Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` - EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` - Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` + Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` + Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` + EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` + Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` + Rank int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"` + RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"` } func (x *ResChampship) Reset() { *x = ResChampship{} - mi := &file_Gameapi_proto_msgTypes[523] + mi := &file_Gameapi_proto_msgTypes[532] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30136,7 +30605,7 @@ func (x *ResChampship) String() string { func (*ResChampship) ProtoMessage() {} func (x *ResChampship) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[523] + mi := &file_Gameapi_proto_msgTypes[532] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30149,7 +30618,7 @@ func (x *ResChampship) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampship.ProtoReflect.Descriptor instead. func (*ResChampship) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{523} + return file_Gameapi_proto_rawDescGZIP(), []int{532} } func (x *ResChampship) GetScore() int32 { @@ -30180,6 +30649,20 @@ func (x *ResChampship) GetPeriod() int32 { return 0 } +func (x *ResChampship) GetRank() int32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *ResChampship) GetRankReward() int32 { + if x != nil { + return x.RankReward + } + return 0 +} + type ReqChampshipReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -30188,7 +30671,7 @@ type ReqChampshipReward struct { func (x *ReqChampshipReward) Reset() { *x = ReqChampshipReward{} - mi := &file_Gameapi_proto_msgTypes[524] + mi := &file_Gameapi_proto_msgTypes[533] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30200,7 +30683,7 @@ func (x *ReqChampshipReward) String() string { func (*ReqChampshipReward) ProtoMessage() {} func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[524] + mi := &file_Gameapi_proto_msgTypes[533] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30213,7 +30696,7 @@ func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipReward.ProtoReflect.Descriptor instead. func (*ReqChampshipReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{524} + return file_Gameapi_proto_rawDescGZIP(), []int{533} } type ResChampshipReward struct { @@ -30227,7 +30710,7 @@ type ResChampshipReward struct { func (x *ResChampshipReward) Reset() { *x = ResChampshipReward{} - mi := &file_Gameapi_proto_msgTypes[525] + mi := &file_Gameapi_proto_msgTypes[534] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30239,7 +30722,7 @@ func (x *ResChampshipReward) String() string { func (*ResChampshipReward) ProtoMessage() {} func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[525] + mi := &file_Gameapi_proto_msgTypes[534] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30252,7 +30735,7 @@ func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipReward.ProtoReflect.Descriptor instead. func (*ResChampshipReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{525} + return file_Gameapi_proto_rawDescGZIP(), []int{534} } func (x *ResChampshipReward) GetCode() RES_CODE { @@ -30269,6 +30752,140 @@ func (x *ResChampshipReward) GetMsg() string { return "" } +type ReqChampshipRankReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReqChampshipRankReward) Reset() { + *x = ReqChampshipRankReward{} + mi := &file_Gameapi_proto_msgTypes[535] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReqChampshipRankReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqChampshipRankReward) ProtoMessage() {} + +func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[535] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqChampshipRankReward.ProtoReflect.Descriptor instead. +func (*ReqChampshipRankReward) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{535} +} + +type ResChampshipRankReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` +} + +func (x *ResChampshipRankReward) Reset() { + *x = ResChampshipRankReward{} + mi := &file_Gameapi_proto_msgTypes[536] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResChampshipRankReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResChampshipRankReward) ProtoMessage() {} + +func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[536] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResChampshipRankReward.ProtoReflect.Descriptor instead. +func (*ResChampshipRankReward) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{536} +} + +func (x *ResChampshipRankReward) GetCode() RES_CODE { + if x != nil { + return x.Code + } + return RES_CODE_FAIL +} + +func (x *ResChampshipRankReward) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type ResNotifyCard struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 卡牌 +} + +func (x *ResNotifyCard) Reset() { + *x = ResNotifyCard{} + mi := &file_Gameapi_proto_msgTypes[537] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResNotifyCard) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResNotifyCard) ProtoMessage() {} + +func (x *ResNotifyCard) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[537] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResNotifyCard.ProtoReflect.Descriptor instead. +func (*ResNotifyCard) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{537} +} + +func (x *ResNotifyCard) GetCard() map[int32]int32 { + if x != nil { + return x.Card + } + return nil +} + var File_Gameapi_proto protoreflect.FileDescriptor var file_Gameapi_proto_rawDesc = []byte{ @@ -33186,436 +33803,477 @@ var file_Gameapi_proto_rawDesc = []byte{ 0x73, 0x74, 0x42, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, - 0x67, 0x79, 0x42, 0x75, 0x79, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x45, - 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x48, 0x0a, - 0x0c, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x30, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x47, 0x65, - 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x61, 0x6e, - 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x40, 0x0a, 0x08, 0x48, - 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, - 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x50, 0x0a, - 0x14, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x67, 0x79, 0x42, 0x75, 0x79, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x82, 0x02, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, + 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x34, 0x0a, + 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x65, 0x71, + 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x0a, 0x52, + 0x65, 0x73, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, - 0x65, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, - 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, - 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6d, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, - 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, - 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, - 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x42, 0x75, + 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x30, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x40, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, + 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x48, 0x61, + 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x47, 0x65, + 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x71, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x45, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x44, 0x65, + 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, + 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, + 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, + 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3c, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x47, 0x6d, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, + 0x67, 0x73, 0x22, 0x2c, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 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, 0xff, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, + 0x72, 0x64, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, + 0x53, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x3c, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, + 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, + 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x1a, 0x3a, 0x0a, 0x0c, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, + 0x64, 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, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x45, 0x78, 0x53, 0x74, + 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, + 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3c, 0x0a, 0x0c, 0x52, 0x65, - 0x71, 0x47, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x2c, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 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, 0xff, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, - 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, - 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, - 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, - 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x41, 0x6c, 0x6c, - 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x1a, 0x3a, 0x0a, 0x0c, - 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 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, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, - 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, - 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x45, - 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x41, - 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, - 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, + 0x71, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, + 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, + 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, + 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, + 0x47, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x23, + 0x0a, 0x11, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, + 0x69, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, - 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x41, - 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, - 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4d, 0x0a, - 0x11, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, - 0x76, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x0f, - 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, - 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x41, 0x0a, 0x15, 0x52, 0x65, - 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x51, 0x0a, - 0x15, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, + 0x73, 0x67, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, + 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3b, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, + 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3f, + 0x0a, 0x15, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, + 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x26, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x13, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, - 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, - 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, - 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, - 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x20, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, - 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, - 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 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, 0x22, 0x8e, 0x01, 0x0a, 0x0a, 0x52, - 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x43, 0x61, 0x72, 0x64, - 0x50, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x08, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 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, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2e, 0x0a, 0x08, 0x43, 0x61, 0x72, - 0x64, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x52, 0x65, - 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x57, 0x65, - 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, - 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, - 0x64, 0x1a, 0x52, 0x0a, 0x0f, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, - 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, - 0x79, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x65, - 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, - 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, - 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x22, 0x7d, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, - 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, - 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, - 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x53, 0x0a, 0x0b, 0x52, - 0x65, 0x73, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, - 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, - 0x22, 0x34, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, - 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, - 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, + 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, + 0x15, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, - 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, - 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x36, 0x0a, - 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x41, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x48, 0x0a, - 0x0c, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x26, 0x0a, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, - 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, - 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x65, 0x65, - 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, - 0x73, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, - 0x61, 0x63, 0x6b, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, - 0x31, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, - 0x6d, 0x31, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x28, 0x0a, 0x05, - 0x49, 0x74, 0x65, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x49, 0x74, 0x65, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x28, - 0x0a, 0x16, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x28, 0x0a, 0x16, - 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, - 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x42, 0x0a, 0x0a, 0x52, 0x65, - 0x73, 0x41, 0x63, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x96, - 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, - 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd3, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, - 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 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, 0x22, 0x36, - 0x0a, 0x0a, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0x60, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, - 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x20, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x68, 0x65, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x13, - 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x39, 0x0a, + 0x0b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 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, 0x22, 0x8e, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, + 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, + 0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 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, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2e, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x50, + 0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, + 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x43, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, + 0x61, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x1a, + 0x52, 0x0a, 0x0f, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, + 0x65, 0x65, 0x6b, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x6e, 0x4c, + 0x6f, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x22, 0x7d, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, + 0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x27, 0x0a, + 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, + 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x53, 0x0a, 0x0b, 0x52, 0x65, 0x73, + 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x34, + 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, + 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, + 0x46, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x5b, + 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x0a, 0x41, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x52, + 0x65, 0x73, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x76, + 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, + 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x61, 0x63, + 0x6b, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, + 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, + 0x65, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x16, + 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, + 0x71, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x41, + 0x63, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x96, 0x01, 0x0a, + 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x57, 0x0a, + 0x13, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd3, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x0e, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 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, 0x22, 0x36, 0x0a, 0x0a, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x43, 0x64, 0x22, 0x60, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, + 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2a, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x68, 0x65, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, + 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x2e, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, + 0x67, 0x79, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2e, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 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, 0x46, - 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x52, 0x65, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x73, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xc7, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, + 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, + 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, @@ -33625,301 +34283,323 @@ var file_Gameapi_proto_rawDesc = []byte{ 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x05, - 0x52, 0x65, 0x71, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, 0x0a, - 0x05, 0x52, 0x65, 0x73, 0x4b, 0x76, 0x12, 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x4b, 0x76, 0x2e, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, 0x1a, - 0x35, 0x0a, 0x07, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x43, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x52, - 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, - 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4a, 0x0a, - 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, - 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0a, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x49, 0x0a, 0x0e, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x37, 0x0a, - 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x10, 0x52, 0x65, - 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x31, - 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x4c, - 0x6f, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, - 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, - 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, - 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, - 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, - 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x56, - 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, - 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, - 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4d, - 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x4d, 0x61, - 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1d, 0x0a, 0x0b, 0x52, 0x65, - 0x71, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, - 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, - 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, - 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x1f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0xa1, 0x04, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, - 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x46, 0x69, 0x72, - 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, - 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, - 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x47, 0x69, 0x66, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x41, 0x64, 0x1a, 0x58, 0x0a, 0x10, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, - 0x69, 0x66, 0x74, 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, 0x22, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x0d, 0x0a, 0x0b, - 0x52, 0x65, 0x71, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x47, 0x0a, 0x0b, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x42, 0x75, - 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, - 0x65, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, - 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, - 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x1a, 0x58, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, - 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, - 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, - 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, - 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, - 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3f, 0x0a, 0x10, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2b, + 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x0d, + 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x05, 0x52, 0x65, 0x71, + 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, 0x0a, 0x05, 0x52, 0x65, + 0x73, 0x4b, 0x76, 0x12, 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4b, 0x76, + 0x2e, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, 0x1a, 0x35, 0x0a, 0x07, + 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x43, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, - 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, - 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4a, 0x0a, 0x0d, 0x52, 0x65, + 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x49, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x07, 0x4d, + 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x13, + 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, + 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, + 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, + 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, + 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb2, + 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, + 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x52, + 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x56, 0x0a, 0x0d, 0x52, + 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x69, 0x6c, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x1a, 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, + 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, + 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x61, + 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x1f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, + 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xa1, 0x04, + 0x0a, 0x09, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x46, 0x69, 0x72, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, + 0x46, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, + 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, + 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, + 0x68, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x41, 0x64, 0x1a, 0x58, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, + 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, 0x22, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, + 0x68, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x58, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, + 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, + 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, + 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, + 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x45, + 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, + 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x1a, + 0x58, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x73, + 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, + 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x50, 0x69, + 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, + 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x69, 0x67, 0x67, + 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, + 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x64, 0x0a, 0x10, 0x52, + 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x22, + 0x64, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x68, 0x69, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, + 0x68, 0x69, 0x70, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, + 0x73, 0x68, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x43, + 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x64, - 0x0a, 0x10, 0x52, 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x6e, 0x22, 0x64, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, - 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, - 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, - 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x22, 0x6e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, - 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, - 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, - 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x18, + 0x0a, 0x16, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x43, + 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x2a, 0x42, 0x0a, 0x0b, - 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41, - 0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, - 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, - 0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04, - 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, - 0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x53, 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e, - 0x44, 0x10, 0x02, 0x2a, 0x44, 0x0a, 0x12, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x5f, 0x4e, 0x4f, - 0x54, 0x49, 0x46, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x50, - 0x50, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x46, 0x52, 0x45, 0x46, 0x55, 0x53, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, - 0x46, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, - 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x7f, 0x0a, 0x0d, + 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, + 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x75, + 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x43, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, + 0x43, 0x61, 0x72, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x2a, 0x42, 0x0a, + 0x0b, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, + 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, + 0x45, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, + 0x04, 0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x53, 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, + 0x4e, 0x44, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -33934,824 +34614,844 @@ func file_Gameapi_proto_rawDescGZIP() []byte { return file_Gameapi_proto_rawDescData } -var file_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 589) +var file_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 602) var file_Gameapi_proto_goTypes = []any{ (HANDLE_TYPE)(0), // 0: tutorial.HANDLE_TYPE (RES_CODE)(0), // 1: tutorial.RES_CODE (ITEM_TYPE)(0), // 2: tutorial.ITEM_TYPE - (FRIEND_NOTIFY_TYPE)(0), // 3: tutorial.FRIEND_NOTIFY_TYPE - (UseItemResponse_CODE)(0), // 4: tutorial.UseItemResponse.CODE - (*ClientReq)(nil), // 5: tutorial.ClientReq - (*ClientRes)(nil), // 6: tutorial.ClientRes - (*ReqRegisterAccount)(nil), // 7: tutorial.ReqRegisterAccount - (*ResRegisterAccount)(nil), // 8: tutorial.ResRegisterAccount - (*ReqLogin)(nil), // 9: tutorial.ReqLogin - (*ResLogin)(nil), // 10: tutorial.ResLogin - (*ReqPlayerBaseInfo)(nil), // 11: tutorial.ReqPlayerBaseInfo - (*ResPlayerBaseInfo)(nil), // 12: tutorial.ResPlayerBaseInfo - (*ResPlayerAsset)(nil), // 13: tutorial.ResPlayerAsset - (*UpdateBaseItemInfo)(nil), // 14: tutorial.UpdateBaseItemInfo - (*NotifyRenewBuyEnergyCnt)(nil), // 15: tutorial.NotifyRenewBuyEnergyCnt - (*ReqRemoveAd)(nil), // 16: tutorial.ReqRemoveAd - (*ResRemoveAd)(nil), // 17: tutorial.ResRemoveAd - (*NotifyAddEnergy)(nil), // 18: tutorial.NotifyAddEnergy - (*ReqServerTime)(nil), // 19: tutorial.ReqServerTime - (*ResServerTime)(nil), // 20: tutorial.ResServerTime - (*ReqPlayerEmitUnlockData)(nil), // 21: tutorial.ReqPlayerEmitUnlockData - (*ResPlayerEmitUnlockData)(nil), // 22: tutorial.ResPlayerEmitUnlockData - (*NotifyDailyRenewEmitUnlock)(nil), // 23: tutorial.NotifyDailyRenewEmitUnlock - (*UpdatePlayerEmitUnlockData)(nil), // 24: tutorial.UpdatePlayerEmitUnlockData - (*ReqPlayerPackData)(nil), // 25: tutorial.ReqPlayerPackData - (*ResPlayerPackData)(nil), // 26: tutorial.ResPlayerPackData - (*UpdatePlayerPackData)(nil), // 27: tutorial.UpdatePlayerPackData - (*ReqPlayerChessData)(nil), // 28: tutorial.ReqPlayerChessData - (*ResPlayerChessData)(nil), // 29: tutorial.ResPlayerChessData - (*ResPlayerChessInfo)(nil), // 30: tutorial.ResPlayerChessInfo - (*ChessHandle)(nil), // 31: tutorial.ChessHandle - (*UpdatePlayerChessData)(nil), // 32: tutorial.UpdatePlayerChessData - (*ResUpdatePlayerChessData)(nil), // 33: tutorial.ResUpdatePlayerChessData - (*ReqGetChessFromBuff)(nil), // 34: tutorial.ReqGetChessFromBuff - (*ResGetChessFromBuff)(nil), // 35: tutorial.ResGetChessFromBuff - (*ReqChessEx)(nil), // 36: tutorial.ReqChessEx - (*ResChessEx)(nil), // 37: tutorial.ResChessEx - (*ChessBag)(nil), // 38: tutorial.ChessBag - (*ChessBagGrid)(nil), // 39: tutorial.ChessBagGrid - (*ReqPutChessInBag)(nil), // 40: tutorial.ReqPutChessInBag - (*ResPutChessInBag)(nil), // 41: tutorial.ResPutChessInBag - (*ReqTakeChessOutBag)(nil), // 42: tutorial.ReqTakeChessOutBag - (*ResTakeChessOutBag)(nil), // 43: tutorial.ResTakeChessOutBag - (*ReqBuyChessBagGrid)(nil), // 44: tutorial.ReqBuyChessBagGrid - (*ResBuyChessBagGrid)(nil), // 45: tutorial.ResBuyChessBagGrid - (*ReqPlayerGiftData)(nil), // 46: tutorial.ReqPlayerGiftData - (*ResPlayerGiftData)(nil), // 47: tutorial.ResPlayerGiftData - (*UpdatePlayerGiftData)(nil), // 48: tutorial.UpdatePlayerGiftData - (*ReqAddGift)(nil), // 49: tutorial.ReqAddGift - (*ResAddGift)(nil), // 50: tutorial.ResAddGift - (*ReqUseGift)(nil), // 51: tutorial.ReqUseGift - (*ReqPlayerOrderData)(nil), // 52: tutorial.ReqPlayerOrderData - (*ResPlayerOrderData)(nil), // 53: tutorial.ResPlayerOrderData - (*UpdatePlayerOrderData)(nil), // 54: tutorial.UpdatePlayerOrderData - (*NotifyDailyOrderRenew)(nil), // 55: tutorial.NotifyDailyOrderRenew - (*ReqUnlockingChestID)(nil), // 56: tutorial.ReqUnlockingChestID - (*ResUnlockingChestID)(nil), // 57: tutorial.ResUnlockingChestID - (*NotifyInitUnlockingChestID)(nil), // 58: tutorial.NotifyInitUnlockingChestID - (*NotifyUnlockingChestData)(nil), // 59: tutorial.NotifyUnlockingChestData - (*ReqChestUnlockCD)(nil), // 60: tutorial.ReqChestUnlockCD - (*ResChestUnlockCD)(nil), // 61: tutorial.ResChestUnlockCD - (*ReqChessColorData)(nil), // 62: tutorial.ReqChessColorData - (*ResChessColorData)(nil), // 63: tutorial.ResChessColorData - (*UpdateChessColorData)(nil), // 64: tutorial.UpdateChessColorData - (*ReqEmitMergeMap)(nil), // 65: tutorial.ReqEmitMergeMap - (*ResEmitMergeMap)(nil), // 66: tutorial.ResEmitMergeMap - (*UpdateEmitMergeMap)(nil), // 67: tutorial.UpdateEmitMergeMap - (*ReqEmitCountMap)(nil), // 68: tutorial.ReqEmitCountMap - (*ResEmitCountMap)(nil), // 69: tutorial.ResEmitCountMap - (*UpdateEmitCountMap)(nil), // 70: tutorial.UpdateEmitCountMap - (*ReqEmitCDStartData)(nil), // 71: tutorial.ReqEmitCDStartData - (*ResEmitCDStartData)(nil), // 72: tutorial.ResEmitCDStartData - (*NotifyInitEmitCDTimeData)(nil), // 73: tutorial.NotifyInitEmitCDTimeData - (*NotifyEmitCDTimeEndData)(nil), // 74: tutorial.NotifyEmitCDTimeEndData - (*ReqEmitSubCD)(nil), // 75: tutorial.ReqEmitSubCD - (*ReqDecorateData)(nil), // 76: tutorial.ReqDecorateData - (*ResDecorateData)(nil), // 77: tutorial.ResDecorateData - (*UpdateDecorateData)(nil), // 78: tutorial.UpdateDecorateData - (*ReqShopData)(nil), // 79: tutorial.ReqShopData - (*ResShopData)(nil), // 80: tutorial.ResShopData - (*NotifyShopStatusChange)(nil), // 81: tutorial.NotifyShopStatusChange - (*ReqShopBuy)(nil), // 82: tutorial.ReqShopBuy - (*ResShopBuy)(nil), // 83: tutorial.ResShopBuy - (*ReqRenewItemBuyCnt)(nil), // 84: tutorial.ReqRenewItemBuyCnt - (*ResRenewItemBuyCnt)(nil), // 85: tutorial.ResRenewItemBuyCnt - (*ReqPlayerAdPack)(nil), // 86: tutorial.ReqPlayerAdPack - (*ResPlayerAdPack)(nil), // 87: tutorial.ResPlayerAdPack - (*ReqWatchAd)(nil), // 88: tutorial.ReqWatchAd - (*ResWatchAd)(nil), // 89: tutorial.ResWatchAd - (*BriefEmailStruct)(nil), // 90: tutorial.BriefEmailStruct - (*ReqBriefEmailData)(nil), // 91: tutorial.ReqBriefEmailData - (*ResBriefEmailData)(nil), // 92: tutorial.ResBriefEmailData - (*NotifyNewBriefEmailData)(nil), // 93: tutorial.NotifyNewBriefEmailData - (*ReqDetailEmailData)(nil), // 94: tutorial.ReqDetailEmailData - (*ResDetailEmailData)(nil), // 95: tutorial.ResDetailEmailData - (*ReqGetEmailReward)(nil), // 96: tutorial.ReqGetEmailReward - (*ResGetEmailReward)(nil), // 97: tutorial.ResGetEmailReward - (*ReqDeleteEmail)(nil), // 98: tutorial.ReqDeleteEmail - (*ResDeleteEmail)(nil), // 99: tutorial.ResDeleteEmail - (*LimitedTimeActiveStruct)(nil), // 100: tutorial.LimitedTimeActiveStruct - (*LimitedTimeEndStruct)(nil), // 101: tutorial.LimitedTimeEndStruct - (*NotifyLimitedTimeActiveData)(nil), // 102: tutorial.NotifyLimitedTimeActiveData - (*NotifyLimitedTimeActiveEnd)(nil), // 103: tutorial.NotifyLimitedTimeActiveEnd - (*ReqLimitPassportDetail)(nil), // 104: tutorial.ReqLimitPassportDetail - (*ResLimitPassportDetail)(nil), // 105: tutorial.ResLimitPassportDetail - (*ReqActiveAddStar)(nil), // 106: tutorial.ReqActiveAddStar - (*ResActiveAddStar)(nil), // 107: tutorial.ResActiveAddStar - (*ReqPayPassport)(nil), // 108: tutorial.ReqPayPassport - (*ResPayPassport)(nil), // 109: tutorial.ResPayPassport - (*ReqGetLimitPassportReward)(nil), // 110: tutorial.ReqGetLimitPassportReward - (*ResGetLimitPassportReward)(nil), // 111: tutorial.ResGetLimitPassportReward - (*ReqOpenNewPig)(nil), // 112: tutorial.ReqOpenNewPig - (*ResOpenNewPig)(nil), // 113: tutorial.ResOpenNewPig - (*ReqPigDetailInfo)(nil), // 114: tutorial.ReqPigDetailInfo - (*ResPigDetailInfo)(nil), // 115: tutorial.ResPigDetailInfo - (*UpdateFinishOrderDiamond)(nil), // 116: tutorial.UpdateFinishOrderDiamond - (*ReqGetPigReward)(nil), // 117: tutorial.ReqGetPigReward - (*ResGetPigReward)(nil), // 118: tutorial.ResGetPigReward - (*ReqDropPigReward)(nil), // 119: tutorial.ReqDropPigReward - (*ResDropPigReward)(nil), // 120: tutorial.ResDropPigReward - (*ReqPromotionDetail)(nil), // 121: tutorial.ReqPromotionDetail - (*ResPromotionDetail)(nil), // 122: tutorial.ResPromotionDetail - (*ReqBuyLimitPromotionReward)(nil), // 123: tutorial.ReqBuyLimitPromotionReward - (*ResBuyLimitPromotionReward)(nil), // 124: tutorial.ResBuyLimitPromotionReward - (*ReqInfinitePackDetail)(nil), // 125: tutorial.ReqInfinitePackDetail - (*ResInfinitePackDetail)(nil), // 126: tutorial.ResInfinitePackDetail - (*ReqBuyInfinitePack)(nil), // 127: tutorial.ReqBuyInfinitePack - (*ResBuyInfinitePack)(nil), // 128: tutorial.ResBuyInfinitePack - (*NotifyRefreshInfinitePack)(nil), // 129: tutorial.NotifyRefreshInfinitePack - (*Req7DayLoginDetail)(nil), // 130: tutorial.Req7DayLoginDetail - (*Res7DayLoginDetail)(nil), // 131: tutorial.Res7DayLoginDetail - (*ReqGet7DayLoginPack)(nil), // 132: tutorial.ReqGet7DayLoginPack - (*ResGet7DayLoginPack)(nil), // 133: tutorial.ResGet7DayLoginPack - (*NotifyDailyRenew7Day)(nil), // 134: tutorial.NotifyDailyRenew7Day - (*ReqOfflineReconnect)(nil), // 135: tutorial.ReqOfflineReconnect - (*ResOfflineReconnect)(nil), // 136: tutorial.ResOfflineReconnect - (*ReqServerVersion)(nil), // 137: tutorial.ReqServerVersion - (*ResServerVersion)(nil), // 138: tutorial.ResServerVersion - (*ReqLevelUpPackInfo)(nil), // 139: tutorial.ReqLevelUpPackInfo - (*ResLevelUpPackInfo)(nil), // 140: tutorial.ResLevelUpPackInfo - (*ReqBuyLevelUpPack)(nil), // 141: tutorial.ReqBuyLevelUpPack - (*ResBuyLevelUpPack)(nil), // 142: tutorial.ResBuyLevelUpPack - (*ReqGrowthFundInfo)(nil), // 143: tutorial.ReqGrowthFundInfo - (*ResGrowthFundInfo)(nil), // 144: tutorial.ResGrowthFundInfo - (*ReqBuyGrowthFund)(nil), // 145: tutorial.ReqBuyGrowthFund - (*ResBuyGrowthFund)(nil), // 146: tutorial.ResBuyGrowthFund - (*ReqGetGrowthFundWard)(nil), // 147: tutorial.ReqGetGrowthFundWard - (*ResGetGrowthFundWard)(nil), // 148: tutorial.ResGetGrowthFundWard - (*ReqSupremeGiftInfo)(nil), // 149: tutorial.ReqSupremeGiftInfo - (*ResSupremeGiftInfo)(nil), // 150: tutorial.ResSupremeGiftInfo - (*ReqBuySupremeGift)(nil), // 151: tutorial.ReqBuySupremeGift - (*ResBuySupremeGift)(nil), // 152: tutorial.ResBuySupremeGift - (*NotifySupremeGiftTimeOver)(nil), // 153: tutorial.NotifySupremeGiftTimeOver - (*ReqIllustratedInfo)(nil), // 154: tutorial.ReqIllustratedInfo - (*SingleIllustratedItem)(nil), // 155: tutorial.SingleIllustratedItem - (*CategoryIllustratedData)(nil), // 156: tutorial.CategoryIllustratedData - (*ResIllustratedInfo)(nil), // 157: tutorial.ResIllustratedInfo - (*UpdateIllustrateItem)(nil), // 158: tutorial.UpdateIllustrateItem - (*ReqGetIllustrateItemReward)(nil), // 159: tutorial.ReqGetIllustrateItemReward - (*ResGetIllustrateItemReward)(nil), // 160: tutorial.ResGetIllustrateItemReward - (*ReqCardCollectDetail)(nil), // 161: tutorial.ReqCardCollectDetail - (*ResCardCollectDetail)(nil), // 162: tutorial.ResCardCollectDetail - (*ReqGetCardAlbumReward)(nil), // 163: tutorial.ReqGetCardAlbumReward - (*ResGetCardAlbumReward)(nil), // 164: tutorial.ResGetCardAlbumReward - (*ReqGetAllCardReward)(nil), // 165: tutorial.ReqGetAllCardReward - (*ResGetAllCardReward)(nil), // 166: tutorial.ResGetAllCardReward - (*ReqAddCard)(nil), // 167: tutorial.ReqAddCard - (*ResAddCard)(nil), // 168: tutorial.ResAddCard - (*ReqUnpackCard)(nil), // 169: tutorial.ReqUnpackCard - (*ResUnpackCard)(nil), // 170: tutorial.ResUnpackCard - (*ReqAddMasterCard)(nil), // 171: tutorial.ReqAddMasterCard - (*ResAddMasterCard)(nil), // 172: tutorial.ResAddMasterCard - (*ReqUseMasterCard)(nil), // 173: tutorial.ReqUseMasterCard - (*ResUseMasterCard)(nil), // 174: tutorial.ResUseMasterCard - (*ReqUpdateStickerCount)(nil), // 175: tutorial.ReqUpdateStickerCount - (*ResUpdateStickerCount)(nil), // 176: tutorial.ResUpdateStickerCount - (*ReqBuyStickerItem)(nil), // 177: tutorial.ReqBuyStickerItem - (*ResBuyStickerItem)(nil), // 178: tutorial.ResBuyStickerItem - (*Notify7DayLoginData)(nil), // 179: tutorial.Notify7DayLoginData - (*Req7DaySignal)(nil), // 180: tutorial.Req7DaySignal - (*Res7DaySignal)(nil), // 181: tutorial.Res7DaySignal - (*Notify7DayCallbackData)(nil), // 182: tutorial.Notify7DayCallbackData - (*Notify7DayCallbackEnd)(nil), // 183: tutorial.Notify7DayCallbackEnd - (*Req7DayCallbackSignal)(nil), // 184: tutorial.Req7DayCallbackSignal - (*Res7DayCallbackSignal)(nil), // 185: tutorial.Res7DayCallbackSignal - (*ReqKeyValueData)(nil), // 186: tutorial.ReqKeyValueData - (*ResKeyValueData)(nil), // 187: tutorial.ResKeyValueData - (*UpdateKeyValueData)(nil), // 188: tutorial.UpdateKeyValueData - (*ReqDailyTaskData)(nil), // 189: tutorial.ReqDailyTaskData - (*ResDailyTaskData)(nil), // 190: tutorial.ResDailyTaskData - (*NotifyRenewDailyTask)(nil), // 191: tutorial.NotifyRenewDailyTask - (*UpdateDailyTaskData)(nil), // 192: tutorial.UpdateDailyTaskData - (*NotifyRenewWeekyActive)(nil), // 193: tutorial.NotifyRenewWeekyActive - (*RenewDailyTaskData)(nil), // 194: tutorial.RenewDailyTaskData - (*RenewWeekyActiveData)(nil), // 195: tutorial.RenewWeekyActiveData - (*ReqMileStoneData)(nil), // 196: tutorial.ReqMileStoneData - (*ResMileStoneData)(nil), // 197: tutorial.ResMileStoneData - (*NotifyRenewMileStone)(nil), // 198: tutorial.NotifyRenewMileStone - (*UpdateMileStoneData)(nil), // 199: tutorial.UpdateMileStoneData - (*RenewMileStoneData)(nil), // 200: tutorial.RenewMileStoneData - (*ReqPlayerChampshipData)(nil), // 201: tutorial.ReqPlayerChampshipData - (*ResPlayerChampshipData)(nil), // 202: tutorial.ResPlayerChampshipData - (*ReqChampshipData)(nil), // 203: tutorial.ReqChampshipData - (*ChampshipsPlayerInfo)(nil), // 204: tutorial.ChampshipsPlayerInfo - (*ResChampshipData)(nil), // 205: tutorial.ResChampshipData - (*NotifyNewChampshipRank)(nil), // 206: tutorial.NotifyNewChampshipRank - (*NotifyUpdateChampshipRank)(nil), // 207: tutorial.NotifyUpdateChampshipRank - (*NotifyChampshipOpen)(nil), // 208: tutorial.NotifyChampshipOpen - (*NotifyChampshipClose)(nil), // 209: tutorial.NotifyChampshipClose - (*NotifyChampshipTimesOpen)(nil), // 210: tutorial.NotifyChampshipTimesOpen - (*NotifyChampshipTimesClose)(nil), // 211: tutorial.NotifyChampshipTimesClose - (*NotifyChampshipSettleOpen)(nil), // 212: tutorial.NotifyChampshipSettleOpen - (*NotifyChampshipSettleClose)(nil), // 213: tutorial.NotifyChampshipSettleClose - (*ReqChampshipAddScore)(nil), // 214: tutorial.ReqChampshipAddScore - (*ResChampshipAddScore)(nil), // 215: tutorial.ResChampshipAddScore - (*ReqChampshipAddTime)(nil), // 216: tutorial.ReqChampshipAddTime - (*ResChampshipAddTime)(nil), // 217: tutorial.ResChampshipAddTime - (*PlayerPayItem)(nil), // 218: tutorial.PlayerPayItem - (*ReqPlayerPayData)(nil), // 219: tutorial.ReqPlayerPayData - (*ResPlayerPayData)(nil), // 220: tutorial.ResPlayerPayData - (*ReqAddPay)(nil), // 221: tutorial.ReqAddPay - (*ResAddPay)(nil), // 222: tutorial.ResAddPay - (*ReqPlayerSingleData)(nil), // 223: tutorial.ReqPlayerSingleData - (*ResPlayerSingleData)(nil), // 224: tutorial.ResPlayerSingleData - (*ReqOpenNewbiePack)(nil), // 225: tutorial.ReqOpenNewbiePack - (*ResOpenNewbiePack)(nil), // 226: tutorial.ResOpenNewbiePack - (*ReqBuyNewbiePack)(nil), // 227: tutorial.ReqBuyNewbiePack - (*ResBuyNewbiePack)(nil), // 228: tutorial.ResBuyNewbiePack - (*NotifyPlayerSingleData)(nil), // 229: tutorial.NotifyPlayerSingleData - (*ReqAddNoAdCnt)(nil), // 230: tutorial.ReqAddNoAdCnt - (*ResAddNoAdCnt)(nil), // 231: tutorial.ResAddNoAdCnt - (*ReqAddWatchAdCnt)(nil), // 232: tutorial.ReqAddWatchAdCnt - (*ResAddWatchAdCnt)(nil), // 233: tutorial.ResAddWatchAdCnt - (*ReqAdPackData)(nil), // 234: tutorial.ReqAdPackData - (*ResAdPackData)(nil), // 235: tutorial.ResAdPackData - (*NotifyAdPackData)(nil), // 236: tutorial.NotifyAdPackData - (*ReqWatchAdPack)(nil), // 237: tutorial.ReqWatchAdPack - (*ResWatchAdPack)(nil), // 238: tutorial.ResWatchAdPack - (*ForceKickOut)(nil), // 239: tutorial.ForceKickOut - (*ReqLimitData)(nil), // 240: tutorial.ReqLimitData - (*ResLimitData)(nil), // 241: tutorial.ResLimitData - (*NotifyLimitData)(nil), // 242: tutorial.NotifyLimitData - (*ReqAddLimitTime)(nil), // 243: tutorial.ReqAddLimitTime - (*ResAddLimitTime)(nil), // 244: tutorial.ResAddLimitTime - (*ReqGenSuperOrder)(nil), // 245: tutorial.ReqGenSuperOrder - (*ResGenSuperOrder)(nil), // 246: tutorial.ResGenSuperOrder - (*ReqEndSuperOrder)(nil), // 247: tutorial.ReqEndSuperOrder - (*ResEndSuperOrder)(nil), // 248: tutorial.ResEndSuperOrder - (*NotifyLimitCardSwapData)(nil), // 249: tutorial.NotifyLimitCardSwapData - (*ReqCompleteDoubleHit)(nil), // 250: tutorial.ReqCompleteDoubleHit - (*ResCompleteDoubleHit)(nil), // 251: tutorial.ResCompleteDoubleHit - (*ReqTagThief)(nil), // 252: tutorial.ReqTagThief - (*ResTagThief)(nil), // 253: tutorial.ResTagThief - (*NotifyRenewTagThief)(nil), // 254: tutorial.NotifyRenewTagThief - (*ReqPlayerProfileData)(nil), // 255: tutorial.ReqPlayerProfileData - (*ResPlayerProfileData)(nil), // 256: tutorial.ResPlayerProfileData - (*ReqPlayerBriefProfileData)(nil), // 257: tutorial.ReqPlayerBriefProfileData - (*ResPlayerBriefProfileData)(nil), // 258: tutorial.ResPlayerBriefProfileData - (*ReqUpdatePlayerProfile)(nil), // 259: tutorial.ReqUpdatePlayerProfile - (*ResUpdatePlayerProfile)(nil), // 260: tutorial.ResUpdatePlayerProfile - (*ReqUpdateFBPicURL)(nil), // 261: tutorial.ReqUpdateFBPicURL - (*ResUpdateFBPicURL)(nil), // 262: tutorial.ResUpdateFBPicURL - (*FriendInfo)(nil), // 263: tutorial.FriendInfo - (*ReqFriendData)(nil), // 264: tutorial.ReqFriendData - (*ResFriendData)(nil), // 265: tutorial.ResFriendData - (*AddFriendData)(nil), // 266: tutorial.AddFriendData - (*ReqWillPlayerDetail)(nil), // 267: tutorial.ReqWillPlayerDetail - (*ResWillPlayerDetail)(nil), // 268: tutorial.ResWillPlayerDetail - (*ReqAddFriendData)(nil), // 269: tutorial.ReqAddFriendData - (*ResAddFriendData)(nil), // 270: tutorial.ResAddFriendData - (*NotifyAddFriendReq)(nil), // 271: tutorial.NotifyAddFriendReq - (*ReqAllAddFriendInfo)(nil), // 272: tutorial.ReqAllAddFriendInfo - (*ResAllAddFriendInfo)(nil), // 273: tutorial.ResAllAddFriendInfo - (*ReqAgreeFriendReq)(nil), // 274: tutorial.ReqAgreeFriendReq - (*ResAgreeFriendReq)(nil), // 275: tutorial.ResAgreeFriendReq - (*NotifyAgreeAddFriend)(nil), // 276: tutorial.NotifyAgreeAddFriend - (*ReqRefuseFriendReq)(nil), // 277: tutorial.ReqRefuseFriendReq - (*ResRefuseFriendReq)(nil), // 278: tutorial.ResRefuseFriendReq - (*NotifyDeleteFriend)(nil), // 279: tutorial.NotifyDeleteFriend - (*ReqDeleteFriend)(nil), // 280: tutorial.ReqDeleteFriend - (*ResDeleteFriend)(nil), // 281: tutorial.ResDeleteFriend - (*ReqAutoFBAddFriend)(nil), // 282: tutorial.ReqAutoFBAddFriend - (*ResAutoFBAddFriend)(nil), // 283: tutorial.ResAutoFBAddFriend - (*ReqAutoAddInviteFriend)(nil), // 284: tutorial.ReqAutoAddInviteFriend - (*ResAutoAddInviteFriend)(nil), // 285: tutorial.ResAutoAddInviteFriend - (*NotifySuccessInviteAddFriend)(nil), // 286: tutorial.NotifySuccessInviteAddFriend - (*NotifySuccessFBAddFriend)(nil), // 287: tutorial.NotifySuccessFBAddFriend - (*ReqRecommendFriendList)(nil), // 288: tutorial.ReqRecommendFriendList - (*ResRecommendFriendList)(nil), // 289: tutorial.ResRecommendFriendList - (*ReqInviteFriendData)(nil), // 290: tutorial.ReqInviteFriendData - (*ResInviteFriendData)(nil), // 291: tutorial.ResInviteFriendData - (*ReqSelfInvited)(nil), // 292: tutorial.ReqSelfInvited - (*ResSelfInvited)(nil), // 293: tutorial.ResSelfInvited - (*NotifyInvitedSuccess)(nil), // 294: tutorial.NotifyInvitedSuccess - (*ReqGetInviteReward)(nil), // 295: tutorial.ReqGetInviteReward - (*ResGetInviteReward)(nil), // 296: tutorial.ResGetInviteReward - (*ReqFriendTreasureData)(nil), // 297: tutorial.ReqFriendTreasureData - (*ResFriendTreasureData)(nil), // 298: tutorial.ResFriendTreasureData - (*ReqUpdateFriendStar)(nil), // 299: tutorial.ReqUpdateFriendStar - (*ResUpdateFriendStar)(nil), // 300: tutorial.ResUpdateFriendStar - (*NotifyFriendTreasureStar)(nil), // 301: tutorial.NotifyFriendTreasureStar - (*ExchangeCardItem)(nil), // 302: tutorial.ExchangeCardItem - (*ReqExchangeCardBoxData)(nil), // 303: tutorial.ReqExchangeCardBoxData - (*ResExchangeCardBoxData)(nil), // 304: tutorial.ResExchangeCardBoxData - (*NotifyCardDailyRenew)(nil), // 305: tutorial.NotifyCardDailyRenew - (*ReqDonateFriendCard)(nil), // 306: tutorial.ReqDonateFriendCard - (*ResDonateFriendCard)(nil), // 307: tutorial.ResDonateFriendCard - (*NotifyDonateFriendCard)(nil), // 308: tutorial.NotifyDonateFriendCard - (*ReqGetDonateCard)(nil), // 309: tutorial.ReqGetDonateCard - (*NotifyGetDonateCard)(nil), // 310: tutorial.NotifyGetDonateCard - (*ResGetDonateCard)(nil), // 311: tutorial.ResGetDonateCard - (*ReqRefuseExchange)(nil), // 312: tutorial.ReqRefuseExchange - (*ResRefuseExchange)(nil), // 313: tutorial.ResRefuseExchange - (*NOtifyRefuseExchange)(nil), // 314: tutorial.NOtifyRefuseExchange - (*ReqExchangeCard)(nil), // 315: tutorial.ReqExchangeCard - (*ResExchangeCard)(nil), // 316: tutorial.ResExchangeCard - (*NotifyExchangeTimeOut)(nil), // 317: tutorial.NotifyExchangeTimeOut - (*NotifyExchangeCard)(nil), // 318: tutorial.NotifyExchangeCard - (*ReqReceiptCard)(nil), // 319: tutorial.ReqReceiptCard - (*ResReceiptCard)(nil), // 320: tutorial.ResReceiptCard - (*NotifyReceiptCard)(nil), // 321: tutorial.NotifyReceiptCard - (*ReqCompleteExchangeCard)(nil), // 322: tutorial.ReqCompleteExchangeCard - (*ResCompleteExchangeCard)(nil), // 323: tutorial.ResCompleteExchangeCard - (*NotifyCompleteExchangeCard)(nil), // 324: tutorial.NotifyCompleteExchangeCard - (*ReqGetExchangeCard)(nil), // 325: tutorial.ReqGetExchangeCard - (*NotifyGetExchangeCard)(nil), // 326: tutorial.NotifyGetExchangeCard - (*ResGetExchangeCard)(nil), // 327: tutorial.ResGetExchangeCard - (*NotifyDeleteGoldCardSwap)(nil), // 328: tutorial.NotifyDeleteGoldCardSwap - (*NotifyRequestTimeOut)(nil), // 329: tutorial.NotifyRequestTimeOut - (*ReqRequestCard)(nil), // 330: tutorial.ReqRequestCard - (*ResRequestCard)(nil), // 331: tutorial.ResRequestCard - (*NotifyRequestCard)(nil), // 332: tutorial.NotifyRequestCard - (*ReqCompleteRequestCard)(nil), // 333: tutorial.ReqCompleteRequestCard - (*ResCompleteRequestCard)(nil), // 334: tutorial.ResCompleteRequestCard - (*NotifyHaveFriendCompleteReq)(nil), // 335: tutorial.NotifyHaveFriendCompleteReq - (*NotifyCompleteRequestCard)(nil), // 336: tutorial.NotifyCompleteRequestCard - (*ReqRefuseRequestCard)(nil), // 337: tutorial.ReqRefuseRequestCard - (*ResRefuseRequestCard)(nil), // 338: tutorial.ResRefuseRequestCard - (*NotifyRefuseRequestCard)(nil), // 339: tutorial.NotifyRefuseRequestCard - (*ReqGetRequestCard)(nil), // 340: tutorial.ReqGetRequestCard - (*ResGetRequestCard)(nil), // 341: tutorial.ResGetRequestCard - (*ReqBindFacebookAccount)(nil), // 342: tutorial.ReqBindFacebookAccount - (*ResBindFacebookAccount)(nil), // 343: tutorial.ResBindFacebookAccount - (*ReqOnlyBindFacebook)(nil), // 344: tutorial.ReqOnlyBindFacebook - (*ResOnlyBindFacebook)(nil), // 345: tutorial.ResOnlyBindFacebook - (*ReqUnBindFacebook)(nil), // 346: tutorial.ReqUnBindFacebook - (*ResUnBindFacebook)(nil), // 347: tutorial.ResUnBindFacebook - (*ReqSynGameData)(nil), // 348: tutorial.ReqSynGameData - (*ResSynGameData)(nil), // 349: tutorial.ResSynGameData - (*ReqFriendEventData)(nil), // 350: tutorial.ReqFriendEventData - (*FriendEventData)(nil), // 351: tutorial.FriendEventData - (*ResFriendEventData)(nil), // 352: tutorial.ResFriendEventData - (*NotifyNewFriendEvent)(nil), // 353: tutorial.NotifyNewFriendEvent - (*NotifyFriendEventComplete)(nil), // 354: tutorial.NotifyFriendEventComplete - (*ReqUpdatePetProfile)(nil), // 355: tutorial.ReqUpdatePetProfile - (*ResUpdatePetProfile)(nil), // 356: tutorial.ResUpdatePetProfile - (*ReqPlayerPetData)(nil), // 357: tutorial.ReqPlayerPetData - (*ResPlayerPetData)(nil), // 358: tutorial.ResPlayerPetData - (*PetHomeInterActST)(nil), // 359: tutorial.PetHomeInterActST - (*ReqPetHomeData)(nil), // 360: tutorial.ReqPetHomeData - (*ResPetHomeData)(nil), // 361: tutorial.ResPetHomeData - (*ReqUnlockDecorate)(nil), // 362: tutorial.ReqUnlockDecorate - (*ResUnlockDecorate)(nil), // 363: tutorial.ResUnlockDecorate - (*ReqSaveSelectDecorate)(nil), // 364: tutorial.ReqSaveSelectDecorate - (*ResSaveSelectDecorate)(nil), // 365: tutorial.ResSaveSelectDecorate - (*NotifyPetGoHome)(nil), // 366: tutorial.NotifyPetGoHome - (*NotifyPetLeave)(nil), // 367: tutorial.NotifyPetLeave - (*ReqOpenOtherPetHome)(nil), // 368: tutorial.ReqOpenOtherPetHome - (*ResOpenOtherPetHome)(nil), // 369: tutorial.ResOpenOtherPetHome - (*ReqCompleteMiniGame)(nil), // 370: tutorial.ReqCompleteMiniGame - (*ResCompleteMiniGame)(nil), // 371: tutorial.ResCompleteMiniGame - (*ReqOpenSelfPet)(nil), // 372: tutorial.ReqOpenSelfPet - (*ResOpenSelfPet)(nil), // 373: tutorial.ResOpenSelfPet - (*NotifyPetWorkEnd)(nil), // 374: tutorial.NotifyPetWorkEnd - (*ReqPetHomeInterActST)(nil), // 375: tutorial.ReqPetHomeInterActST - (*ResPetHomeInterActST)(nil), // 376: tutorial.ResPetHomeInterActST - (*ReqShiftVisitPet)(nil), // 377: tutorial.ReqShiftVisitPet - (*ResShiftVisitPet)(nil), // 378: tutorial.ResShiftVisitPet - (*ReqCallBackPet)(nil), // 379: tutorial.ReqCallBackPet - (*ResCallBackPet)(nil), // 380: tutorial.ResCallBackPet - (*IntPack)(nil), // 381: tutorial.IntPack - (*Item)(nil), // 382: tutorial.Item - (*UseItemRequest)(nil), // 383: tutorial.UseItemRequest - (*UseItemResponse)(nil), // 384: tutorial.UseItemResponse - (*Hello)(nil), // 385: tutorial.Hello - (*ReqSetEnergyMul)(nil), // 386: tutorial.ReqSetEnergyMul - (*ResSetEnergyMul)(nil), // 387: tutorial.ResSetEnergyMul - (*BaseInfo)(nil), // 388: tutorial.BaseInfo - (*ReqBuyEnergy)(nil), // 389: tutorial.ReqBuyEnergy - (*ResBuyEnergy)(nil), // 390: tutorial.ResBuyEnergy - (*ReqGetHandbookReward)(nil), // 391: tutorial.ReqGetHandbookReward - (*HandbookInfo)(nil), // 392: tutorial.HandbookInfo - (*Handbook)(nil), // 393: tutorial.Handbook - (*ResGetHandbookReward)(nil), // 394: tutorial.ResGetHandbookReward - (*ReqRewardOrder)(nil), // 395: tutorial.ReqRewardOrder - (*ResRewardOrder)(nil), // 396: tutorial.ResRewardOrder - (*Order)(nil), // 397: tutorial.Order - (*ResOrderList)(nil), // 398: tutorial.ResOrderList - (*ResDecorateInfo)(nil), // 399: tutorial.ResDecorateInfo - (*ReqDecorate)(nil), // 400: tutorial.ReqDecorate - (*ResDecorate)(nil), // 401: tutorial.ResDecorate - (*ReqGmCommand)(nil), // 402: tutorial.ReqGmCommand - (*Card)(nil), // 403: tutorial.Card - (*ResCardInfo)(nil), // 404: tutorial.ResCardInfo - (*ReqCardCollectReward)(nil), // 405: tutorial.ReqCardCollectReward - (*ResCardCollectReward)(nil), // 406: tutorial.ResCardCollectReward - (*ReqExStarReward)(nil), // 407: tutorial.ReqExStarReward - (*ResExStarReward)(nil), // 408: tutorial.ResExStarReward - (*ReqAllCollectReward)(nil), // 409: tutorial.ReqAllCollectReward - (*ResAllCollectReward)(nil), // 410: tutorial.ResAllCollectReward - (*ReqCardGive)(nil), // 411: tutorial.ReqCardGive - (*ResCardGive)(nil), // 412: tutorial.ResCardGive - (*ReqAgreeCardGive)(nil), // 413: tutorial.ReqAgreeCardGive - (*ResAgreeCardGive)(nil), // 414: tutorial.ResAgreeCardGive - (*ReqRefuseCardGive)(nil), // 415: tutorial.ReqRefuseCardGive - (*ResRefuseCardGive)(nil), // 416: tutorial.ResRefuseCardGive - (*ReqCardExchange)(nil), // 417: tutorial.ReqCardExchange - (*ResCardExchange)(nil), // 418: tutorial.ResCardExchange - (*ReqSelectCardExchange)(nil), // 419: tutorial.ReqSelectCardExchange - (*ResSelectCardExchange)(nil), // 420: tutorial.ResSelectCardExchange - (*ReqAgreeCardExchange)(nil), // 421: tutorial.ReqAgreeCardExchange - (*ResAgreeCardExchange)(nil), // 422: tutorial.ResAgreeCardExchange - (*ReqRefuseCardSelect)(nil), // 423: tutorial.ReqRefuseCardSelect - (*ResRefuseCardSelect)(nil), // 424: tutorial.ResRefuseCardSelect - (*ReqRefuseCardExchange)(nil), // 425: tutorial.ReqRefuseCardExchange - (*ResRefuseCardExchange)(nil), // 426: tutorial.ResRefuseCardExchange - (*ReqGuideReward)(nil), // 427: tutorial.ReqGuideReward - (*ResGuideReward)(nil), // 428: tutorial.ResGuideReward - (*ResGuildInfo)(nil), // 429: tutorial.ResGuildInfo - (*ResItemPop)(nil), // 430: tutorial.ResItemPop - (*ItemInfo)(nil), // 431: tutorial.ItemInfo - (*CardPack)(nil), // 432: tutorial.CardPack - (*ResDailyTask)(nil), // 433: tutorial.ResDailyTask - (*DailyWeek)(nil), // 434: tutorial.DailyWeek - (*DailyTask)(nil), // 435: tutorial.DailyTask - (*QuestProgress)(nil), // 436: tutorial.QuestProgress - (*ReqGetDailyTaskReward)(nil), // 437: tutorial.ReqGetDailyTaskReward - (*ResGetDailyTaskReward)(nil), // 438: tutorial.ResGetDailyTaskReward - (*ReqGetDailyWeekReward)(nil), // 439: tutorial.ReqGetDailyWeekReward - (*ResGetDailyWeekReward)(nil), // 440: tutorial.ResGetDailyWeekReward - (*ResFaceInfo)(nil), // 441: tutorial.ResFaceInfo - (*FaceInfo)(nil), // 442: tutorial.FaceInfo - (*ReqSetFace)(nil), // 443: tutorial.ReqSetFace - (*ResSetFace)(nil), // 444: tutorial.ResSetFace - (*ResAvatarInfo)(nil), // 445: tutorial.ResAvatarInfo - (*AvatarInfo)(nil), // 446: tutorial.AvatarInfo - (*ReqSetAvatar)(nil), // 447: tutorial.ReqSetAvatar - (*ResSetAvatar)(nil), // 448: tutorial.ResSetAvatar - (*ResSevenLogin)(nil), // 449: tutorial.ResSevenLogin - (*SevenLoginReward)(nil), // 450: tutorial.SevenLoginReward - (*ReqGetSevenLoginReward)(nil), // 451: tutorial.ReqGetSevenLoginReward - (*ResGetSevenLoginReward)(nil), // 452: tutorial.ResGetSevenLoginReward - (*ReqGetMonthLoginReward)(nil), // 453: tutorial.ReqGetMonthLoginReward - (*ResGetMonthLoginReward)(nil), // 454: tutorial.ResGetMonthLoginReward - (*ResAcitive)(nil), // 455: tutorial.ResAcitive - (*ActiveInfo)(nil), // 456: tutorial.ActiveInfo - (*ReqLimitEvent)(nil), // 457: tutorial.ReqLimitEvent - (*ResLimitEvent)(nil), // 458: tutorial.ResLimitEvent - (*ResLimitEventProgress)(nil), // 459: tutorial.ResLimitEventProgress - (*LimitEvent)(nil), // 460: tutorial.LimitEvent - (*LimitEventNotify)(nil), // 461: tutorial.LimitEventNotify - (*ReqLimitSenceReward)(nil), // 462: tutorial.ReqLimitSenceReward - (*ResLimitSenceReward)(nil), // 463: tutorial.ResLimitSenceReward - (*ResChessRainReward)(nil), // 464: tutorial.ResChessRainReward - (*ReqLimitEventReward)(nil), // 465: tutorial.ReqLimitEventReward - (*ResLimitEventReward)(nil), // 466: tutorial.ResLimitEventReward - (*ReqFastProduceReward)(nil), // 467: tutorial.ReqFastProduceReward - (*ResFastProduceReward)(nil), // 468: tutorial.ResFastProduceReward - (*ReqSearchPlayer)(nil), // 469: tutorial.ReqSearchPlayer - (*ResSearchPlayer)(nil), // 470: tutorial.ResSearchPlayer - (*ResPlayerSimple)(nil), // 471: tutorial.ResPlayerSimple - (*ResFriendLog)(nil), // 472: tutorial.ResFriendLog - (*ResFriendCard)(nil), // 473: tutorial.ResFriendCard - (*ReqKv)(nil), // 474: tutorial.ReqKv - (*ResKv)(nil), // 475: tutorial.ResKv - (*ResFriendRecommend)(nil), // 476: tutorial.ResFriendRecommend - (*ReqFriendIgnore)(nil), // 477: tutorial.ReqFriendIgnore - (*ResFriendIgnore)(nil), // 478: tutorial.ResFriendIgnore - (*ResFriendList)(nil), // 479: tutorial.ResFriendList - (*ReqFriendApply)(nil), // 480: tutorial.ReqFriendApply - (*ResFriendApply)(nil), // 481: tutorial.ResFriendApply - (*ReqFriendCardMsg)(nil), // 482: tutorial.ReqFriendCardMsg - (*ResFriendCardMsg)(nil), // 483: tutorial.ResFriendCardMsg - (*ReqFriendTimeLine)(nil), // 484: tutorial.ReqFriendTimeLine - (*ResFriendTimeLine)(nil), // 485: tutorial.ResFriendTimeLine - (*ResFriendApplyNotify)(nil), // 486: tutorial.ResFriendApplyNotify - (*ReqApplyFriend)(nil), // 487: tutorial.ReqApplyFriend - (*ResApplyFriend)(nil), // 488: tutorial.ResApplyFriend - (*ReqAgreeFriend)(nil), // 489: tutorial.ReqAgreeFriend - (*ResAgreeFriend)(nil), // 490: tutorial.ResAgreeFriend - (*ReqRefuseFriend)(nil), // 491: tutorial.ReqRefuseFriend - (*ResRefuseFriend)(nil), // 492: tutorial.ResRefuseFriend - (*ReqDelFriend)(nil), // 493: tutorial.ReqDelFriend - (*ResDelFriend)(nil), // 494: tutorial.ResDelFriend - (*ReqRank)(nil), // 495: tutorial.ReqRank - (*ResRank)(nil), // 496: tutorial.ResRank - (*ReqMailList)(nil), // 497: tutorial.ReqMailList - (*ResMailList)(nil), // 498: tutorial.ResMailList - (*MailInfo)(nil), // 499: tutorial.MailInfo - (*ReqReadMail)(nil), // 500: tutorial.ReqReadMail - (*ResReadMail)(nil), // 501: tutorial.ResReadMail - (*ReqGetMailReward)(nil), // 502: tutorial.ReqGetMailReward - (*ResGetMailReward)(nil), // 503: tutorial.ResGetMailReward - (*ReqDeleteMail)(nil), // 504: tutorial.ReqDeleteMail - (*ResDeleteMail)(nil), // 505: tutorial.ResDeleteMail - (*ResCharge)(nil), // 506: tutorial.ResCharge - (*ResSpecialShop)(nil), // 507: tutorial.ResSpecialShop - (*ResChessShop)(nil), // 508: tutorial.ResChessShop - (*ReqFreeShop)(nil), // 509: tutorial.ReqFreeShop - (*ResFreeShop)(nil), // 510: tutorial.ResFreeShop - (*ReqBuyChessShop)(nil), // 511: tutorial.ReqBuyChessShop - (*ResBuyChessShop)(nil), // 512: tutorial.ResBuyChessShop - (*ReqRefreshChessShop)(nil), // 513: tutorial.ReqRefreshChessShop - (*ResRefreshChessShop)(nil), // 514: tutorial.ResRefreshChessShop - (*ReqEndless)(nil), // 515: tutorial.ReqEndless - (*ResEndless)(nil), // 516: tutorial.ResEndless - (*ResEndlessInfo)(nil), // 517: tutorial.ResEndlessInfo - (*ReqEndlessReward)(nil), // 518: tutorial.ReqEndlessReward - (*ResEndlessReward)(nil), // 519: tutorial.ResEndlessReward - (*ResPiggyBank)(nil), // 520: tutorial.ResPiggyBank - (*ReqPiggyBankReward)(nil), // 521: tutorial.ReqPiggyBankReward - (*ResPiggyBankReward)(nil), // 522: tutorial.ResPiggyBankReward - (*ReqCreateOrderSn)(nil), // 523: tutorial.ReqCreateOrderSn - (*ResCreateOrderSn)(nil), // 524: tutorial.ResCreateOrderSn - (*ReqShippingOrder)(nil), // 525: tutorial.ReqShippingOrder - (*ResShippingOrder)(nil), // 526: tutorial.ResShippingOrder - (*ReqChampship)(nil), // 527: tutorial.ReqChampship - (*ResChampship)(nil), // 528: tutorial.ResChampship - (*ReqChampshipReward)(nil), // 529: tutorial.ReqChampshipReward - (*ResChampshipReward)(nil), // 530: tutorial.ResChampshipReward - nil, // 531: tutorial.UpdateBaseItemInfo.MUpdateItemEntry - nil, // 532: tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry - nil, // 533: tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry - nil, // 534: tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry - nil, // 535: tutorial.ResPlayerPackData.MPackDataEntry - nil, // 536: tutorial.UpdatePlayerPackData.MPackDataEntry - nil, // 537: tutorial.ResPlayerChessData.MChessDataEntry - nil, // 538: tutorial.UpdatePlayerChessData.MChessDataEntry - nil, // 539: tutorial.ReqGetChessFromBuff.MChessDataEntry - nil, // 540: tutorial.ReqChessEx.MChessDataEntry - nil, // 541: tutorial.ReqPutChessInBag.MChessDataEntry - nil, // 542: tutorial.ReqTakeChessOutBag.MChessDataEntry - nil, // 543: tutorial.ResPlayerGiftData.MGiftDataEntry - nil, // 544: tutorial.UpdatePlayerGiftData.MGiftDataEntry - nil, // 545: tutorial.ResPlayerOrderData.MOrderDataEntry - nil, // 546: tutorial.UpdatePlayerOrderData.MOrderDataEntry - nil, // 547: tutorial.ResChessColorData.MChessColorDataEntry - nil, // 548: tutorial.UpdateChessColorData.MChessColorDataEntry - nil, // 549: tutorial.ResEmitMergeMap.MEmitMergeDataEntry - nil, // 550: tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry - nil, // 551: tutorial.ResEmitCountMap.MEmitCountDataEntry - nil, // 552: tutorial.UpdateEmitCountMap.MEmitCountDataEntry - nil, // 553: tutorial.ResEmitCDStartData.MEmitCDDataEntry - nil, // 554: tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry - nil, // 555: tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry - nil, // 556: tutorial.ResDecorateData.MDecorateDataEntry - nil, // 557: tutorial.UpdateDecorateData.MDecorateDataEntry - nil, // 558: tutorial.ResShopData.MShopTimeBuyDataEntry - nil, // 559: tutorial.ResShopData.MShopSaleBuyDataEntry - nil, // 560: tutorial.ResShopData.MPackBuyDataEntry - nil, // 561: tutorial.ResShopData.MSpecialOfferBuyDataEntry - nil, // 562: tutorial.ResShopData.MUISpecialOfferBuyDataEntry - nil, // 563: tutorial.ResShopData.MFreePackBuyDataEntry - nil, // 564: tutorial.ResShopData.MDiamondFirstBuyDataEntry - nil, // 565: tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry - nil, // 566: tutorial.ResShopBuy.MShopTimeBuyDataEntry - nil, // 567: tutorial.ReqRenewItemBuyCnt.MShopDataEntry - nil, // 568: tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry - nil, // 569: tutorial.ResKeyValueData.KeyValuesEntry - nil, // 570: tutorial.UpdateKeyValueData.KeyValuesEntry - nil, // 571: tutorial.ResAdPackData.PackDataEntry - nil, // 572: tutorial.NotifyAdPackData.PackDataEntry - nil, // 573: tutorial.ResWatchAdPack.PackDataEntry - nil, // 574: tutorial.ResPetHomeData.SelectDecorateMapEntry - nil, // 575: tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry - nil, // 576: tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry - nil, // 577: tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry - nil, // 578: tutorial.ResShiftVisitPet.SelectDecorateMapEntry - nil, // 579: tutorial.UseItemRequest.AttrsEntry - nil, // 580: tutorial.UseItemResponse.AttrsEntry - nil, // 581: tutorial.ResCardInfo.AllCardEntry - nil, // 582: tutorial.ResGuildInfo.RewardEntry - nil, // 583: tutorial.ResDailyTask.WeekRewardEntry - nil, // 584: tutorial.ResDailyTask.DailyTaskEntry - nil, // 585: tutorial.ResLimitEvent.LimitEventListEntry - nil, // 586: tutorial.ResLimitEventProgress.ProgressRewardEntry - nil, // 587: tutorial.ResKv.KvEntry - nil, // 588: tutorial.ResRank.RankListEntry - nil, // 589: tutorial.ResMailList.MailListEntry - nil, // 590: tutorial.ResCharge.SpecialShopEntry - nil, // 591: tutorial.ResCharge.ChessShopEntry - nil, // 592: tutorial.ResCharge.GiftEntry - nil, // 593: tutorial.ResEndless.EndlessListEntry + (UseItemResponse_CODE)(0), // 3: tutorial.UseItemResponse.CODE + (*ClientReq)(nil), // 4: tutorial.ClientReq + (*ClientRes)(nil), // 5: tutorial.ClientRes + (*ReqRegisterAccount)(nil), // 6: tutorial.ReqRegisterAccount + (*ResRegisterAccount)(nil), // 7: tutorial.ResRegisterAccount + (*ReqLogin)(nil), // 8: tutorial.ReqLogin + (*ResLogin)(nil), // 9: tutorial.ResLogin + (*ReqPlayerBaseInfo)(nil), // 10: tutorial.ReqPlayerBaseInfo + (*ResPlayerBaseInfo)(nil), // 11: tutorial.ResPlayerBaseInfo + (*ResPlayerAsset)(nil), // 12: tutorial.ResPlayerAsset + (*UpdateBaseItemInfo)(nil), // 13: tutorial.UpdateBaseItemInfo + (*NotifyRenewBuyEnergyCnt)(nil), // 14: tutorial.NotifyRenewBuyEnergyCnt + (*ReqRemoveAd)(nil), // 15: tutorial.ReqRemoveAd + (*ResRemoveAd)(nil), // 16: tutorial.ResRemoveAd + (*NotifyAddEnergy)(nil), // 17: tutorial.NotifyAddEnergy + (*ReqServerTime)(nil), // 18: tutorial.ReqServerTime + (*ResServerTime)(nil), // 19: tutorial.ResServerTime + (*ReqPlayerEmitUnlockData)(nil), // 20: tutorial.ReqPlayerEmitUnlockData + (*ResPlayerEmitUnlockData)(nil), // 21: tutorial.ResPlayerEmitUnlockData + (*NotifyDailyRenewEmitUnlock)(nil), // 22: tutorial.NotifyDailyRenewEmitUnlock + (*UpdatePlayerEmitUnlockData)(nil), // 23: tutorial.UpdatePlayerEmitUnlockData + (*ReqPlayerPackData)(nil), // 24: tutorial.ReqPlayerPackData + (*ResPlayerPackData)(nil), // 25: tutorial.ResPlayerPackData + (*UpdatePlayerPackData)(nil), // 26: tutorial.UpdatePlayerPackData + (*ReqPlayerChessData)(nil), // 27: tutorial.ReqPlayerChessData + (*ResPlayerChessData)(nil), // 28: tutorial.ResPlayerChessData + (*ResPlayerChessInfo)(nil), // 29: tutorial.ResPlayerChessInfo + (*ChessHandle)(nil), // 30: tutorial.ChessHandle + (*UpdatePlayerChessData)(nil), // 31: tutorial.UpdatePlayerChessData + (*ResUpdatePlayerChessData)(nil), // 32: tutorial.ResUpdatePlayerChessData + (*ReqGetChessFromBuff)(nil), // 33: tutorial.ReqGetChessFromBuff + (*ResGetChessFromBuff)(nil), // 34: tutorial.ResGetChessFromBuff + (*ReqChessEx)(nil), // 35: tutorial.ReqChessEx + (*ResChessEx)(nil), // 36: tutorial.ResChessEx + (*ChessBag)(nil), // 37: tutorial.ChessBag + (*ChessBagGrid)(nil), // 38: tutorial.ChessBagGrid + (*ReqPutChessInBag)(nil), // 39: tutorial.ReqPutChessInBag + (*ResPutChessInBag)(nil), // 40: tutorial.ResPutChessInBag + (*ReqTakeChessOutBag)(nil), // 41: tutorial.ReqTakeChessOutBag + (*ResTakeChessOutBag)(nil), // 42: tutorial.ResTakeChessOutBag + (*ReqBuyChessBagGrid)(nil), // 43: tutorial.ReqBuyChessBagGrid + (*ResBuyChessBagGrid)(nil), // 44: tutorial.ResBuyChessBagGrid + (*ReqPlayerGiftData)(nil), // 45: tutorial.ReqPlayerGiftData + (*ResPlayerGiftData)(nil), // 46: tutorial.ResPlayerGiftData + (*UpdatePlayerGiftData)(nil), // 47: tutorial.UpdatePlayerGiftData + (*ReqAddGift)(nil), // 48: tutorial.ReqAddGift + (*ResAddGift)(nil), // 49: tutorial.ResAddGift + (*ReqUseGift)(nil), // 50: tutorial.ReqUseGift + (*ReqPlayerOrderData)(nil), // 51: tutorial.ReqPlayerOrderData + (*ResPlayerOrderData)(nil), // 52: tutorial.ResPlayerOrderData + (*UpdatePlayerOrderData)(nil), // 53: tutorial.UpdatePlayerOrderData + (*NotifyDailyOrderRenew)(nil), // 54: tutorial.NotifyDailyOrderRenew + (*ReqUnlockingChestID)(nil), // 55: tutorial.ReqUnlockingChestID + (*ResUnlockingChestID)(nil), // 56: tutorial.ResUnlockingChestID + (*NotifyInitUnlockingChestID)(nil), // 57: tutorial.NotifyInitUnlockingChestID + (*NotifyUnlockingChestData)(nil), // 58: tutorial.NotifyUnlockingChestData + (*ReqChestUnlockCD)(nil), // 59: tutorial.ReqChestUnlockCD + (*ResChestUnlockCD)(nil), // 60: tutorial.ResChestUnlockCD + (*ReqChessColorData)(nil), // 61: tutorial.ReqChessColorData + (*ResChessColorData)(nil), // 62: tutorial.ResChessColorData + (*UpdateChessColorData)(nil), // 63: tutorial.UpdateChessColorData + (*ReqEmitMergeMap)(nil), // 64: tutorial.ReqEmitMergeMap + (*ResEmitMergeMap)(nil), // 65: tutorial.ResEmitMergeMap + (*UpdateEmitMergeMap)(nil), // 66: tutorial.UpdateEmitMergeMap + (*ReqEmitCountMap)(nil), // 67: tutorial.ReqEmitCountMap + (*ResEmitCountMap)(nil), // 68: tutorial.ResEmitCountMap + (*UpdateEmitCountMap)(nil), // 69: tutorial.UpdateEmitCountMap + (*ReqEmitCDStartData)(nil), // 70: tutorial.ReqEmitCDStartData + (*ResEmitCDStartData)(nil), // 71: tutorial.ResEmitCDStartData + (*NotifyInitEmitCDTimeData)(nil), // 72: tutorial.NotifyInitEmitCDTimeData + (*NotifyEmitCDTimeEndData)(nil), // 73: tutorial.NotifyEmitCDTimeEndData + (*ReqEmitSubCD)(nil), // 74: tutorial.ReqEmitSubCD + (*ReqDecorateData)(nil), // 75: tutorial.ReqDecorateData + (*ResDecorateData)(nil), // 76: tutorial.ResDecorateData + (*UpdateDecorateData)(nil), // 77: tutorial.UpdateDecorateData + (*ReqShopData)(nil), // 78: tutorial.ReqShopData + (*ResShopData)(nil), // 79: tutorial.ResShopData + (*NotifyShopStatusChange)(nil), // 80: tutorial.NotifyShopStatusChange + (*ReqShopBuy)(nil), // 81: tutorial.ReqShopBuy + (*ResShopBuy)(nil), // 82: tutorial.ResShopBuy + (*ReqRenewItemBuyCnt)(nil), // 83: tutorial.ReqRenewItemBuyCnt + (*ResRenewItemBuyCnt)(nil), // 84: tutorial.ResRenewItemBuyCnt + (*ReqPlayerAdPack)(nil), // 85: tutorial.ReqPlayerAdPack + (*ResPlayerAdPack)(nil), // 86: tutorial.ResPlayerAdPack + (*ReqWatchAd)(nil), // 87: tutorial.ReqWatchAd + (*ResWatchAd)(nil), // 88: tutorial.ResWatchAd + (*BriefEmailStruct)(nil), // 89: tutorial.BriefEmailStruct + (*ReqBriefEmailData)(nil), // 90: tutorial.ReqBriefEmailData + (*ResBriefEmailData)(nil), // 91: tutorial.ResBriefEmailData + (*NotifyNewBriefEmailData)(nil), // 92: tutorial.NotifyNewBriefEmailData + (*ReqDetailEmailData)(nil), // 93: tutorial.ReqDetailEmailData + (*ResDetailEmailData)(nil), // 94: tutorial.ResDetailEmailData + (*ReqGetEmailReward)(nil), // 95: tutorial.ReqGetEmailReward + (*ResGetEmailReward)(nil), // 96: tutorial.ResGetEmailReward + (*ReqDeleteEmail)(nil), // 97: tutorial.ReqDeleteEmail + (*ResDeleteEmail)(nil), // 98: tutorial.ResDeleteEmail + (*LimitedTimeActiveStruct)(nil), // 99: tutorial.LimitedTimeActiveStruct + (*LimitedTimeEndStruct)(nil), // 100: tutorial.LimitedTimeEndStruct + (*NotifyLimitedTimeActiveData)(nil), // 101: tutorial.NotifyLimitedTimeActiveData + (*NotifyLimitedTimeActiveEnd)(nil), // 102: tutorial.NotifyLimitedTimeActiveEnd + (*ReqLimitPassportDetail)(nil), // 103: tutorial.ReqLimitPassportDetail + (*ResLimitPassportDetail)(nil), // 104: tutorial.ResLimitPassportDetail + (*ReqActiveAddStar)(nil), // 105: tutorial.ReqActiveAddStar + (*ResActiveAddStar)(nil), // 106: tutorial.ResActiveAddStar + (*ReqPayPassport)(nil), // 107: tutorial.ReqPayPassport + (*ResPayPassport)(nil), // 108: tutorial.ResPayPassport + (*ReqGetLimitPassportReward)(nil), // 109: tutorial.ReqGetLimitPassportReward + (*ResGetLimitPassportReward)(nil), // 110: tutorial.ResGetLimitPassportReward + (*ReqOpenNewPig)(nil), // 111: tutorial.ReqOpenNewPig + (*ResOpenNewPig)(nil), // 112: tutorial.ResOpenNewPig + (*ReqPigDetailInfo)(nil), // 113: tutorial.ReqPigDetailInfo + (*ResPigDetailInfo)(nil), // 114: tutorial.ResPigDetailInfo + (*UpdateFinishOrderDiamond)(nil), // 115: tutorial.UpdateFinishOrderDiamond + (*ReqGetPigReward)(nil), // 116: tutorial.ReqGetPigReward + (*ResGetPigReward)(nil), // 117: tutorial.ResGetPigReward + (*ReqDropPigReward)(nil), // 118: tutorial.ReqDropPigReward + (*ResDropPigReward)(nil), // 119: tutorial.ResDropPigReward + (*ReqPromotionDetail)(nil), // 120: tutorial.ReqPromotionDetail + (*ResPromotionDetail)(nil), // 121: tutorial.ResPromotionDetail + (*ReqBuyLimitPromotionReward)(nil), // 122: tutorial.ReqBuyLimitPromotionReward + (*ResBuyLimitPromotionReward)(nil), // 123: tutorial.ResBuyLimitPromotionReward + (*ReqInfinitePackDetail)(nil), // 124: tutorial.ReqInfinitePackDetail + (*ResInfinitePackDetail)(nil), // 125: tutorial.ResInfinitePackDetail + (*ReqBuyInfinitePack)(nil), // 126: tutorial.ReqBuyInfinitePack + (*ResBuyInfinitePack)(nil), // 127: tutorial.ResBuyInfinitePack + (*NotifyRefreshInfinitePack)(nil), // 128: tutorial.NotifyRefreshInfinitePack + (*Req7DayLoginDetail)(nil), // 129: tutorial.Req7DayLoginDetail + (*Res7DayLoginDetail)(nil), // 130: tutorial.Res7DayLoginDetail + (*ReqGet7DayLoginPack)(nil), // 131: tutorial.ReqGet7DayLoginPack + (*ResGet7DayLoginPack)(nil), // 132: tutorial.ResGet7DayLoginPack + (*NotifyDailyRenew7Day)(nil), // 133: tutorial.NotifyDailyRenew7Day + (*ReqOfflineReconnect)(nil), // 134: tutorial.ReqOfflineReconnect + (*ResOfflineReconnect)(nil), // 135: tutorial.ResOfflineReconnect + (*ReqServerVersion)(nil), // 136: tutorial.ReqServerVersion + (*ResServerVersion)(nil), // 137: tutorial.ResServerVersion + (*ReqLevelUpPackInfo)(nil), // 138: tutorial.ReqLevelUpPackInfo + (*ResLevelUpPackInfo)(nil), // 139: tutorial.ResLevelUpPackInfo + (*ReqBuyLevelUpPack)(nil), // 140: tutorial.ReqBuyLevelUpPack + (*ResBuyLevelUpPack)(nil), // 141: tutorial.ResBuyLevelUpPack + (*ReqGrowthFundInfo)(nil), // 142: tutorial.ReqGrowthFundInfo + (*ResGrowthFundInfo)(nil), // 143: tutorial.ResGrowthFundInfo + (*ReqBuyGrowthFund)(nil), // 144: tutorial.ReqBuyGrowthFund + (*ResBuyGrowthFund)(nil), // 145: tutorial.ResBuyGrowthFund + (*ReqGetGrowthFundWard)(nil), // 146: tutorial.ReqGetGrowthFundWard + (*ResGetGrowthFundWard)(nil), // 147: tutorial.ResGetGrowthFundWard + (*ReqSupremeGiftInfo)(nil), // 148: tutorial.ReqSupremeGiftInfo + (*ResSupremeGiftInfo)(nil), // 149: tutorial.ResSupremeGiftInfo + (*ReqBuySupremeGift)(nil), // 150: tutorial.ReqBuySupremeGift + (*ResBuySupremeGift)(nil), // 151: tutorial.ResBuySupremeGift + (*NotifySupremeGiftTimeOver)(nil), // 152: tutorial.NotifySupremeGiftTimeOver + (*ReqIllustratedInfo)(nil), // 153: tutorial.ReqIllustratedInfo + (*SingleIllustratedItem)(nil), // 154: tutorial.SingleIllustratedItem + (*CategoryIllustratedData)(nil), // 155: tutorial.CategoryIllustratedData + (*ResIllustratedInfo)(nil), // 156: tutorial.ResIllustratedInfo + (*UpdateIllustrateItem)(nil), // 157: tutorial.UpdateIllustrateItem + (*ReqGetIllustrateItemReward)(nil), // 158: tutorial.ReqGetIllustrateItemReward + (*ResGetIllustrateItemReward)(nil), // 159: tutorial.ResGetIllustrateItemReward + (*ReqCardCollectDetail)(nil), // 160: tutorial.ReqCardCollectDetail + (*ResCardCollectDetail)(nil), // 161: tutorial.ResCardCollectDetail + (*ReqGetCardAlbumReward)(nil), // 162: tutorial.ReqGetCardAlbumReward + (*ResGetCardAlbumReward)(nil), // 163: tutorial.ResGetCardAlbumReward + (*ReqGetAllCardReward)(nil), // 164: tutorial.ReqGetAllCardReward + (*ResGetAllCardReward)(nil), // 165: tutorial.ResGetAllCardReward + (*ReqAddCard)(nil), // 166: tutorial.ReqAddCard + (*ResAddCard)(nil), // 167: tutorial.ResAddCard + (*ReqUnpackCard)(nil), // 168: tutorial.ReqUnpackCard + (*ResUnpackCard)(nil), // 169: tutorial.ResUnpackCard + (*ReqAddMasterCard)(nil), // 170: tutorial.ReqAddMasterCard + (*ResAddMasterCard)(nil), // 171: tutorial.ResAddMasterCard + (*ReqUseMasterCard)(nil), // 172: tutorial.ReqUseMasterCard + (*ResUseMasterCard)(nil), // 173: tutorial.ResUseMasterCard + (*ReqUpdateStickerCount)(nil), // 174: tutorial.ReqUpdateStickerCount + (*ResUpdateStickerCount)(nil), // 175: tutorial.ResUpdateStickerCount + (*ReqBuyStickerItem)(nil), // 176: tutorial.ReqBuyStickerItem + (*ResBuyStickerItem)(nil), // 177: tutorial.ResBuyStickerItem + (*Notify7DayLoginData)(nil), // 178: tutorial.Notify7DayLoginData + (*Req7DaySignal)(nil), // 179: tutorial.Req7DaySignal + (*Res7DaySignal)(nil), // 180: tutorial.Res7DaySignal + (*Notify7DayCallbackData)(nil), // 181: tutorial.Notify7DayCallbackData + (*Notify7DayCallbackEnd)(nil), // 182: tutorial.Notify7DayCallbackEnd + (*Req7DayCallbackSignal)(nil), // 183: tutorial.Req7DayCallbackSignal + (*Res7DayCallbackSignal)(nil), // 184: tutorial.Res7DayCallbackSignal + (*ReqKeyValueData)(nil), // 185: tutorial.ReqKeyValueData + (*ResKeyValueData)(nil), // 186: tutorial.ResKeyValueData + (*UpdateKeyValueData)(nil), // 187: tutorial.UpdateKeyValueData + (*ReqDailyTaskData)(nil), // 188: tutorial.ReqDailyTaskData + (*ResDailyTaskData)(nil), // 189: tutorial.ResDailyTaskData + (*NotifyRenewDailyTask)(nil), // 190: tutorial.NotifyRenewDailyTask + (*UpdateDailyTaskData)(nil), // 191: tutorial.UpdateDailyTaskData + (*NotifyRenewWeekyActive)(nil), // 192: tutorial.NotifyRenewWeekyActive + (*RenewDailyTaskData)(nil), // 193: tutorial.RenewDailyTaskData + (*RenewWeekyActiveData)(nil), // 194: tutorial.RenewWeekyActiveData + (*ReqMileStoneData)(nil), // 195: tutorial.ReqMileStoneData + (*ResMileStoneData)(nil), // 196: tutorial.ResMileStoneData + (*NotifyRenewMileStone)(nil), // 197: tutorial.NotifyRenewMileStone + (*UpdateMileStoneData)(nil), // 198: tutorial.UpdateMileStoneData + (*RenewMileStoneData)(nil), // 199: tutorial.RenewMileStoneData + (*ReqPlayerChampshipData)(nil), // 200: tutorial.ReqPlayerChampshipData + (*ResPlayerChampshipData)(nil), // 201: tutorial.ResPlayerChampshipData + (*ReqChampshipData)(nil), // 202: tutorial.ReqChampshipData + (*ChampshipsPlayerInfo)(nil), // 203: tutorial.ChampshipsPlayerInfo + (*ResChampshipData)(nil), // 204: tutorial.ResChampshipData + (*NotifyNewChampshipRank)(nil), // 205: tutorial.NotifyNewChampshipRank + (*NotifyUpdateChampshipRank)(nil), // 206: tutorial.NotifyUpdateChampshipRank + (*NotifyChampshipOpen)(nil), // 207: tutorial.NotifyChampshipOpen + (*NotifyChampshipClose)(nil), // 208: tutorial.NotifyChampshipClose + (*NotifyChampshipTimesOpen)(nil), // 209: tutorial.NotifyChampshipTimesOpen + (*NotifyChampshipTimesClose)(nil), // 210: tutorial.NotifyChampshipTimesClose + (*NotifyChampshipSettleOpen)(nil), // 211: tutorial.NotifyChampshipSettleOpen + (*NotifyChampshipSettleClose)(nil), // 212: tutorial.NotifyChampshipSettleClose + (*ReqChampshipAddScore)(nil), // 213: tutorial.ReqChampshipAddScore + (*ResChampshipAddScore)(nil), // 214: tutorial.ResChampshipAddScore + (*ReqChampshipAddTime)(nil), // 215: tutorial.ReqChampshipAddTime + (*ResChampshipAddTime)(nil), // 216: tutorial.ResChampshipAddTime + (*PlayerPayItem)(nil), // 217: tutorial.PlayerPayItem + (*ReqPlayerPayData)(nil), // 218: tutorial.ReqPlayerPayData + (*ResPlayerPayData)(nil), // 219: tutorial.ResPlayerPayData + (*ReqAddPay)(nil), // 220: tutorial.ReqAddPay + (*ResAddPay)(nil), // 221: tutorial.ResAddPay + (*ReqPlayerSingleData)(nil), // 222: tutorial.ReqPlayerSingleData + (*ResPlayerSingleData)(nil), // 223: tutorial.ResPlayerSingleData + (*ReqOpenNewbiePack)(nil), // 224: tutorial.ReqOpenNewbiePack + (*ResOpenNewbiePack)(nil), // 225: tutorial.ResOpenNewbiePack + (*ReqBuyNewbiePack)(nil), // 226: tutorial.ReqBuyNewbiePack + (*ResBuyNewbiePack)(nil), // 227: tutorial.ResBuyNewbiePack + (*NotifyPlayerSingleData)(nil), // 228: tutorial.NotifyPlayerSingleData + (*ReqAddNoAdCnt)(nil), // 229: tutorial.ReqAddNoAdCnt + (*ResAddNoAdCnt)(nil), // 230: tutorial.ResAddNoAdCnt + (*ReqAddWatchAdCnt)(nil), // 231: tutorial.ReqAddWatchAdCnt + (*ResAddWatchAdCnt)(nil), // 232: tutorial.ResAddWatchAdCnt + (*ReqAdPackData)(nil), // 233: tutorial.ReqAdPackData + (*ResAdPackData)(nil), // 234: tutorial.ResAdPackData + (*NotifyAdPackData)(nil), // 235: tutorial.NotifyAdPackData + (*ReqWatchAdPack)(nil), // 236: tutorial.ReqWatchAdPack + (*ResWatchAdPack)(nil), // 237: tutorial.ResWatchAdPack + (*ForceKickOut)(nil), // 238: tutorial.ForceKickOut + (*ReqLimitData)(nil), // 239: tutorial.ReqLimitData + (*ResLimitData)(nil), // 240: tutorial.ResLimitData + (*NotifyLimitData)(nil), // 241: tutorial.NotifyLimitData + (*ReqAddLimitTime)(nil), // 242: tutorial.ReqAddLimitTime + (*ResAddLimitTime)(nil), // 243: tutorial.ResAddLimitTime + (*ReqGenSuperOrder)(nil), // 244: tutorial.ReqGenSuperOrder + (*ResGenSuperOrder)(nil), // 245: tutorial.ResGenSuperOrder + (*ReqEndSuperOrder)(nil), // 246: tutorial.ReqEndSuperOrder + (*ResEndSuperOrder)(nil), // 247: tutorial.ResEndSuperOrder + (*NotifyLimitCardSwapData)(nil), // 248: tutorial.NotifyLimitCardSwapData + (*ReqCompleteDoubleHit)(nil), // 249: tutorial.ReqCompleteDoubleHit + (*ResCompleteDoubleHit)(nil), // 250: tutorial.ResCompleteDoubleHit + (*ReqTagThief)(nil), // 251: tutorial.ReqTagThief + (*ResTagThief)(nil), // 252: tutorial.ResTagThief + (*NotifyRenewTagThief)(nil), // 253: tutorial.NotifyRenewTagThief + (*ReqPlayerProfileData)(nil), // 254: tutorial.ReqPlayerProfileData + (*ResPlayerProfileData)(nil), // 255: tutorial.ResPlayerProfileData + (*ReqPlayerBriefProfileData)(nil), // 256: tutorial.ReqPlayerBriefProfileData + (*ResPlayerBriefProfileData)(nil), // 257: tutorial.ResPlayerBriefProfileData + (*ReqUpdatePlayerProfile)(nil), // 258: tutorial.ReqUpdatePlayerProfile + (*ResUpdatePlayerProfile)(nil), // 259: tutorial.ResUpdatePlayerProfile + (*ReqUpdateFBPicURL)(nil), // 260: tutorial.ReqUpdateFBPicURL + (*ResUpdateFBPicURL)(nil), // 261: tutorial.ResUpdateFBPicURL + (*FriendInfo)(nil), // 262: tutorial.FriendInfo + (*ReqFriendData)(nil), // 263: tutorial.ReqFriendData + (*ResFriendData)(nil), // 264: tutorial.ResFriendData + (*AddFriendData)(nil), // 265: tutorial.AddFriendData + (*ReqWillPlayerDetail)(nil), // 266: tutorial.ReqWillPlayerDetail + (*ResWillPlayerDetail)(nil), // 267: tutorial.ResWillPlayerDetail + (*ReqAddFriendData)(nil), // 268: tutorial.ReqAddFriendData + (*ResAddFriendData)(nil), // 269: tutorial.ResAddFriendData + (*NotifyAddFriendReq)(nil), // 270: tutorial.NotifyAddFriendReq + (*ReqAllAddFriendInfo)(nil), // 271: tutorial.ReqAllAddFriendInfo + (*ResAllAddFriendInfo)(nil), // 272: tutorial.ResAllAddFriendInfo + (*ReqAgreeFriendReq)(nil), // 273: tutorial.ReqAgreeFriendReq + (*ResAgreeFriendReq)(nil), // 274: tutorial.ResAgreeFriendReq + (*NotifyAgreeAddFriend)(nil), // 275: tutorial.NotifyAgreeAddFriend + (*ReqRefuseFriendReq)(nil), // 276: tutorial.ReqRefuseFriendReq + (*ResRefuseFriendReq)(nil), // 277: tutorial.ResRefuseFriendReq + (*NotifyDeleteFriend)(nil), // 278: tutorial.NotifyDeleteFriend + (*ReqDeleteFriend)(nil), // 279: tutorial.ReqDeleteFriend + (*ResDeleteFriend)(nil), // 280: tutorial.ResDeleteFriend + (*ReqAutoFBAddFriend)(nil), // 281: tutorial.ReqAutoFBAddFriend + (*ResAutoFBAddFriend)(nil), // 282: tutorial.ResAutoFBAddFriend + (*ReqAutoAddInviteFriend)(nil), // 283: tutorial.ReqAutoAddInviteFriend + (*ResAutoAddInviteFriend)(nil), // 284: tutorial.ResAutoAddInviteFriend + (*NotifySuccessInviteAddFriend)(nil), // 285: tutorial.NotifySuccessInviteAddFriend + (*NotifySuccessFBAddFriend)(nil), // 286: tutorial.NotifySuccessFBAddFriend + (*ReqRecommendFriendList)(nil), // 287: tutorial.ReqRecommendFriendList + (*ResRecommendFriendList)(nil), // 288: tutorial.ResRecommendFriendList + (*ReqInviteFriendData)(nil), // 289: tutorial.ReqInviteFriendData + (*ResInviteFriendData)(nil), // 290: tutorial.ResInviteFriendData + (*ReqSelfInvited)(nil), // 291: tutorial.ReqSelfInvited + (*ResSelfInvited)(nil), // 292: tutorial.ResSelfInvited + (*NotifyInvitedSuccess)(nil), // 293: tutorial.NotifyInvitedSuccess + (*ReqGetInviteReward)(nil), // 294: tutorial.ReqGetInviteReward + (*ResGetInviteReward)(nil), // 295: tutorial.ResGetInviteReward + (*ReqFriendTreasureData)(nil), // 296: tutorial.ReqFriendTreasureData + (*ResFriendTreasureData)(nil), // 297: tutorial.ResFriendTreasureData + (*ReqUpdateFriendStar)(nil), // 298: tutorial.ReqUpdateFriendStar + (*ResUpdateFriendStar)(nil), // 299: tutorial.ResUpdateFriendStar + (*NotifyFriendTreasureStar)(nil), // 300: tutorial.NotifyFriendTreasureStar + (*ExchangeCardItem)(nil), // 301: tutorial.ExchangeCardItem + (*ReqExchangeCardBoxData)(nil), // 302: tutorial.ReqExchangeCardBoxData + (*ResExchangeCardBoxData)(nil), // 303: tutorial.ResExchangeCardBoxData + (*NotifyCardDailyRenew)(nil), // 304: tutorial.NotifyCardDailyRenew + (*ReqDonateFriendCard)(nil), // 305: tutorial.ReqDonateFriendCard + (*ResDonateFriendCard)(nil), // 306: tutorial.ResDonateFriendCard + (*NotifyDonateFriendCard)(nil), // 307: tutorial.NotifyDonateFriendCard + (*ReqGetDonateCard)(nil), // 308: tutorial.ReqGetDonateCard + (*NotifyGetDonateCard)(nil), // 309: tutorial.NotifyGetDonateCard + (*ResGetDonateCard)(nil), // 310: tutorial.ResGetDonateCard + (*ReqRefuseExchange)(nil), // 311: tutorial.ReqRefuseExchange + (*ResRefuseExchange)(nil), // 312: tutorial.ResRefuseExchange + (*NOtifyRefuseExchange)(nil), // 313: tutorial.NOtifyRefuseExchange + (*ReqExchangeCard)(nil), // 314: tutorial.ReqExchangeCard + (*ResExchangeCard)(nil), // 315: tutorial.ResExchangeCard + (*NotifyExchangeTimeOut)(nil), // 316: tutorial.NotifyExchangeTimeOut + (*NotifyExchangeCard)(nil), // 317: tutorial.NotifyExchangeCard + (*ReqReceiptCard)(nil), // 318: tutorial.ReqReceiptCard + (*ResReceiptCard)(nil), // 319: tutorial.ResReceiptCard + (*NotifyReceiptCard)(nil), // 320: tutorial.NotifyReceiptCard + (*ReqCompleteExchangeCard)(nil), // 321: tutorial.ReqCompleteExchangeCard + (*ResCompleteExchangeCard)(nil), // 322: tutorial.ResCompleteExchangeCard + (*NotifyCompleteExchangeCard)(nil), // 323: tutorial.NotifyCompleteExchangeCard + (*ReqGetExchangeCard)(nil), // 324: tutorial.ReqGetExchangeCard + (*NotifyGetExchangeCard)(nil), // 325: tutorial.NotifyGetExchangeCard + (*ResGetExchangeCard)(nil), // 326: tutorial.ResGetExchangeCard + (*NotifyDeleteGoldCardSwap)(nil), // 327: tutorial.NotifyDeleteGoldCardSwap + (*NotifyRequestTimeOut)(nil), // 328: tutorial.NotifyRequestTimeOut + (*ReqRequestCard)(nil), // 329: tutorial.ReqRequestCard + (*ResRequestCard)(nil), // 330: tutorial.ResRequestCard + (*NotifyRequestCard)(nil), // 331: tutorial.NotifyRequestCard + (*ReqCompleteRequestCard)(nil), // 332: tutorial.ReqCompleteRequestCard + (*ResCompleteRequestCard)(nil), // 333: tutorial.ResCompleteRequestCard + (*NotifyHaveFriendCompleteReq)(nil), // 334: tutorial.NotifyHaveFriendCompleteReq + (*NotifyCompleteRequestCard)(nil), // 335: tutorial.NotifyCompleteRequestCard + (*ReqRefuseRequestCard)(nil), // 336: tutorial.ReqRefuseRequestCard + (*ResRefuseRequestCard)(nil), // 337: tutorial.ResRefuseRequestCard + (*NotifyRefuseRequestCard)(nil), // 338: tutorial.NotifyRefuseRequestCard + (*ReqGetRequestCard)(nil), // 339: tutorial.ReqGetRequestCard + (*ResGetRequestCard)(nil), // 340: tutorial.ResGetRequestCard + (*ReqBindFacebookAccount)(nil), // 341: tutorial.ReqBindFacebookAccount + (*ResBindFacebookAccount)(nil), // 342: tutorial.ResBindFacebookAccount + (*ReqOnlyBindFacebook)(nil), // 343: tutorial.ReqOnlyBindFacebook + (*ResOnlyBindFacebook)(nil), // 344: tutorial.ResOnlyBindFacebook + (*ReqUnBindFacebook)(nil), // 345: tutorial.ReqUnBindFacebook + (*ResUnBindFacebook)(nil), // 346: tutorial.ResUnBindFacebook + (*ReqSynGameData)(nil), // 347: tutorial.ReqSynGameData + (*ResSynGameData)(nil), // 348: tutorial.ResSynGameData + (*ReqFriendEventData)(nil), // 349: tutorial.ReqFriendEventData + (*FriendEventData)(nil), // 350: tutorial.FriendEventData + (*ResFriendEventData)(nil), // 351: tutorial.ResFriendEventData + (*NotifyNewFriendEvent)(nil), // 352: tutorial.NotifyNewFriendEvent + (*NotifyFriendEventComplete)(nil), // 353: tutorial.NotifyFriendEventComplete + (*ReqUpdatePetProfile)(nil), // 354: tutorial.ReqUpdatePetProfile + (*ResUpdatePetProfile)(nil), // 355: tutorial.ResUpdatePetProfile + (*ReqPlayerPetData)(nil), // 356: tutorial.ReqPlayerPetData + (*ResPlayerPetData)(nil), // 357: tutorial.ResPlayerPetData + (*PetHomeInterActST)(nil), // 358: tutorial.PetHomeInterActST + (*ReqPetHomeData)(nil), // 359: tutorial.ReqPetHomeData + (*ResPetHomeData)(nil), // 360: tutorial.ResPetHomeData + (*ReqUnlockDecorate)(nil), // 361: tutorial.ReqUnlockDecorate + (*ResUnlockDecorate)(nil), // 362: tutorial.ResUnlockDecorate + (*ReqSaveSelectDecorate)(nil), // 363: tutorial.ReqSaveSelectDecorate + (*ResSaveSelectDecorate)(nil), // 364: tutorial.ResSaveSelectDecorate + (*NotifyPetGoHome)(nil), // 365: tutorial.NotifyPetGoHome + (*NotifyPetLeave)(nil), // 366: tutorial.NotifyPetLeave + (*ReqOpenOtherPetHome)(nil), // 367: tutorial.ReqOpenOtherPetHome + (*ResOpenOtherPetHome)(nil), // 368: tutorial.ResOpenOtherPetHome + (*ReqCompleteMiniGame)(nil), // 369: tutorial.ReqCompleteMiniGame + (*ResCompleteMiniGame)(nil), // 370: tutorial.ResCompleteMiniGame + (*ReqOpenSelfPet)(nil), // 371: tutorial.ReqOpenSelfPet + (*ResOpenSelfPet)(nil), // 372: tutorial.ResOpenSelfPet + (*NotifyPetWorkEnd)(nil), // 373: tutorial.NotifyPetWorkEnd + (*ReqPetHomeInterActST)(nil), // 374: tutorial.ReqPetHomeInterActST + (*ResPetHomeInterActST)(nil), // 375: tutorial.ResPetHomeInterActST + (*ReqShiftVisitPet)(nil), // 376: tutorial.ReqShiftVisitPet + (*ResShiftVisitPet)(nil), // 377: tutorial.ResShiftVisitPet + (*ReqCallBackPet)(nil), // 378: tutorial.ReqCallBackPet + (*ResCallBackPet)(nil), // 379: tutorial.ResCallBackPet + (*IntPack)(nil), // 380: tutorial.IntPack + (*Item)(nil), // 381: tutorial.Item + (*UseItemRequest)(nil), // 382: tutorial.UseItemRequest + (*UseItemResponse)(nil), // 383: tutorial.UseItemResponse + (*Hello)(nil), // 384: tutorial.Hello + (*ReqSetEnergyMul)(nil), // 385: tutorial.ReqSetEnergyMul + (*ResSetEnergyMul)(nil), // 386: tutorial.ResSetEnergyMul + (*BaseInfo)(nil), // 387: tutorial.BaseInfo + (*ReqUserInfo)(nil), // 388: tutorial.ReqUserInfo + (*UserInfo)(nil), // 389: tutorial.UserInfo + (*ReqSetName)(nil), // 390: tutorial.ReqSetName + (*ResSetName)(nil), // 391: tutorial.ResSetName + (*ReqBuyEnergy)(nil), // 392: tutorial.ReqBuyEnergy + (*ResBuyEnergy)(nil), // 393: tutorial.ResBuyEnergy + (*ReqGetHandbookReward)(nil), // 394: tutorial.ReqGetHandbookReward + (*HandbookInfo)(nil), // 395: tutorial.HandbookInfo + (*Handbook)(nil), // 396: tutorial.Handbook + (*ResGetHandbookReward)(nil), // 397: tutorial.ResGetHandbookReward + (*ReqRewardOrder)(nil), // 398: tutorial.ReqRewardOrder + (*ResRewardOrder)(nil), // 399: tutorial.ResRewardOrder + (*Order)(nil), // 400: tutorial.Order + (*ResOrderList)(nil), // 401: tutorial.ResOrderList + (*ResDecorateInfo)(nil), // 402: tutorial.ResDecorateInfo + (*ReqDecorate)(nil), // 403: tutorial.ReqDecorate + (*ResDecorate)(nil), // 404: tutorial.ResDecorate + (*ReqGmCommand)(nil), // 405: tutorial.ReqGmCommand + (*Card)(nil), // 406: tutorial.Card + (*ResCardInfo)(nil), // 407: tutorial.ResCardInfo + (*ReqCardCollectReward)(nil), // 408: tutorial.ReqCardCollectReward + (*ResCardCollectReward)(nil), // 409: tutorial.ResCardCollectReward + (*ReqExStarReward)(nil), // 410: tutorial.ReqExStarReward + (*ResExStarReward)(nil), // 411: tutorial.ResExStarReward + (*ReqAllCollectReward)(nil), // 412: tutorial.ReqAllCollectReward + (*ResAllCollectReward)(nil), // 413: tutorial.ResAllCollectReward + (*ReqCardGive)(nil), // 414: tutorial.ReqCardGive + (*ResCardGive)(nil), // 415: tutorial.ResCardGive + (*ReqAgreeCardGive)(nil), // 416: tutorial.ReqAgreeCardGive + (*ResAgreeCardGive)(nil), // 417: tutorial.ResAgreeCardGive + (*ReqRefuseCardGive)(nil), // 418: tutorial.ReqRefuseCardGive + (*ResRefuseCardGive)(nil), // 419: tutorial.ResRefuseCardGive + (*ReqCardSend)(nil), // 420: tutorial.ReqCardSend + (*ResCardSend)(nil), // 421: tutorial.ResCardSend + (*ReqCardExchange)(nil), // 422: tutorial.ReqCardExchange + (*ResCardExchange)(nil), // 423: tutorial.ResCardExchange + (*ReqSelectCardExchange)(nil), // 424: tutorial.ReqSelectCardExchange + (*ResSelectCardExchange)(nil), // 425: tutorial.ResSelectCardExchange + (*ReqAgreeCardExchange)(nil), // 426: tutorial.ReqAgreeCardExchange + (*ResAgreeCardExchange)(nil), // 427: tutorial.ResAgreeCardExchange + (*ReqRefuseCardSelect)(nil), // 428: tutorial.ReqRefuseCardSelect + (*ResRefuseCardSelect)(nil), // 429: tutorial.ResRefuseCardSelect + (*ReqRefuseCardExchange)(nil), // 430: tutorial.ReqRefuseCardExchange + (*ResRefuseCardExchange)(nil), // 431: tutorial.ResRefuseCardExchange + (*ReqGetFriendCard)(nil), // 432: tutorial.ReqGetFriendCard + (*ResGetFriendCard)(nil), // 433: tutorial.ResGetFriendCard + (*ReqGuideReward)(nil), // 434: tutorial.ReqGuideReward + (*ResGuideReward)(nil), // 435: tutorial.ResGuideReward + (*ResGuildInfo)(nil), // 436: tutorial.ResGuildInfo + (*ResItemPop)(nil), // 437: tutorial.ResItemPop + (*ItemInfo)(nil), // 438: tutorial.ItemInfo + (*CardPack)(nil), // 439: tutorial.CardPack + (*ResDailyTask)(nil), // 440: tutorial.ResDailyTask + (*DailyWeek)(nil), // 441: tutorial.DailyWeek + (*DailyTask)(nil), // 442: tutorial.DailyTask + (*QuestProgress)(nil), // 443: tutorial.QuestProgress + (*ReqGetDailyTaskReward)(nil), // 444: tutorial.ReqGetDailyTaskReward + (*ResGetDailyTaskReward)(nil), // 445: tutorial.ResGetDailyTaskReward + (*ReqGetDailyWeekReward)(nil), // 446: tutorial.ReqGetDailyWeekReward + (*ResGetDailyWeekReward)(nil), // 447: tutorial.ResGetDailyWeekReward + (*ResFaceInfo)(nil), // 448: tutorial.ResFaceInfo + (*FaceInfo)(nil), // 449: tutorial.FaceInfo + (*ReqSetFace)(nil), // 450: tutorial.ReqSetFace + (*ResSetFace)(nil), // 451: tutorial.ResSetFace + (*ResAvatarInfo)(nil), // 452: tutorial.ResAvatarInfo + (*AvatarInfo)(nil), // 453: tutorial.AvatarInfo + (*ReqSetAvatar)(nil), // 454: tutorial.ReqSetAvatar + (*ResSetAvatar)(nil), // 455: tutorial.ResSetAvatar + (*ResSevenLogin)(nil), // 456: tutorial.ResSevenLogin + (*SevenLoginReward)(nil), // 457: tutorial.SevenLoginReward + (*ReqGetSevenLoginReward)(nil), // 458: tutorial.ReqGetSevenLoginReward + (*ResGetSevenLoginReward)(nil), // 459: tutorial.ResGetSevenLoginReward + (*ReqGetMonthLoginReward)(nil), // 460: tutorial.ReqGetMonthLoginReward + (*ResGetMonthLoginReward)(nil), // 461: tutorial.ResGetMonthLoginReward + (*ResAcitive)(nil), // 462: tutorial.ResAcitive + (*ActiveInfo)(nil), // 463: tutorial.ActiveInfo + (*ReqLimitEvent)(nil), // 464: tutorial.ReqLimitEvent + (*ResLimitEvent)(nil), // 465: tutorial.ResLimitEvent + (*ResLimitEventProgress)(nil), // 466: tutorial.ResLimitEventProgress + (*LimitEvent)(nil), // 467: tutorial.LimitEvent + (*LimitEventNotify)(nil), // 468: tutorial.LimitEventNotify + (*ReqLimitSenceReward)(nil), // 469: tutorial.ReqLimitSenceReward + (*ResLimitSenceReward)(nil), // 470: tutorial.ResLimitSenceReward + (*ResChessRainReward)(nil), // 471: tutorial.ResChessRainReward + (*ReqLimitEventReward)(nil), // 472: tutorial.ReqLimitEventReward + (*ResLimitEventReward)(nil), // 473: tutorial.ResLimitEventReward + (*ReqFastProduceReward)(nil), // 474: tutorial.ReqFastProduceReward + (*ResFastProduceReward)(nil), // 475: tutorial.ResFastProduceReward + (*ReqSearchPlayer)(nil), // 476: tutorial.ReqSearchPlayer + (*ResSearchPlayer)(nil), // 477: tutorial.ResSearchPlayer + (*ResPlayerSimple)(nil), // 478: tutorial.ResPlayerSimple + (*ResFriendLog)(nil), // 479: tutorial.ResFriendLog + (*NotifyFriendCard)(nil), // 480: tutorial.NotifyFriendCard + (*ResFriendCard)(nil), // 481: tutorial.ResFriendCard + (*ReqKv)(nil), // 482: tutorial.ReqKv + (*ResKv)(nil), // 483: tutorial.ResKv + (*ResFriendRecommend)(nil), // 484: tutorial.ResFriendRecommend + (*ReqFriendIgnore)(nil), // 485: tutorial.ReqFriendIgnore + (*ResFriendIgnore)(nil), // 486: tutorial.ResFriendIgnore + (*ResFriendList)(nil), // 487: tutorial.ResFriendList + (*ReqFriendApply)(nil), // 488: tutorial.ReqFriendApply + (*ResFriendApply)(nil), // 489: tutorial.ResFriendApply + (*ReqFriendCardMsg)(nil), // 490: tutorial.ReqFriendCardMsg + (*ResFriendCardMsg)(nil), // 491: tutorial.ResFriendCardMsg + (*ReqFriendTimeLine)(nil), // 492: tutorial.ReqFriendTimeLine + (*ResFriendTimeLine)(nil), // 493: tutorial.ResFriendTimeLine + (*ResFriendApplyNotify)(nil), // 494: tutorial.ResFriendApplyNotify + (*ReqApplyFriend)(nil), // 495: tutorial.ReqApplyFriend + (*ResApplyFriend)(nil), // 496: tutorial.ResApplyFriend + (*ReqAgreeFriend)(nil), // 497: tutorial.ReqAgreeFriend + (*ResAgreeFriend)(nil), // 498: tutorial.ResAgreeFriend + (*ReqRefuseFriend)(nil), // 499: tutorial.ReqRefuseFriend + (*ResRefuseFriend)(nil), // 500: tutorial.ResRefuseFriend + (*ReqDelFriend)(nil), // 501: tutorial.ReqDelFriend + (*ResDelFriend)(nil), // 502: tutorial.ResDelFriend + (*ReqRank)(nil), // 503: tutorial.ReqRank + (*ResRank)(nil), // 504: tutorial.ResRank + (*ReqMailList)(nil), // 505: tutorial.ReqMailList + (*ResMailList)(nil), // 506: tutorial.ResMailList + (*MailInfo)(nil), // 507: tutorial.MailInfo + (*ReqReadMail)(nil), // 508: tutorial.ReqReadMail + (*ResReadMail)(nil), // 509: tutorial.ResReadMail + (*ReqGetMailReward)(nil), // 510: tutorial.ReqGetMailReward + (*ResGetMailReward)(nil), // 511: tutorial.ResGetMailReward + (*ReqDeleteMail)(nil), // 512: tutorial.ReqDeleteMail + (*ResDeleteMail)(nil), // 513: tutorial.ResDeleteMail + (*ResCharge)(nil), // 514: tutorial.ResCharge + (*ResSpecialShop)(nil), // 515: tutorial.ResSpecialShop + (*ResChessShop)(nil), // 516: tutorial.ResChessShop + (*ReqFreeShop)(nil), // 517: tutorial.ReqFreeShop + (*ResFreeShop)(nil), // 518: tutorial.ResFreeShop + (*ReqBuyChessShop)(nil), // 519: tutorial.ReqBuyChessShop + (*ResBuyChessShop)(nil), // 520: tutorial.ResBuyChessShop + (*ReqRefreshChessShop)(nil), // 521: tutorial.ReqRefreshChessShop + (*ResRefreshChessShop)(nil), // 522: tutorial.ResRefreshChessShop + (*ReqEndless)(nil), // 523: tutorial.ReqEndless + (*ResEndless)(nil), // 524: tutorial.ResEndless + (*ResEndlessInfo)(nil), // 525: tutorial.ResEndlessInfo + (*ReqEndlessReward)(nil), // 526: tutorial.ReqEndlessReward + (*ResEndlessReward)(nil), // 527: tutorial.ResEndlessReward + (*ResPiggyBank)(nil), // 528: tutorial.ResPiggyBank + (*ReqPiggyBankReward)(nil), // 529: tutorial.ReqPiggyBankReward + (*ResPiggyBankReward)(nil), // 530: tutorial.ResPiggyBankReward + (*ReqCreateOrderSn)(nil), // 531: tutorial.ReqCreateOrderSn + (*ResCreateOrderSn)(nil), // 532: tutorial.ResCreateOrderSn + (*ReqShippingOrder)(nil), // 533: tutorial.ReqShippingOrder + (*ResShippingOrder)(nil), // 534: tutorial.ResShippingOrder + (*ReqChampship)(nil), // 535: tutorial.ReqChampship + (*ResChampship)(nil), // 536: tutorial.ResChampship + (*ReqChampshipReward)(nil), // 537: tutorial.ReqChampshipReward + (*ResChampshipReward)(nil), // 538: tutorial.ResChampshipReward + (*ReqChampshipRankReward)(nil), // 539: tutorial.ReqChampshipRankReward + (*ResChampshipRankReward)(nil), // 540: tutorial.ResChampshipRankReward + (*ResNotifyCard)(nil), // 541: tutorial.ResNotifyCard + nil, // 542: tutorial.UpdateBaseItemInfo.MUpdateItemEntry + nil, // 543: tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry + nil, // 544: tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry + nil, // 545: tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry + nil, // 546: tutorial.ResPlayerPackData.MPackDataEntry + nil, // 547: tutorial.UpdatePlayerPackData.MPackDataEntry + nil, // 548: tutorial.ResPlayerChessData.MChessDataEntry + nil, // 549: tutorial.UpdatePlayerChessData.MChessDataEntry + nil, // 550: tutorial.ReqGetChessFromBuff.MChessDataEntry + nil, // 551: tutorial.ReqChessEx.MChessDataEntry + nil, // 552: tutorial.ReqPutChessInBag.MChessDataEntry + nil, // 553: tutorial.ReqTakeChessOutBag.MChessDataEntry + nil, // 554: tutorial.ResPlayerGiftData.MGiftDataEntry + nil, // 555: tutorial.UpdatePlayerGiftData.MGiftDataEntry + nil, // 556: tutorial.ResPlayerOrderData.MOrderDataEntry + nil, // 557: tutorial.UpdatePlayerOrderData.MOrderDataEntry + nil, // 558: tutorial.ResChessColorData.MChessColorDataEntry + nil, // 559: tutorial.UpdateChessColorData.MChessColorDataEntry + nil, // 560: tutorial.ResEmitMergeMap.MEmitMergeDataEntry + nil, // 561: tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry + nil, // 562: tutorial.ResEmitCountMap.MEmitCountDataEntry + nil, // 563: tutorial.UpdateEmitCountMap.MEmitCountDataEntry + nil, // 564: tutorial.ResEmitCDStartData.MEmitCDDataEntry + nil, // 565: tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry + nil, // 566: tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry + nil, // 567: tutorial.ResDecorateData.MDecorateDataEntry + nil, // 568: tutorial.UpdateDecorateData.MDecorateDataEntry + nil, // 569: tutorial.ResShopData.MShopTimeBuyDataEntry + nil, // 570: tutorial.ResShopData.MShopSaleBuyDataEntry + nil, // 571: tutorial.ResShopData.MPackBuyDataEntry + nil, // 572: tutorial.ResShopData.MSpecialOfferBuyDataEntry + nil, // 573: tutorial.ResShopData.MUISpecialOfferBuyDataEntry + nil, // 574: tutorial.ResShopData.MFreePackBuyDataEntry + nil, // 575: tutorial.ResShopData.MDiamondFirstBuyDataEntry + nil, // 576: tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry + nil, // 577: tutorial.ResShopBuy.MShopTimeBuyDataEntry + nil, // 578: tutorial.ReqRenewItemBuyCnt.MShopDataEntry + nil, // 579: tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry + nil, // 580: tutorial.ResKeyValueData.KeyValuesEntry + nil, // 581: tutorial.UpdateKeyValueData.KeyValuesEntry + nil, // 582: tutorial.ResAdPackData.PackDataEntry + nil, // 583: tutorial.NotifyAdPackData.PackDataEntry + nil, // 584: tutorial.ResWatchAdPack.PackDataEntry + nil, // 585: tutorial.ResPetHomeData.SelectDecorateMapEntry + nil, // 586: tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry + nil, // 587: tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry + nil, // 588: tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry + nil, // 589: tutorial.ResShiftVisitPet.SelectDecorateMapEntry + nil, // 590: tutorial.UseItemRequest.AttrsEntry + nil, // 591: tutorial.UseItemResponse.AttrsEntry + nil, // 592: tutorial.ResCardInfo.AllCardEntry + nil, // 593: tutorial.ResGuildInfo.RewardEntry + nil, // 594: tutorial.ResDailyTask.WeekRewardEntry + nil, // 595: tutorial.ResDailyTask.DailyTaskEntry + nil, // 596: tutorial.ResLimitEvent.LimitEventListEntry + nil, // 597: tutorial.ResLimitEventProgress.ProgressRewardEntry + nil, // 598: tutorial.ResKv.KvEntry + nil, // 599: tutorial.ResRank.RankListEntry + nil, // 600: tutorial.ResMailList.MailListEntry + nil, // 601: tutorial.ResCharge.SpecialShopEntry + nil, // 602: tutorial.ResCharge.ChessShopEntry + nil, // 603: tutorial.ResCharge.GiftEntry + nil, // 604: tutorial.ResEndless.EndlessListEntry + nil, // 605: tutorial.ResNotifyCard.CardEntry } var file_Gameapi_proto_depIdxs = []int32{ - 531, // 0: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry - 532, // 1: tutorial.ResPlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry - 533, // 2: tutorial.NotifyDailyRenewEmitUnlock.mEmitUnlockData:type_name -> tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry - 534, // 3: tutorial.UpdatePlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry - 535, // 4: tutorial.ResPlayerPackData.mPackData:type_name -> tutorial.ResPlayerPackData.MPackDataEntry - 536, // 5: tutorial.UpdatePlayerPackData.mPackData:type_name -> tutorial.UpdatePlayerPackData.MPackDataEntry - 537, // 6: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry - 38, // 7: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag + 542, // 0: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry + 543, // 1: tutorial.ResPlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry + 544, // 2: tutorial.NotifyDailyRenewEmitUnlock.mEmitUnlockData:type_name -> tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry + 545, // 3: tutorial.UpdatePlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry + 546, // 4: tutorial.ResPlayerPackData.mPackData:type_name -> tutorial.ResPlayerPackData.MPackDataEntry + 547, // 5: tutorial.UpdatePlayerPackData.mPackData:type_name -> tutorial.UpdatePlayerPackData.MPackDataEntry + 548, // 6: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry + 37, // 7: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag 0, // 8: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE - 538, // 9: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry - 31, // 10: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle + 549, // 9: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry + 30, // 10: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle 1, // 11: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE - 539, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry + 550, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry 1, // 13: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE - 540, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry + 551, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry 1, // 15: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE - 39, // 16: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid - 541, // 17: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry + 38, // 16: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid + 552, // 17: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry 1, // 18: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE - 542, // 19: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry + 553, // 19: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry 1, // 20: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE 1, // 21: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE - 543, // 22: tutorial.ResPlayerGiftData.mGiftData:type_name -> tutorial.ResPlayerGiftData.MGiftDataEntry - 544, // 23: tutorial.UpdatePlayerGiftData.mGiftData:type_name -> tutorial.UpdatePlayerGiftData.MGiftDataEntry - 545, // 24: tutorial.ResPlayerOrderData.mOrderData:type_name -> tutorial.ResPlayerOrderData.MOrderDataEntry - 546, // 25: tutorial.UpdatePlayerOrderData.mOrderData:type_name -> tutorial.UpdatePlayerOrderData.MOrderDataEntry - 547, // 26: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry - 548, // 27: tutorial.UpdateChessColorData.mChessColorData:type_name -> tutorial.UpdateChessColorData.MChessColorDataEntry - 549, // 28: tutorial.ResEmitMergeMap.mEmitMergeData:type_name -> tutorial.ResEmitMergeMap.MEmitMergeDataEntry - 550, // 29: tutorial.UpdateEmitMergeMap.mEmitMergeData:type_name -> tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry - 551, // 30: tutorial.ResEmitCountMap.mEmitCountData:type_name -> tutorial.ResEmitCountMap.MEmitCountDataEntry - 552, // 31: tutorial.UpdateEmitCountMap.mEmitCountData:type_name -> tutorial.UpdateEmitCountMap.MEmitCountDataEntry - 553, // 32: tutorial.ResEmitCDStartData.mEmitCDData:type_name -> tutorial.ResEmitCDStartData.MEmitCDDataEntry - 554, // 33: tutorial.NotifyInitEmitCDTimeData.mEmitCDData:type_name -> tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry - 555, // 34: tutorial.NotifyEmitCDTimeEndData.mEmitCDData:type_name -> tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry - 556, // 35: tutorial.ResDecorateData.mDecorateData:type_name -> tutorial.ResDecorateData.MDecorateDataEntry - 557, // 36: tutorial.UpdateDecorateData.mDecorateData:type_name -> tutorial.UpdateDecorateData.MDecorateDataEntry - 558, // 37: tutorial.ResShopData.mShopTimeBuyData:type_name -> tutorial.ResShopData.MShopTimeBuyDataEntry - 559, // 38: tutorial.ResShopData.mShopSaleBuyData:type_name -> tutorial.ResShopData.MShopSaleBuyDataEntry - 560, // 39: tutorial.ResShopData.mPackBuyData:type_name -> tutorial.ResShopData.MPackBuyDataEntry - 561, // 40: tutorial.ResShopData.mSpecialOfferBuyData:type_name -> tutorial.ResShopData.MSpecialOfferBuyDataEntry - 562, // 41: tutorial.ResShopData.mUISpecialOfferBuyData:type_name -> tutorial.ResShopData.MUISpecialOfferBuyDataEntry - 563, // 42: tutorial.ResShopData.mFreePackBuyData:type_name -> tutorial.ResShopData.MFreePackBuyDataEntry - 564, // 43: tutorial.ResShopData.mDiamondFirstBuyData:type_name -> tutorial.ResShopData.MDiamondFirstBuyDataEntry - 565, // 44: tutorial.NotifyShopStatusChange.mShopTimeBuyData:type_name -> tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry - 566, // 45: tutorial.ResShopBuy.mShopTimeBuyData:type_name -> tutorial.ResShopBuy.MShopTimeBuyDataEntry - 567, // 46: tutorial.ReqRenewItemBuyCnt.mShopData:type_name -> tutorial.ReqRenewItemBuyCnt.MShopDataEntry - 568, // 47: tutorial.ResRenewItemBuyCnt.mShopTimeBuyData:type_name -> tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry - 90, // 48: tutorial.ResBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct - 90, // 49: tutorial.NotifyNewBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct - 100, // 50: tutorial.NotifyLimitedTimeActiveData.mActiveList:type_name -> tutorial.LimitedTimeActiveStruct - 101, // 51: tutorial.NotifyLimitedTimeActiveEnd.mActiveList:type_name -> tutorial.LimitedTimeEndStruct - 155, // 52: tutorial.CategoryIllustratedData.Items:type_name -> tutorial.SingleIllustratedItem - 156, // 53: tutorial.ResIllustratedInfo.Datas:type_name -> tutorial.CategoryIllustratedData - 569, // 54: tutorial.ResKeyValueData.KeyValues:type_name -> tutorial.ResKeyValueData.KeyValuesEntry - 570, // 55: tutorial.UpdateKeyValueData.KeyValues:type_name -> tutorial.UpdateKeyValueData.KeyValuesEntry - 204, // 56: tutorial.ResChampshipData.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo - 204, // 57: tutorial.NotifyNewChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo - 204, // 58: tutorial.NotifyUpdateChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo - 204, // 59: tutorial.ResChampshipAddScore.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo - 204, // 60: tutorial.ResChampshipAddTime.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo - 218, // 61: tutorial.ResPlayerPayData.PlayerPayData:type_name -> tutorial.PlayerPayItem - 571, // 62: tutorial.ResAdPackData.PackData:type_name -> tutorial.ResAdPackData.PackDataEntry - 572, // 63: tutorial.NotifyAdPackData.PackData:type_name -> tutorial.NotifyAdPackData.PackDataEntry - 573, // 64: tutorial.ResWatchAdPack.PackData:type_name -> tutorial.ResWatchAdPack.PackDataEntry - 263, // 65: tutorial.ResFriendData.FriendInfos:type_name -> tutorial.FriendInfo - 263, // 66: tutorial.AddFriendData.Finfo:type_name -> tutorial.FriendInfo - 263, // 67: tutorial.ResWillPlayerDetail.PlayerInfos:type_name -> tutorial.FriendInfo - 266, // 68: tutorial.NotifyAddFriendReq.ReqInfo:type_name -> tutorial.AddFriendData - 266, // 69: tutorial.ResAllAddFriendInfo.FriendInfos:type_name -> tutorial.AddFriendData - 263, // 70: tutorial.ResAgreeFriendReq.data:type_name -> tutorial.FriendInfo - 263, // 71: tutorial.NotifyAgreeAddFriend.data:type_name -> tutorial.FriendInfo - 263, // 72: tutorial.NotifySuccessInviteAddFriend.data:type_name -> tutorial.FriendInfo - 263, // 73: tutorial.NotifySuccessFBAddFriend.data:type_name -> tutorial.FriendInfo - 263, // 74: tutorial.ResRecommendFriendList.PlayerInfos:type_name -> tutorial.FriendInfo - 302, // 75: tutorial.ResExchangeCardBoxData.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 76: tutorial.ResDonateFriendCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 77: tutorial.NotifyDonateFriendCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 78: tutorial.ReqGetDonateCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 79: tutorial.NotifyGetDonateCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 80: tutorial.ResGetDonateCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 81: tutorial.ReqRefuseExchange.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 82: tutorial.ResRefuseExchange.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 83: tutorial.NOtifyRefuseExchange.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 84: tutorial.ResExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 85: tutorial.NotifyExchangeTimeOut.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 86: tutorial.NotifyExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 87: tutorial.ReqReceiptCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 88: tutorial.ResReceiptCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 89: tutorial.NotifyReceiptCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 90: tutorial.ReqCompleteExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 91: tutorial.ResCompleteExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 92: tutorial.NotifyCompleteExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 93: tutorial.ReqGetExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 94: tutorial.NotifyGetExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 95: tutorial.ResGetExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 96: tutorial.NotifyDeleteGoldCardSwap.mExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 97: tutorial.NotifyRequestTimeOut.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem - 302, // 98: tutorial.ResRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 99: tutorial.NotifyRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 100: tutorial.ReqCompleteRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 101: tutorial.ResCompleteRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 102: tutorial.NotifyCompleteRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 103: tutorial.ReqRefuseRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 104: tutorial.ResRefuseRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 105: tutorial.NotifyRefuseRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 106: tutorial.ReqGetRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 302, // 107: tutorial.ResGetRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem - 263, // 108: tutorial.FriendEventData.MFriendInfo:type_name -> tutorial.FriendInfo - 351, // 109: tutorial.ResFriendEventData.MFriendEventData:type_name -> tutorial.FriendEventData - 351, // 110: tutorial.NotifyNewFriendEvent.NewEvent:type_name -> tutorial.FriendEventData - 258, // 111: tutorial.PetHomeInterActST.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData - 574, // 112: tutorial.ResPetHomeData.SelectDecorateMap:type_name -> tutorial.ResPetHomeData.SelectDecorateMapEntry - 575, // 113: tutorial.ReqSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry - 576, // 114: tutorial.ResSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry - 258, // 115: tutorial.ResOpenOtherPetHome.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData - 577, // 116: tutorial.ResOpenOtherPetHome.SelectDecorateMap:type_name -> tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry - 359, // 117: tutorial.ResPetHomeInterActST.mPetHomeInterActSTs:type_name -> tutorial.PetHomeInterActST - 258, // 118: tutorial.ResShiftVisitPet.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData - 578, // 119: tutorial.ResShiftVisitPet.SelectDecorateMap:type_name -> tutorial.ResShiftVisitPet.SelectDecorateMapEntry - 382, // 120: tutorial.UseItemRequest.items:type_name -> tutorial.Item - 381, // 121: tutorial.UseItemRequest.price:type_name -> tutorial.IntPack - 579, // 122: tutorial.UseItemRequest.attrs:type_name -> tutorial.UseItemRequest.AttrsEntry - 4, // 123: tutorial.UseItemResponse.code:type_name -> tutorial.UseItemResponse.CODE - 382, // 124: tutorial.UseItemResponse.items:type_name -> tutorial.Item - 381, // 125: tutorial.UseItemResponse.price:type_name -> tutorial.IntPack - 580, // 126: tutorial.UseItemResponse.attrs:type_name -> tutorial.UseItemResponse.AttrsEntry + 554, // 22: tutorial.ResPlayerGiftData.mGiftData:type_name -> tutorial.ResPlayerGiftData.MGiftDataEntry + 555, // 23: tutorial.UpdatePlayerGiftData.mGiftData:type_name -> tutorial.UpdatePlayerGiftData.MGiftDataEntry + 556, // 24: tutorial.ResPlayerOrderData.mOrderData:type_name -> tutorial.ResPlayerOrderData.MOrderDataEntry + 557, // 25: tutorial.UpdatePlayerOrderData.mOrderData:type_name -> tutorial.UpdatePlayerOrderData.MOrderDataEntry + 558, // 26: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry + 559, // 27: tutorial.UpdateChessColorData.mChessColorData:type_name -> tutorial.UpdateChessColorData.MChessColorDataEntry + 560, // 28: tutorial.ResEmitMergeMap.mEmitMergeData:type_name -> tutorial.ResEmitMergeMap.MEmitMergeDataEntry + 561, // 29: tutorial.UpdateEmitMergeMap.mEmitMergeData:type_name -> tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry + 562, // 30: tutorial.ResEmitCountMap.mEmitCountData:type_name -> tutorial.ResEmitCountMap.MEmitCountDataEntry + 563, // 31: tutorial.UpdateEmitCountMap.mEmitCountData:type_name -> tutorial.UpdateEmitCountMap.MEmitCountDataEntry + 564, // 32: tutorial.ResEmitCDStartData.mEmitCDData:type_name -> tutorial.ResEmitCDStartData.MEmitCDDataEntry + 565, // 33: tutorial.NotifyInitEmitCDTimeData.mEmitCDData:type_name -> tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry + 566, // 34: tutorial.NotifyEmitCDTimeEndData.mEmitCDData:type_name -> tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry + 567, // 35: tutorial.ResDecorateData.mDecorateData:type_name -> tutorial.ResDecorateData.MDecorateDataEntry + 568, // 36: tutorial.UpdateDecorateData.mDecorateData:type_name -> tutorial.UpdateDecorateData.MDecorateDataEntry + 569, // 37: tutorial.ResShopData.mShopTimeBuyData:type_name -> tutorial.ResShopData.MShopTimeBuyDataEntry + 570, // 38: tutorial.ResShopData.mShopSaleBuyData:type_name -> tutorial.ResShopData.MShopSaleBuyDataEntry + 571, // 39: tutorial.ResShopData.mPackBuyData:type_name -> tutorial.ResShopData.MPackBuyDataEntry + 572, // 40: tutorial.ResShopData.mSpecialOfferBuyData:type_name -> tutorial.ResShopData.MSpecialOfferBuyDataEntry + 573, // 41: tutorial.ResShopData.mUISpecialOfferBuyData:type_name -> tutorial.ResShopData.MUISpecialOfferBuyDataEntry + 574, // 42: tutorial.ResShopData.mFreePackBuyData:type_name -> tutorial.ResShopData.MFreePackBuyDataEntry + 575, // 43: tutorial.ResShopData.mDiamondFirstBuyData:type_name -> tutorial.ResShopData.MDiamondFirstBuyDataEntry + 576, // 44: tutorial.NotifyShopStatusChange.mShopTimeBuyData:type_name -> tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry + 577, // 45: tutorial.ResShopBuy.mShopTimeBuyData:type_name -> tutorial.ResShopBuy.MShopTimeBuyDataEntry + 578, // 46: tutorial.ReqRenewItemBuyCnt.mShopData:type_name -> tutorial.ReqRenewItemBuyCnt.MShopDataEntry + 579, // 47: tutorial.ResRenewItemBuyCnt.mShopTimeBuyData:type_name -> tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry + 89, // 48: tutorial.ResBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct + 89, // 49: tutorial.NotifyNewBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct + 99, // 50: tutorial.NotifyLimitedTimeActiveData.mActiveList:type_name -> tutorial.LimitedTimeActiveStruct + 100, // 51: tutorial.NotifyLimitedTimeActiveEnd.mActiveList:type_name -> tutorial.LimitedTimeEndStruct + 154, // 52: tutorial.CategoryIllustratedData.Items:type_name -> tutorial.SingleIllustratedItem + 155, // 53: tutorial.ResIllustratedInfo.Datas:type_name -> tutorial.CategoryIllustratedData + 580, // 54: tutorial.ResKeyValueData.KeyValues:type_name -> tutorial.ResKeyValueData.KeyValuesEntry + 581, // 55: tutorial.UpdateKeyValueData.KeyValues:type_name -> tutorial.UpdateKeyValueData.KeyValuesEntry + 203, // 56: tutorial.ResChampshipData.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo + 203, // 57: tutorial.NotifyNewChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo + 203, // 58: tutorial.NotifyUpdateChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo + 203, // 59: tutorial.ResChampshipAddScore.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo + 203, // 60: tutorial.ResChampshipAddTime.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo + 217, // 61: tutorial.ResPlayerPayData.PlayerPayData:type_name -> tutorial.PlayerPayItem + 582, // 62: tutorial.ResAdPackData.PackData:type_name -> tutorial.ResAdPackData.PackDataEntry + 583, // 63: tutorial.NotifyAdPackData.PackData:type_name -> tutorial.NotifyAdPackData.PackDataEntry + 584, // 64: tutorial.ResWatchAdPack.PackData:type_name -> tutorial.ResWatchAdPack.PackDataEntry + 262, // 65: tutorial.ResFriendData.FriendInfos:type_name -> tutorial.FriendInfo + 262, // 66: tutorial.AddFriendData.Finfo:type_name -> tutorial.FriendInfo + 262, // 67: tutorial.ResWillPlayerDetail.PlayerInfos:type_name -> tutorial.FriendInfo + 265, // 68: tutorial.NotifyAddFriendReq.ReqInfo:type_name -> tutorial.AddFriendData + 265, // 69: tutorial.ResAllAddFriendInfo.FriendInfos:type_name -> tutorial.AddFriendData + 262, // 70: tutorial.ResAgreeFriendReq.data:type_name -> tutorial.FriendInfo + 262, // 71: tutorial.NotifyAgreeAddFriend.data:type_name -> tutorial.FriendInfo + 262, // 72: tutorial.NotifySuccessInviteAddFriend.data:type_name -> tutorial.FriendInfo + 262, // 73: tutorial.NotifySuccessFBAddFriend.data:type_name -> tutorial.FriendInfo + 262, // 74: tutorial.ResRecommendFriendList.PlayerInfos:type_name -> tutorial.FriendInfo + 301, // 75: tutorial.ResExchangeCardBoxData.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 76: tutorial.ResDonateFriendCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 77: tutorial.NotifyDonateFriendCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 78: tutorial.ReqGetDonateCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 79: tutorial.NotifyGetDonateCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 80: tutorial.ResGetDonateCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 81: tutorial.ReqRefuseExchange.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 82: tutorial.ResRefuseExchange.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 83: tutorial.NOtifyRefuseExchange.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 84: tutorial.ResExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 85: tutorial.NotifyExchangeTimeOut.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 86: tutorial.NotifyExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 87: tutorial.ReqReceiptCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 88: tutorial.ResReceiptCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 89: tutorial.NotifyReceiptCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 90: tutorial.ReqCompleteExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 91: tutorial.ResCompleteExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 92: tutorial.NotifyCompleteExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 93: tutorial.ReqGetExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 94: tutorial.NotifyGetExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 95: tutorial.ResGetExchangeCard.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 96: tutorial.NotifyDeleteGoldCardSwap.mExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 97: tutorial.NotifyRequestTimeOut.mExchangeCardItem:type_name -> tutorial.ExchangeCardItem + 301, // 98: tutorial.ResRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 99: tutorial.NotifyRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 100: tutorial.ReqCompleteRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 101: tutorial.ResCompleteRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 102: tutorial.NotifyCompleteRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 103: tutorial.ReqRefuseRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 104: tutorial.ResRefuseRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 105: tutorial.NotifyRefuseRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 106: tutorial.ReqGetRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 301, // 107: tutorial.ResGetRequestCard.ExchangeCardItems:type_name -> tutorial.ExchangeCardItem + 262, // 108: tutorial.FriendEventData.MFriendInfo:type_name -> tutorial.FriendInfo + 350, // 109: tutorial.ResFriendEventData.MFriendEventData:type_name -> tutorial.FriendEventData + 350, // 110: tutorial.NotifyNewFriendEvent.NewEvent:type_name -> tutorial.FriendEventData + 257, // 111: tutorial.PetHomeInterActST.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData + 585, // 112: tutorial.ResPetHomeData.SelectDecorateMap:type_name -> tutorial.ResPetHomeData.SelectDecorateMapEntry + 586, // 113: tutorial.ReqSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry + 587, // 114: tutorial.ResSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry + 257, // 115: tutorial.ResOpenOtherPetHome.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData + 588, // 116: tutorial.ResOpenOtherPetHome.SelectDecorateMap:type_name -> tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry + 358, // 117: tutorial.ResPetHomeInterActST.mPetHomeInterActSTs:type_name -> tutorial.PetHomeInterActST + 257, // 118: tutorial.ResShiftVisitPet.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData + 589, // 119: tutorial.ResShiftVisitPet.SelectDecorateMap:type_name -> tutorial.ResShiftVisitPet.SelectDecorateMapEntry + 381, // 120: tutorial.UseItemRequest.items:type_name -> tutorial.Item + 380, // 121: tutorial.UseItemRequest.price:type_name -> tutorial.IntPack + 590, // 122: tutorial.UseItemRequest.attrs:type_name -> tutorial.UseItemRequest.AttrsEntry + 3, // 123: tutorial.UseItemResponse.code:type_name -> tutorial.UseItemResponse.CODE + 381, // 124: tutorial.UseItemResponse.items:type_name -> tutorial.Item + 380, // 125: tutorial.UseItemResponse.price:type_name -> tutorial.IntPack + 591, // 126: tutorial.UseItemResponse.attrs:type_name -> tutorial.UseItemResponse.AttrsEntry 1, // 127: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE - 1, // 128: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE - 392, // 129: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo - 1, // 130: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE - 1, // 131: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE - 397, // 132: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order - 1, // 133: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE - 403, // 134: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card - 581, // 135: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry - 1, // 136: tutorial.ResCardCollectReward.Code:type_name -> tutorial.RES_CODE - 1, // 137: tutorial.ResExStarReward.Code:type_name -> tutorial.RES_CODE - 1, // 138: tutorial.ResAllCollectReward.Code:type_name -> tutorial.RES_CODE - 1, // 139: tutorial.ResCardGive.Code:type_name -> tutorial.RES_CODE - 1, // 140: tutorial.ResAgreeCardGive.Code:type_name -> tutorial.RES_CODE - 1, // 141: tutorial.ResRefuseCardGive.Code:type_name -> tutorial.RES_CODE - 1, // 142: tutorial.ResCardExchange.Code:type_name -> tutorial.RES_CODE - 1, // 143: tutorial.ResSelectCardExchange.Code:type_name -> tutorial.RES_CODE - 1, // 144: tutorial.ResAgreeCardExchange.Code:type_name -> tutorial.RES_CODE - 1, // 145: tutorial.ResRefuseCardSelect.Code:type_name -> tutorial.RES_CODE - 1, // 146: tutorial.ResRefuseCardExchange.Code:type_name -> tutorial.RES_CODE - 1, // 147: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE - 582, // 148: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry - 431, // 149: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo - 432, // 150: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack - 583, // 151: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry - 584, // 152: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry - 431, // 153: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo - 436, // 154: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress - 431, // 155: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo - 1, // 156: tutorial.ResGetDailyTaskReward.Code:type_name -> tutorial.RES_CODE - 1, // 157: tutorial.ResGetDailyWeekReward.Code:type_name -> tutorial.RES_CODE - 442, // 158: tutorial.ResFaceInfo.FaceList:type_name -> tutorial.FaceInfo - 1, // 159: tutorial.ResSetFace.Code:type_name -> tutorial.RES_CODE - 446, // 160: tutorial.ResAvatarInfo.AvatarList:type_name -> tutorial.AvatarInfo - 1, // 161: tutorial.ResSetAvatar.Code:type_name -> tutorial.RES_CODE - 450, // 162: tutorial.ResSevenLogin.WeekReward:type_name -> tutorial.SevenLoginReward - 450, // 163: tutorial.ResSevenLogin.MonthReward:type_name -> tutorial.SevenLoginReward - 431, // 164: tutorial.SevenLoginReward.Item1:type_name -> tutorial.ItemInfo - 431, // 165: tutorial.SevenLoginReward.Item2:type_name -> tutorial.ItemInfo - 431, // 166: tutorial.SevenLoginReward.Item3:type_name -> tutorial.ItemInfo - 1, // 167: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE - 1, // 168: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE - 456, // 169: tutorial.ResAcitive.ActiveList:type_name -> tutorial.ActiveInfo - 585, // 170: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry - 586, // 171: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry - 1, // 172: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE - 1, // 173: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE - 1, // 174: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE - 471, // 175: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple - 587, // 176: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry - 471, // 177: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple - 1, // 178: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE - 471, // 179: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple - 471, // 180: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResPlayerSimple - 473, // 181: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard - 472, // 182: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog - 471, // 183: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple - 1, // 184: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE - 1, // 185: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE - 1, // 186: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE - 1, // 187: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE - 588, // 188: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry - 589, // 189: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry - 431, // 190: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo - 1, // 191: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE - 1, // 192: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE - 1, // 193: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE - 590, // 194: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry - 591, // 195: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry - 592, // 196: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry - 1, // 197: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE - 1, // 198: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE - 1, // 199: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE - 593, // 200: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry - 431, // 201: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo - 1, // 202: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE - 1, // 203: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE - 1, // 204: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE - 1, // 205: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE - 434, // 206: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek - 435, // 207: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask - 460, // 208: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent - 471, // 209: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple - 499, // 210: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo - 507, // 211: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop - 508, // 212: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop - 517, // 213: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo - 214, // [214:214] is the sub-list for method output_type - 214, // [214:214] is the sub-list for method input_type - 214, // [214:214] is the sub-list for extension type_name - 214, // [214:214] is the sub-list for extension extendee - 0, // [0:214] is the sub-list for field type_name + 453, // 128: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo + 449, // 129: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo + 1, // 130: tutorial.ResSetName.ResultCode:type_name -> tutorial.RES_CODE + 1, // 131: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE + 395, // 132: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo + 1, // 133: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE + 1, // 134: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE + 400, // 135: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order + 1, // 136: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE + 406, // 137: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card + 592, // 138: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry + 1, // 139: tutorial.ResCardCollectReward.Code:type_name -> tutorial.RES_CODE + 1, // 140: tutorial.ResExStarReward.Code:type_name -> tutorial.RES_CODE + 1, // 141: tutorial.ResAllCollectReward.Code:type_name -> tutorial.RES_CODE + 1, // 142: tutorial.ResCardGive.Code:type_name -> tutorial.RES_CODE + 1, // 143: tutorial.ResAgreeCardGive.Code:type_name -> tutorial.RES_CODE + 1, // 144: tutorial.ResRefuseCardGive.Code:type_name -> tutorial.RES_CODE + 1, // 145: tutorial.ResCardSend.Code:type_name -> tutorial.RES_CODE + 1, // 146: tutorial.ResCardExchange.Code:type_name -> tutorial.RES_CODE + 1, // 147: tutorial.ResSelectCardExchange.Code:type_name -> tutorial.RES_CODE + 1, // 148: tutorial.ResAgreeCardExchange.Code:type_name -> tutorial.RES_CODE + 1, // 149: tutorial.ResRefuseCardSelect.Code:type_name -> tutorial.RES_CODE + 1, // 150: tutorial.ResRefuseCardExchange.Code:type_name -> tutorial.RES_CODE + 1, // 151: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE + 1, // 152: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE + 593, // 153: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry + 438, // 154: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo + 439, // 155: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack + 594, // 156: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry + 595, // 157: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry + 438, // 158: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo + 443, // 159: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress + 438, // 160: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo + 1, // 161: tutorial.ResGetDailyTaskReward.Code:type_name -> tutorial.RES_CODE + 1, // 162: tutorial.ResGetDailyWeekReward.Code:type_name -> tutorial.RES_CODE + 449, // 163: tutorial.ResFaceInfo.FaceList:type_name -> tutorial.FaceInfo + 1, // 164: tutorial.ResSetFace.Code:type_name -> tutorial.RES_CODE + 453, // 165: tutorial.ResAvatarInfo.AvatarList:type_name -> tutorial.AvatarInfo + 1, // 166: tutorial.ResSetAvatar.Code:type_name -> tutorial.RES_CODE + 457, // 167: tutorial.ResSevenLogin.WeekReward:type_name -> tutorial.SevenLoginReward + 457, // 168: tutorial.ResSevenLogin.MonthReward:type_name -> tutorial.SevenLoginReward + 438, // 169: tutorial.SevenLoginReward.Item1:type_name -> tutorial.ItemInfo + 438, // 170: tutorial.SevenLoginReward.Item2:type_name -> tutorial.ItemInfo + 438, // 171: tutorial.SevenLoginReward.Item3:type_name -> tutorial.ItemInfo + 1, // 172: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE + 1, // 173: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE + 463, // 174: tutorial.ResAcitive.ActiveList:type_name -> tutorial.ActiveInfo + 596, // 175: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry + 597, // 176: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry + 1, // 177: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE + 1, // 178: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE + 1, // 179: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE + 478, // 180: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple + 481, // 181: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard + 598, // 182: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry + 478, // 183: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple + 1, // 184: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE + 478, // 185: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple + 478, // 186: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResPlayerSimple + 481, // 187: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard + 479, // 188: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog + 478, // 189: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple + 1, // 190: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE + 1, // 191: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE + 1, // 192: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE + 1, // 193: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE + 599, // 194: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry + 600, // 195: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry + 438, // 196: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo + 1, // 197: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE + 1, // 198: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE + 1, // 199: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE + 601, // 200: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry + 602, // 201: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry + 603, // 202: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry + 1, // 203: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE + 1, // 204: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE + 1, // 205: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE + 604, // 206: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry + 438, // 207: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo + 1, // 208: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE + 1, // 209: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE + 1, // 210: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE + 1, // 211: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE + 1, // 212: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE + 605, // 213: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry + 441, // 214: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek + 442, // 215: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask + 467, // 216: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent + 478, // 217: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple + 507, // 218: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo + 515, // 219: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop + 516, // 220: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop + 525, // 221: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo + 222, // [222:222] is the sub-list for method output_type + 222, // [222:222] is the sub-list for method input_type + 222, // [222:222] is the sub-list for extension type_name + 222, // [222:222] is the sub-list for extension extendee + 0, // [0:222] is the sub-list for field type_name } func init() { file_Gameapi_proto_init() } @@ -34764,8 +35464,8 @@ func file_Gameapi_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_Gameapi_proto_rawDesc, - NumEnums: 5, - NumMessages: 589, + NumEnums: 4, + NumMessages: 602, NumExtensions: 0, NumServices: 0, },