From b6aaf756e67c89d79f4de910b7d0d7f2be3bf978 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 1 Jul 2024 11:47:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A0=E7=89=A9=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GameItem.dat | Bin 8619 -> 8958 bytes data/DB_GameItem.json | 93 ++++ data/DB_PetSkill.dat | Bin 890 -> 885 bytes data/DB_PetSkill.json | 50 +- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes gamesrv/base/player.go | 26 + gamesrv/tienlen/scenedata_tienlen.go | 11 + model/player.go | 5 +- protocol/pets/pets.pb.go | 484 +++++++++++++---- protocol/pets/pets.proto | 22 + protocol/server/pbdata.pb.go | 774 ++++++++++++++------------- protocol/server/pbdata.proto | 14 +- protocol/tienlen/tienlen.pb.go | 113 +++- protocol/tienlen/tienlen.proto | 8 + public | 2 +- worldsrv/action_pets.go | 70 +++ worldsrv/petmgr.go | 21 + xlsx/DB_GameItem.xlsx | Bin 23164 -> 23736 bytes xlsx/DB_PetSkill.xlsx | Bin 11082 -> 11170 bytes 20 files changed, 1155 insertions(+), 538 deletions(-) diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 08348aff54374fb35c99f2e1e6eca2e693d96c37..4a0081f400cd1de9159db854c72976a30fc392f6 100644 GIT binary patch delta 206 zcmZ4O{LghlAMZ3qj-R1IJkPosUNrBW$fwU3J<(2!=XvMOXY0Bkf*Uh-a`6Um+-+kP zVtcu7=F=UGlleGRW#pdruYWpc#mk0SFBbN^Sl{?$$J(c@6QA`idOEdjvn;nROL`i| z>RvV>o)=qZKV7@{`SSHoJKCg}7#Nh885kHegp62#6oVC*j9|=SG$=AdHtWgm-A}s~ rzUbTjbl-G{-uHWYfL1=)JLk!cUC;U^0d0Mi%bCkX)nrwwNE delta 21 dcmez8y4ra{-)42j$y}Rxcr;ly&lN}%0svwh2a^B* diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index 619475e..5cd9737 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -32,6 +32,38 @@ "Location": "10001", "Describe": "作用:用于升级,解锁宠物斗鸡;可在角色功能页面使用。\n" }, + { + "Id": 11001, + "Name": "技能碎片", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 1, + 1, + 0 + ], + "Type": 1, + "Effect0": [ + 1, + 0, + 1, + 0 + ], + "Effect": [ + 1, + 0, + 1, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "10001", + "Describe": "作用:用于升级,解锁宠物斗鸡特殊技能;可在角色功能页面使用。\n" + }, { "Id": 20001, "Name": "酷帕碎片", @@ -757,6 +789,38 @@ "Location": "0", "Describe": "可在集字活动中兑换物品" }, + { + "Id": 50013, + "Name": "龙币", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 1, + 1, + 0 + ], + "Type": 13, + "Effect0": [ + 0, + 0, + 1, + 0 + ], + "Effect": [ + 0, + 0, + 1, + 0 + ], + "SaleType": 1, + "SaleGold": 5000, + "Composition": 1, + "CompositionMax": 9999, + "Location": "0", + "Describe": "可在通行证中兑换商品" + }, { "Id": 60001, "Name": "tienlen记牌器(1小时)", @@ -1171,6 +1235,35 @@ "Describe": "房间内互动表情", "Num": 1000 }, + { + "Id": 100011, + "Name": "赛季积分", + "ShowLocation": [ + 0, + 0 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 18, + "Effect0": [ + 0, + 0, + 0, + 0 + ], + "Effect": [ + 0, + 0, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "通行证中任务获得积分,可作为排行使用" + }, { "Id": 100135, "Name": "圣耀裁决", diff --git a/data/DB_PetSkill.dat b/data/DB_PetSkill.dat index 622f190fb9ebbcfe904fd70c0d1e11f3239762e5..9f3788d2cc02117e4f46c65972916a2de2a8c696 100644 GIT binary patch literal 885 zcmb8sy$-=p7ywX3+uN(eU@#huTK^J>*ZuwstitFe>!Jp1uHWcM3CZelm!yNKBl zKU}BH8NbZqjm?5JTY7Bi#Cv}r4`uQi7faM4X>ijbZVPi2a5La$MBFy!s^Dh9&5F1k z%q8H;;L0Ly7jw0*J0S|V%8zUOdoyYnOaWE_R)t^#gL42AfQb-nVz3Ud2Cyas*D*K` PFa?+j!3_*9eBjg@Z)M%7 literal 890 zcmb8sy$XU*7=Yo_w4*dMG&D9hd9*)+mM)+%x|e8)#D)}tsD_prB9I)zu%(MRns-q{ zUmW5iI5+SN?`w>RR9Ovck9of?HOjfS%Hsoz7R(PVlkLyXW0=iicE6>&AUj0qI$>Ut zZm*NpG(F9-z+=&pxo773*(U5st${`^zE-IkBO-$;IUwevm;IUwf4?1AY+w-2j1K=+}#gA?qIhP97axMDe2zz%^q7-lfKL3f}IgBb*~80=7> W1z-=t0z!$MV-e7!UzoWVXbS;n0z5SU diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 4077bc2a8a085dec62130fae62b43e19fb04fca6..631706199da21d879ad2fa4c8984614085f866aa 100644 GIT binary patch delta 280 zcmew;@KIobaVQ7J!d^Ck1-)!mY#d8~ED!}fcCROZCP+gZu43eJI2Xd*abKLVRd4J8F)wzXbV{7WPf)1$uC$0C(ma$H-=bu uU=|NlmI>&_$5)sIgn$vlT=& zKbHarivSByo&_uq5#>Uto7iD2h+*)?Gl|TTx3CLNwqvn0W8+u^w2m37<-u|x2SzSs zjwN##1w-aT{fVN>cX)-5AxF954fTlp@MF0)@ BN{avh diff --git a/gamesrv/base/player.go b/gamesrv/base/player.go index b34d8bc..2682034 100644 --- a/gamesrv/base/player.go +++ b/gamesrv/base/player.go @@ -1363,3 +1363,29 @@ func (this *Player) UpdateBuyRecTimeItem(expireTime, diamond int64) { this.Diamond = diamond this.ItemRecExpireTime = expireTime } + +// 宠物技能使用 +func (this *Player) PetUseSkill() bool { + data := srvdata.PBDB_PetSkillMgr.Datas.GetArr() + for _, info := range this.Pets.SkillInfo { + for skillId, skillLevel := range info { + var skillInfo = &server.DB_PetSkill{} + for _, info := range data { + if info.SkillId == skillId && info.SkillLevel == skillLevel && info.SkillType == 1 { + skillInfo = info + break + } + } + if skillInfo == nil { + return false + } + random := rand.Intn(100) + 1 + logger.Logger.Trace("宠物技能抵挡炸弹,随机到的值 = ", random, " 技能id = ", skillId, " 技能等级 = ", skillLevel, " 技能值 = ", skillInfo.SKillValue) + if random <= int(skillInfo.SKillValue) { + logger.Logger.Trace("炸弹,宠物技能抵挡成功!") + return true + } + } + } + return false +} diff --git a/gamesrv/tienlen/scenedata_tienlen.go b/gamesrv/tienlen/scenedata_tienlen.go index 3f0852b..a134561 100644 --- a/gamesrv/tienlen/scenedata_tienlen.go +++ b/gamesrv/tienlen/scenedata_tienlen.go @@ -1934,6 +1934,17 @@ func (this *TienLenSceneData) TrySmallGameBilled() { if !this.IsMatchScene() && losePlayerCoin < score { //输完 score = losePlayerCoin } + //判断宠物技能生不生效 + if losePlayer.PetUseSkill() { + score = 0 + //通知客户端宠物技能生效 炸弹不扣分 + pack := &tienlen.SCTienLenPetSkillRes{} + pack.Snid = losePlayer.SnId + pack.Pos = int32(losePlayer.Pos) + pack.PetSkillRes = true + this.Broadcast(int(tienlen.TienLenPacketID_PACKET_SCTienLenPetSkillRes), pack, 0) + logger.Logger.Trace("宠物技能抵挡炸弹生效,发送消息 SCTienLenPetSkillRes: ", pack) + } if score != 0 { taxRate := this.DbGameFree.GetTaxRate() //万分比 gainScore := int64(float64(score) * float64(10000-taxRate) / 10000.0) //税后 diff --git a/model/player.go b/model/player.go index b8636d3..03606e6 100644 --- a/model/player.go +++ b/model/player.go @@ -209,8 +209,9 @@ type ShopTotal struct { AdReceiveNum int32 //已经领取的次数 } type RolePetInfo struct { - ModUnlock map[int32]int32 //已经解锁的id - ModId int32 //使用中的id + ModUnlock map[int32]int32 //已经解锁的id + ModId int32 //使用中的id + SkillInfo map[int32]map[int32]int32 //宠物技能 key1 - petId key2 - skillId value - level } // 七日签到数据 diff --git a/protocol/pets/pets.pb.go b/protocol/pets/pets.pb.go index 66eb1c1..5994e6c 100644 --- a/protocol/pets/pets.pb.go +++ b/protocol/pets/pets.pb.go @@ -36,6 +36,8 @@ const ( PetsPacketID_PACKET_SC_ROLEPETUSEOP PetsPacketID = 2558 PetsPacketID_PACKET_CS_ROLEPETUNLOCK PetsPacketID = 2559 //解锁模型 PetsPacketID_PACKET_SC_ROLEPETUNLOCK PetsPacketID = 2560 + PetsPacketID_PACKET_CS_PETSKILLLEVELUP PetsPacketID = 2561 //技能升级 + PetsPacketID_PACKET_SC_PETSKILLLEVELUP PetsPacketID = 2562 //技能升级返回 ) // Enum value maps for PetsPacketID. @@ -53,6 +55,8 @@ var ( 2558: "PACKET_SC_ROLEPETUSEOP", 2559: "PACKET_CS_ROLEPETUNLOCK", 2560: "PACKET_SC_ROLEPETUNLOCK", + 2561: "PACKET_CS_PETSKILLLEVELUP", + 2562: "PACKET_SC_PETSKILLLEVELUP", } PetsPacketID_value = map[string]int32{ "PACKET_CANDY_ZERO": 0, @@ -67,6 +71,8 @@ var ( "PACKET_SC_ROLEPETUSEOP": 2558, "PACKET_CS_ROLEPETUNLOCK": 2559, "PACKET_SC_ROLEPETUNLOCK": 2560, + "PACKET_CS_PETSKILLLEVELUP": 2561, + "PACKET_SC_PETSKILLLEVELUP": 2562, } ) @@ -428,10 +434,11 @@ type PetInfo struct { Story string `protobuf:"bytes,12,opt,name=Story,proto3" json:"Story,omitempty"` //人物背景介绍 AwardTitle string `protobuf:"bytes,13,opt,name=AwardTitle,proto3" json:"AwardTitle,omitempty"` //奖励标题 //数据 - HaveAmount int32 `protobuf:"varint,14,opt,name=HaveAmount,proto3" json:"HaveAmount,omitempty"` //拥有的道具个数 - NextAward int32 `protobuf:"varint,15,opt,name=NextAward,proto3" json:"NextAward,omitempty"` //下一级加成 - IsUsing bool `protobuf:"varint,16,opt,name=IsUsing,proto3" json:"IsUsing,omitempty"` //是否在使用中 - IsUnlock bool `protobuf:"varint,17,opt,name=IsUnlock,proto3" json:"IsUnlock,omitempty"` //是否已经解锁 + HaveAmount int32 `protobuf:"varint,14,opt,name=HaveAmount,proto3" json:"HaveAmount,omitempty"` //拥有的道具个数 + NextAward int32 `protobuf:"varint,15,opt,name=NextAward,proto3" json:"NextAward,omitempty"` //下一级加成 + IsUsing bool `protobuf:"varint,16,opt,name=IsUsing,proto3" json:"IsUsing,omitempty"` //是否在使用中 + IsUnlock bool `protobuf:"varint,17,opt,name=IsUnlock,proto3" json:"IsUnlock,omitempty"` //是否已经解锁 + SkillInfo []*PetSkillInfo `protobuf:"bytes,18,rep,name=SkillInfo,proto3" json:"SkillInfo,omitempty"` //宠物技能信息 } func (x *PetInfo) Reset() { @@ -585,6 +592,13 @@ func (x *PetInfo) GetIsUnlock() bool { return false } +func (x *PetInfo) GetSkillInfo() []*PetSkillInfo { + if x != nil { + return x.SkillInfo + } + return nil +} + //PACKET_CS_PET_INFO type CSPetInfo struct { state protoimpl.MessageState @@ -1096,6 +1110,184 @@ func (x *SCRolePetUnlock) GetPetInfo() *PetInfo { return nil } +//宠物技能 +type PetSkillInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SkillId int32 `protobuf:"varint,1,opt,name=SkillId,proto3" json:"SkillId,omitempty"` + SkillLevel int32 `protobuf:"varint,2,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` +} + +func (x *PetSkillInfo) Reset() { + *x = PetSkillInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pets_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PetSkillInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PetSkillInfo) ProtoMessage() {} + +func (x *PetSkillInfo) ProtoReflect() protoreflect.Message { + mi := &file_pets_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PetSkillInfo.ProtoReflect.Descriptor instead. +func (*PetSkillInfo) Descriptor() ([]byte, []int) { + return file_pets_proto_rawDescGZIP(), []int{13} +} + +func (x *PetSkillInfo) GetSkillId() int32 { + if x != nil { + return x.SkillId + } + return 0 +} + +func (x *PetSkillInfo) GetSkillLevel() int32 { + if x != nil { + return x.SkillLevel + } + return 0 +} + +//请求升级 +//PACKET_CS_PETSKILLLEVELUP +type CSPetSkillLevelUp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PetId int32 `protobuf:"varint,1,opt,name=PetId,proto3" json:"PetId,omitempty"` + SkillId int32 `protobuf:"varint,2,opt,name=SkillId,proto3" json:"SkillId,omitempty"` +} + +func (x *CSPetSkillLevelUp) Reset() { + *x = CSPetSkillLevelUp{} + if protoimpl.UnsafeEnabled { + mi := &file_pets_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSPetSkillLevelUp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSPetSkillLevelUp) ProtoMessage() {} + +func (x *CSPetSkillLevelUp) ProtoReflect() protoreflect.Message { + mi := &file_pets_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSPetSkillLevelUp.ProtoReflect.Descriptor instead. +func (*CSPetSkillLevelUp) Descriptor() ([]byte, []int) { + return file_pets_proto_rawDescGZIP(), []int{14} +} + +func (x *CSPetSkillLevelUp) GetPetId() int32 { + if x != nil { + return x.PetId + } + return 0 +} + +func (x *CSPetSkillLevelUp) GetSkillId() int32 { + if x != nil { + return x.SkillId + } + return 0 +} + +//请求升级返回 +//PACKET_SC_PETSKILLLEVELUP +type SCPetSkillLevelUp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PetId int32 `protobuf:"varint,1,opt,name=PetId,proto3" json:"PetId,omitempty"` + SkillId int32 `protobuf:"varint,2,opt,name=SkillId,proto3" json:"SkillId,omitempty"` + SkillLevel int32 `protobuf:"varint,3,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` +} + +func (x *SCPetSkillLevelUp) Reset() { + *x = SCPetSkillLevelUp{} + if protoimpl.UnsafeEnabled { + mi := &file_pets_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCPetSkillLevelUp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCPetSkillLevelUp) ProtoMessage() {} + +func (x *SCPetSkillLevelUp) ProtoReflect() protoreflect.Message { + mi := &file_pets_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCPetSkillLevelUp.ProtoReflect.Descriptor instead. +func (*SCPetSkillLevelUp) Descriptor() ([]byte, []int) { + return file_pets_proto_rawDescGZIP(), []int{15} +} + +func (x *SCPetSkillLevelUp) GetPetId() int32 { + if x != nil { + return x.PetId + } + return 0 +} + +func (x *SCPetSkillLevelUp) GetSkillId() int32 { + if x != nil { + return x.SkillId + } + return 0 +} + +func (x *SCPetSkillLevelUp) GetSkillLevel() int32 { + if x != nil { + return x.SkillLevel + } + return 0 +} + var File_pets_proto protoreflect.FileDescriptor var file_pets_proto_rawDesc = []byte{ @@ -1132,7 +1324,7 @@ var file_pets_proto_rawDesc = []byte{ 0x6f, 0x22, 0x32, 0x0a, 0x0a, 0x53, 0x43, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xbb, 0x03, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, @@ -1160,88 +1352,110 @@ var file_pets_proto_rawDesc = []byte{ 0x07, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x55, 0x6e, 0x6c, - 0x6f, 0x63, 0x6b, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x53, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x30, 0x0a, 0x09, 0x53, 0x43, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, - 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, - 0x65, 0x74, 0x73, 0x2e, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, - 0x6f, 0x73, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x53, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x4d, - 0x6f, 0x64, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x10, 0x53, 0x43, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x69, - 0x73, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x12, 0x2a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, - 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x52, 0x6f, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0x68, 0x0a, 0x0f, 0x53, 0x43, 0x50, 0x65, 0x74, 0x52, 0x69, 0x73, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x72, 0x12, 0x27, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x50, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, - 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4c, 0x0a, 0x0e, - 0x43, 0x53, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x74, 0x55, 0x73, 0x65, 0x4f, 0x70, 0x12, 0x1e, + 0x6f, 0x63, 0x6b, 0x12, 0x30, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x50, 0x65, + 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x53, 0x50, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x30, 0x0a, 0x09, 0x53, 0x43, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x53, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x4d, 0x6f, + 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x69, 0x73, 0x69, 0x6e, + 0x67, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x10, 0x53, 0x43, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x12, 0x2a, 0x0a, 0x08, 0x52, 0x6f, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, + 0x65, 0x74, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x52, 0x6f, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, + 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x68, 0x0a, 0x0f, 0x53, 0x43, 0x50, 0x65, 0x74, 0x52, 0x69, 0x73, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x12, 0x27, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, + 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4c, + 0x0a, 0x0e, 0x43, 0x53, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x74, 0x55, 0x73, 0x65, 0x4f, 0x70, + 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x0e, + 0x53, 0x43, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x74, 0x55, 0x73, 0x65, 0x4f, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x0e, 0x53, 0x43, - 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x74, 0x55, 0x73, 0x65, 0x4f, 0x70, 0x12, 0x1e, 0x0a, 0x0a, - 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, - 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x0f, 0x43, 0x53, 0x52, 0x6f, 0x6c, 0x65, - 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x73, 0x65, - 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, - 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, - 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, - 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x22, 0xd0, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x52, 0x6f, 0x6c, 0x65, - 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x73, 0x65, - 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, - 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, - 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, - 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x4f, 0x70, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x52, 0x6f, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x27, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0xdf, 0x02, 0x0a, 0x0c, 0x50, 0x65, 0x74, - 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, - 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf6, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x46, - 0x4f, 0x10, 0xf7, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf8, 0x13, 0x12, 0x17, 0x0a, - 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x49, - 0x4e, 0x46, 0x4f, 0x10, 0xf9, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x53, 0x54, - 0x41, 0x52, 0x10, 0xfa, 0x13, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x53, 0x54, - 0x41, 0x52, 0x10, 0xfb, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x53, 0x54, 0x41, - 0x52, 0x10, 0xfc, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x10, 0xfd, - 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, - 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x45, 0x4f, 0x50, 0x10, 0xfe, 0x13, 0x12, 0x1c, - 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, - 0x50, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0xff, 0x13, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, - 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x80, 0x14, 0x2a, 0x2f, 0x0a, 0x0c, 0x4f, 0x70, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, - 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x42, 0x24, 0x5a, 0x22, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x65, 0x74, - 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x08, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, + 0x74, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x0f, 0x43, 0x53, 0x52, 0x6f, + 0x6c, 0x65, 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x55, + 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, + 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, + 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x22, 0xd0, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x52, 0x6f, + 0x6c, 0x65, 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x55, + 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x55, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, + 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, + 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, + 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x52, + 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x27, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x65, 0x74, 0x73, 0x2e, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x07, 0x50, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x48, 0x0a, 0x0c, 0x50, 0x65, + 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x11, 0x53, 0x43, 0x50, + 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2a, 0x9f, + 0x03, 0x0a, 0x0c, 0x50, 0x65, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, + 0x15, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x5f, + 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf6, 0x13, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, + 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf7, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, + 0x10, 0xf8, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xf9, 0x13, 0x12, 0x1d, 0x0a, 0x18, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, + 0x53, 0x49, 0x4e, 0x47, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfa, 0x13, 0x12, 0x1e, 0x0a, 0x19, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x49, + 0x53, 0x49, 0x4e, 0x47, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfb, 0x13, 0x12, 0x1d, 0x0a, 0x18, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, 0x54, 0x5f, 0x52, 0x49, 0x53, + 0x49, 0x4e, 0x47, 0x53, 0x54, 0x41, 0x52, 0x10, 0xfc, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, + 0x53, 0x45, 0x4f, 0x50, 0x10, 0xfd, 0x13, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x53, 0x45, 0x4f, + 0x50, 0x10, 0xfe, 0x13, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, + 0xff, 0x13, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x52, 0x4f, 0x4c, 0x45, 0x50, 0x45, 0x54, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x80, 0x14, + 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x45, + 0x54, 0x53, 0x4b, 0x49, 0x4c, 0x4c, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x81, 0x14, + 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x45, + 0x54, 0x53, 0x4b, 0x49, 0x4c, 0x4c, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x55, 0x50, 0x10, 0x82, 0x14, + 0x2a, 0x2f, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, + 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0x01, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x70, 0x65, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1257,40 +1471,44 @@ func file_pets_proto_rawDescGZIP() []byte { } var file_pets_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_pets_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_pets_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_pets_proto_goTypes = []interface{}{ - (PetsPacketID)(0), // 0: pets.PetsPacketID - (OpResultCode)(0), // 1: pets.OpResultCode - (*RoleInfo)(nil), // 2: pets.RoleInfo - (*CSRoleInfo)(nil), // 3: pets.CSRoleInfo - (*SCRoleInfo)(nil), // 4: pets.SCRoleInfo - (*PetInfo)(nil), // 5: pets.PetInfo - (*CSPetInfo)(nil), // 6: pets.CSPetInfo - (*SCPetInfo)(nil), // 7: pets.SCPetInfo - (*CSRisingStar)(nil), // 8: pets.CSRisingStar - (*SCRoleRisingStar)(nil), // 9: pets.SCRoleRisingStar - (*SCPetRisingStar)(nil), // 10: pets.SCPetRisingStar - (*CSRolePetUseOp)(nil), // 11: pets.CSRolePetUseOp - (*SCRolePetUseOp)(nil), // 12: pets.SCRolePetUseOp - (*CSRolePetUnlock)(nil), // 13: pets.CSRolePetUnlock - (*SCRolePetUnlock)(nil), // 14: pets.SCRolePetUnlock + (PetsPacketID)(0), // 0: pets.PetsPacketID + (OpResultCode)(0), // 1: pets.OpResultCode + (*RoleInfo)(nil), // 2: pets.RoleInfo + (*CSRoleInfo)(nil), // 3: pets.CSRoleInfo + (*SCRoleInfo)(nil), // 4: pets.SCRoleInfo + (*PetInfo)(nil), // 5: pets.PetInfo + (*CSPetInfo)(nil), // 6: pets.CSPetInfo + (*SCPetInfo)(nil), // 7: pets.SCPetInfo + (*CSRisingStar)(nil), // 8: pets.CSRisingStar + (*SCRoleRisingStar)(nil), // 9: pets.SCRoleRisingStar + (*SCPetRisingStar)(nil), // 10: pets.SCPetRisingStar + (*CSRolePetUseOp)(nil), // 11: pets.CSRolePetUseOp + (*SCRolePetUseOp)(nil), // 12: pets.SCRolePetUseOp + (*CSRolePetUnlock)(nil), // 13: pets.CSRolePetUnlock + (*SCRolePetUnlock)(nil), // 14: pets.SCRolePetUnlock + (*PetSkillInfo)(nil), // 15: pets.PetSkillInfo + (*CSPetSkillLevelUp)(nil), // 16: pets.CSPetSkillLevelUp + (*SCPetSkillLevelUp)(nil), // 17: pets.SCPetSkillLevelUp } var file_pets_proto_depIdxs = []int32{ 2, // 0: pets.SCRoleInfo.Infos:type_name -> pets.RoleInfo - 5, // 1: pets.SCPetInfo.Infos:type_name -> pets.PetInfo - 2, // 2: pets.SCRoleRisingStar.RoleInfo:type_name -> pets.RoleInfo - 1, // 3: pets.SCRoleRisingStar.RetCode:type_name -> pets.OpResultCode - 5, // 4: pets.SCPetRisingStar.PetInfo:type_name -> pets.PetInfo - 1, // 5: pets.SCPetRisingStar.RetCode:type_name -> pets.OpResultCode - 1, // 6: pets.SCRolePetUseOp.RetCode:type_name -> pets.OpResultCode - 1, // 7: pets.SCRolePetUnlock.RetCode:type_name -> pets.OpResultCode - 2, // 8: pets.SCRolePetUnlock.RoleInfo:type_name -> pets.RoleInfo - 5, // 9: pets.SCRolePetUnlock.PetInfo:type_name -> pets.PetInfo - 10, // [10:10] is the sub-list for method output_type - 10, // [10:10] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 15, // 1: pets.PetInfo.SkillInfo:type_name -> pets.PetSkillInfo + 5, // 2: pets.SCPetInfo.Infos:type_name -> pets.PetInfo + 2, // 3: pets.SCRoleRisingStar.RoleInfo:type_name -> pets.RoleInfo + 1, // 4: pets.SCRoleRisingStar.RetCode:type_name -> pets.OpResultCode + 5, // 5: pets.SCPetRisingStar.PetInfo:type_name -> pets.PetInfo + 1, // 6: pets.SCPetRisingStar.RetCode:type_name -> pets.OpResultCode + 1, // 7: pets.SCRolePetUseOp.RetCode:type_name -> pets.OpResultCode + 1, // 8: pets.SCRolePetUnlock.RetCode:type_name -> pets.OpResultCode + 2, // 9: pets.SCRolePetUnlock.RoleInfo:type_name -> pets.RoleInfo + 5, // 10: pets.SCRolePetUnlock.PetInfo:type_name -> pets.PetInfo + 11, // [11:11] is the sub-list for method output_type + 11, // [11:11] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_pets_proto_init() } @@ -1455,6 +1673,42 @@ func file_pets_proto_init() { return nil } } + file_pets_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PetSkillInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pets_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSPetSkillLevelUp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pets_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPetSkillLevelUp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1462,7 +1716,7 @@ func file_pets_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pets_proto_rawDesc, NumEnums: 2, - NumMessages: 13, + NumMessages: 16, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/pets/pets.proto b/protocol/pets/pets.proto index e48e39c..14ad91a 100644 --- a/protocol/pets/pets.proto +++ b/protocol/pets/pets.proto @@ -16,6 +16,8 @@ enum PetsPacketID { PACKET_SC_ROLEPETUSEOP = 2558; PACKET_CS_ROLEPETUNLOCK = 2559;//解锁模型 PACKET_SC_ROLEPETUNLOCK = 2560; + PACKET_CS_PETSKILLLEVELUP = 2561;//技能升级 + PACKET_SC_PETSKILLLEVELUP = 2562;//技能升级返回 } //操作结果 @@ -71,6 +73,7 @@ message PetInfo { int32 NextAward = 15;//下一级加成 bool IsUsing = 16;//是否在使用中 bool IsUnlock = 17;//是否已经解锁 + repeated PetSkillInfo SkillInfo = 18;//宠物技能信息 } //PACKET_CS_PET_INFO message CSPetInfo { @@ -117,4 +120,23 @@ message SCRolePetUnlock{ OpResultCode RetCode = 3; RoleInfo RoleInfo = 4; PetInfo PetInfo = 5; +} + +//宠物技能 +message PetSkillInfo{ + int32 SkillId = 1; + int32 SkillLevel = 2; +} +//请求升级 +//PACKET_CS_PETSKILLLEVELUP +message CSPetSkillLevelUp{ + int32 PetId =1; + int32 SkillId = 2; +} +//请求升级返回 +//PACKET_SC_PETSKILLLEVELUP +message SCPetSkillLevelUp{ + int32 PetId = 1; + int32 SkillId = 2; + int32 SkillLevel = 3; } \ No newline at end of file diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index c497de5..ef2be5c 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7550,12 +7550,13 @@ type DB_PetSkill struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` SkillId int32 `protobuf:"varint,2,opt,name=SkillId,proto3" json:"SkillId,omitempty"` - PetId int32 `protobuf:"varint,3,opt,name=PetId,proto3" json:"PetId,omitempty"` - SkillLevel int32 `protobuf:"varint,4,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` - SkillName string `protobuf:"bytes,5,opt,name=SkillName,proto3" json:"SkillName,omitempty"` - SkillDes string `protobuf:"bytes,6,opt,name=SkillDes,proto3" json:"SkillDes,omitempty"` - SKillValue string `protobuf:"bytes,7,opt,name=SKillValue,proto3" json:"SKillValue,omitempty"` - ItemConsum map[int64]int64 `protobuf:"bytes,8,rep,name=ItemConsum,proto3" json:"ItemConsum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + SkillType int32 `protobuf:"varint,3,opt,name=SkillType,proto3" json:"SkillType,omitempty"` + PetId int32 `protobuf:"varint,4,opt,name=PetId,proto3" json:"PetId,omitempty"` + SkillLevel int32 `protobuf:"varint,5,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` + SkillName string `protobuf:"bytes,6,opt,name=SkillName,proto3" json:"SkillName,omitempty"` + SkillDes string `protobuf:"bytes,7,opt,name=SkillDes,proto3" json:"SkillDes,omitempty"` + SKillValue int32 `protobuf:"varint,8,opt,name=SKillValue,proto3" json:"SKillValue,omitempty"` + ItemConsum map[int64]int64 `protobuf:"bytes,9,rep,name=ItemConsum,proto3" json:"ItemConsum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *DB_PetSkill) Reset() { @@ -7604,6 +7605,13 @@ func (x *DB_PetSkill) GetSkillId() int32 { return 0 } +func (x *DB_PetSkill) GetSkillType() int32 { + if x != nil { + return x.SkillType + } + return 0 +} + func (x *DB_PetSkill) GetPetId() int32 { if x != nil { return x.PetId @@ -7632,11 +7640,11 @@ func (x *DB_PetSkill) GetSkillDes() string { return "" } -func (x *DB_PetSkill) GetSKillValue() string { +func (x *DB_PetSkill) GetSKillValue() int32 { if x != nil { return x.SKillValue } - return "" + return 0 } func (x *DB_PetSkill) GetItemConsum() map[int64]int64 { @@ -11311,386 +11319,388 @@ var file_pbdata_proto_rawDesc = []byte{ 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xcb, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, + 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, - 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, - 0x74, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, - 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, - 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, - 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, - 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, - 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, - 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, - 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, - 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, - 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, - 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, - 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x6d, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, - 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, - 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, - 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, - 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, - 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, - 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, - 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, - 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, - 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, - 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, - 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, - 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, - 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, - 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, - 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, - 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, - 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, - 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, - 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, - 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, - 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, - 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, - 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, - 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, - 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, - 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, + 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, + 0x72, 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, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, + 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, + 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, + 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, + 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, + 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, + 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, + 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, + 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, + 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, + 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, 0x69, + 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, - 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, - 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, - 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, - 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, - 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, - 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, - 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, - 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, - 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, + 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, + 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, + 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, + 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, + 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, + 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x6d, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x43, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x53, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3d, + 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, + 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, + 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, + 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, + 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, + 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, + 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, + 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, + 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, + 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, + 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, + 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, + 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, + 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, + 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, + 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, + 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x0f, 0x44, + 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, + 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, + 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, + 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, + 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, - 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, - 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, - 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, - 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, - 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, + 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, + 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, + 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, + 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, + 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, + 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, + 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, + 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, + 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, + 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, + 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, + 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, + 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, + 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, + 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, + 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, + 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, + 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, + 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, + 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, + 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, + 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, + 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, + 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, + 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, - 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, - 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0xea, 0x05, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, - 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, - 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, - 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, + 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, + 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xea, 0x05, + 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, + 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, + 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, + 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, + 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, + 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index ac4ed32..4a59eef 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1243,17 +1243,19 @@ message DB_PetSkill { int32 SkillId = 2; - int32 PetId = 3; + int32 SkillType = 3; - int32 SkillLevel = 4; + int32 PetId = 4; - string SkillName = 5; + int32 SkillLevel = 5; - string SkillDes = 6; + string SkillName = 6; - string SKillValue = 7; + string SkillDes = 7; - map ItemConsum = 8; + int32 SKillValue = 8; + + map ItemConsum = 9; } diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go index bab2c65..375fd81 100644 --- a/protocol/tienlen/tienlen.pb.go +++ b/protocol/tienlen/tienlen.pb.go @@ -92,6 +92,7 @@ const ( TienLenPacketID_PACKET_SCTienLenCardTest TienLenPacketID = 5384 //测试数据 TienLenPacketID_PACKET_SCTienLenThinkLongCnt TienLenPacketID = 5385 // 长考次数 TienLenPacketID_PACKET_SCTienLenFirstGiveItemItem TienLenPacketID = 5386 // 第一次赠送记牌器道具 + TienLenPacketID_PACKET_SCTienLenPetSkillRes TienLenPacketID = 5387 //宠物技能 ) // Enum value maps for TienLenPacketID. @@ -115,6 +116,7 @@ var ( 5384: "PACKET_SCTienLenCardTest", 5385: "PACKET_SCTienLenThinkLongCnt", 5386: "PACKET_SCTienLenFirstGiveItemItem", + 5387: "PACKET_SCTienLenPetSkillRes", } TienLenPacketID_value = map[string]int32{ "PACKET_TienLenZERO": 0, @@ -135,6 +137,7 @@ var ( "PACKET_SCTienLenCardTest": 5384, "PACKET_SCTienLenThinkLongCnt": 5385, "PACKET_SCTienLenFirstGiveItemItem": 5386, + "PACKET_SCTienLenPetSkillRes": 5387, } ) @@ -2088,6 +2091,71 @@ func (x *SCTienLenPlayerFirstGiveItemItem) GetItemRecExpireTime() int64 { return 0 } +//通知宠物技能生效 炸弹不扣分 +//PACKET_SCTienLenPetSkillRes +type SCTienLenPetSkillRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` + Pos int32 `protobuf:"varint,2,opt,name=Pos,proto3" json:"Pos,omitempty"` + PetSkillRes bool `protobuf:"varint,3,opt,name=PetSkillRes,proto3" json:"PetSkillRes,omitempty"` //true生效 +} + +func (x *SCTienLenPetSkillRes) Reset() { + *x = SCTienLenPetSkillRes{} + if protoimpl.UnsafeEnabled { + mi := &file_tienlen_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCTienLenPetSkillRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCTienLenPetSkillRes) ProtoMessage() {} + +func (x *SCTienLenPetSkillRes) ProtoReflect() protoreflect.Message { + mi := &file_tienlen_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCTienLenPetSkillRes.ProtoReflect.Descriptor instead. +func (*SCTienLenPetSkillRes) Descriptor() ([]byte, []int) { + return file_tienlen_proto_rawDescGZIP(), []int{21} +} + +func (x *SCTienLenPetSkillRes) GetSnid() int32 { + if x != nil { + return x.Snid + } + return 0 +} + +func (x *SCTienLenPetSkillRes) GetPos() int32 { + if x != nil { + return x.Pos + } + return 0 +} + +func (x *SCTienLenPetSkillRes) GetPetSkillRes() bool { + if x != nil { + return x.PetSkillRes + } + return false +} + var File_tienlen_proto protoreflect.FileDescriptor var file_tienlen_proto_rawDesc = []byte{ @@ -2386,11 +2454,17 @@ var file_tienlen_proto_rawDesc = []byte{ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, - 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, + 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0xde, 0x04, 0x0a, 0x0f, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0x80, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, @@ -2428,10 +2502,12 @@ var file_tienlen_proto_rawDesc = []byte{ 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, - 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x42, 0x27, 0x5a, 0x25, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, - 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x42, 0x27, + 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2447,7 +2523,7 @@ func file_tienlen_proto_rawDescGZIP() []byte { } var file_tienlen_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_tienlen_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_tienlen_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_tienlen_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: tienlen.OpResultCode (TienLenPacketID)(0), // 1: tienlen.TienLenPacketID @@ -2472,18 +2548,19 @@ var file_tienlen_proto_goTypes = []interface{}{ (*SCTienLenFirstOpPos)(nil), // 20: tienlen.SCTienLenFirstOpPos (*SCTienLenPlayerThinkLongCnt)(nil), // 21: tienlen.SCTienLenPlayerThinkLongCnt (*SCTienLenPlayerFirstGiveItemItem)(nil), // 22: tienlen.SCTienLenPlayerFirstGiveItemItem - nil, // 23: tienlen.TienLenPlayerData.ItemsEntry - nil, // 24: tienlen.SCTienLenCardTest.GradesEntry + (*SCTienLenPetSkillRes)(nil), // 23: tienlen.SCTienLenPetSkillRes + nil, // 24: tienlen.TienLenPlayerData.ItemsEntry + nil, // 25: tienlen.SCTienLenCardTest.GradesEntry } var file_tienlen_proto_depIdxs = []int32{ - 23, // 0: tienlen.TienLenPlayerData.Items:type_name -> tienlen.TienLenPlayerData.ItemsEntry + 24, // 0: tienlen.TienLenPlayerData.Items:type_name -> tienlen.TienLenPlayerData.ItemsEntry 2, // 1: tienlen.SCTienLenRoomInfo.Players:type_name -> tienlen.TienLenPlayerData 3, // 2: tienlen.SCTienLenRoomInfo.LastDelCards:type_name -> tienlen.LastDelCard 0, // 3: tienlen.SCTienLenPlayerOp.OpRetCode:type_name -> tienlen.OpResultCode 2, // 4: tienlen.SCTienLenPlayerEnter.Data:type_name -> tienlen.TienLenPlayerData 10, // 5: tienlen.TienLenPlayerGameBilled.AddItems:type_name -> tienlen.AddItem 11, // 6: tienlen.SCTienLenGameBilled.Datas:type_name -> tienlen.TienLenPlayerGameBilled - 24, // 7: tienlen.SCTienLenCardTest.Grades:type_name -> tienlen.SCTienLenCardTest.GradesEntry + 25, // 7: tienlen.SCTienLenCardTest.Grades:type_name -> tienlen.SCTienLenCardTest.GradesEntry 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name @@ -2749,6 +2826,18 @@ func file_tienlen_proto_init() { return nil } } + file_tienlen_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCTienLenPetSkillRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2756,7 +2845,7 @@ func file_tienlen_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tienlen_proto_rawDesc, NumEnums: 2, - NumMessages: 23, + NumMessages: 24, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index 08ab2b7..7eafda7 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -29,6 +29,7 @@ enum TienLenPacketID { PACKET_SCTienLenCardTest = 5384;//测试数据 PACKET_SCTienLenThinkLongCnt = 5385; // 长考次数 PACKET_SCTienLenFirstGiveItemItem = 5386; // 第一次赠送记牌器道具 + PACKET_SCTienLenPetSkillRes = 5387; //宠物技能 } @@ -244,4 +245,11 @@ message SCTienLenPlayerThinkLongCnt { message SCTienLenPlayerFirstGiveItemItem { int32 ItemId = 1; // 赠送的道具ID int64 ItemRecExpireTime = 2;// 道具到期时间 +} +//通知宠物技能生效 炸弹不扣分 +//PACKET_SCTienLenPetSkillRes +message SCTienLenPetSkillRes{ + int32 Snid = 1; + int32 Pos = 2; + bool PetSkillRes = 3; //true生效 } \ No newline at end of file diff --git a/public b/public index e3cbc9f..aef8c48 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit e3cbc9f58234727bd5f859f86083ad584b66009b +Subproject commit aef8c489a27508831d69b4f66dee10c5258abb92 diff --git a/worldsrv/action_pets.go b/worldsrv/action_pets.go index ba5e7e1..8f694ff 100644 --- a/worldsrv/action_pets.go +++ b/worldsrv/action_pets.go @@ -3,6 +3,8 @@ package main import ( "mongo.games.com/game/common" "mongo.games.com/game/protocol/pets" + "mongo.games.com/game/protocol/server" + "mongo.games.com/game/srvdata" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/netlib" ) @@ -331,6 +333,72 @@ func (this *CSRolePetUnlockHandler) Process(s *netlib.Session, packetid int, dat } return nil } + +// 宠物技能升级 +type CSPetSkillLevelUpPacketFactory struct { +} + +type CSPetSkillLevelUpHandler struct { +} + +func (this *CSPetSkillLevelUpPacketFactory) CreatePacket() interface{} { + pack := &pets.CSPetSkillLevelUp{} + return pack +} + +func (this *CSPetSkillLevelUpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if msg, ok := data.(*pets.CSPetSkillLevelUp); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSPetSkillLevelUp p == nil") + return nil + } + skillId := msg.SkillId + petId := msg.PetId + if p.Pets.SkillInfo == nil { + p.Pets.SkillInfo = make(map[int32]map[int32]int32) + } + level := int32(0) + if p.Pets.SkillInfo[petId] != nil { + level = p.Pets.SkillInfo[petId][skillId] + } + logger.Logger.Trace("玩家升级宠物技能%v %v %v", petId, skillId, level) + data := srvdata.PBDB_PetSkillMgr.Datas.GetArr() + var SkillInfo = &server.DB_PetSkill{} + for _, info := range data { + if info.PetId == petId && info.SkillId == skillId && info.SkillLevel == level+1 { + SkillInfo = info + break + } + } + if SkillInfo == nil { + return nil + } + if p.Pets.SkillInfo[petId] == nil { + p.Pets.SkillInfo[petId] = make(map[int32]int32) + } + //消耗道具 + itemCon := SkillInfo.ItemConsum + var items []*Item + for itemId, itemNum := range itemCon { + items = append(items, &Item{ + ItemId: int32(itemId), + ItemNum: -itemNum, + }) + } + _, _, isF := BagMgrSingleton.AddItems(p, items, 0, common.GainWayPetSkillLevelUp, "system", "宠物技能升级消耗", 0, 0, false) + if isF { + p.Pets.SkillInfo[petId][skillId] = level + 1 + pack := &pets.SCPetSkillLevelUp{} + pack.PetId = petId + pack.SkillId = skillId + pack.SkillLevel = p.Pets.SkillInfo[petId][skillId] + p.SendToClient(int(pets.PetsPacketID_PACKET_SC_PETSKILLLEVELUP), pack) + } + } + return nil +} + func init() { common.RegisterHandler(int(pets.PetsPacketID_PACKET_CS_ROLE_INFO), &CSRoleInfoHandler{}) netlib.RegisterFactory(int(pets.PetsPacketID_PACKET_CS_ROLE_INFO), &CSRoleInfoPacketFactory{}) @@ -342,4 +410,6 @@ func init() { netlib.RegisterFactory(int(pets.PetsPacketID_PACKET_CS_ROLEPETUSEOP), &CSRolePetUseOpPacketFactory{}) common.RegisterHandler(int(pets.PetsPacketID_PACKET_CS_ROLEPETUNLOCK), &CSRolePetUnlockHandler{}) netlib.RegisterFactory(int(pets.PetsPacketID_PACKET_CS_ROLEPETUNLOCK), &CSRolePetUnlockPacketFactory{}) + common.RegisterHandler(int(pets.PetsPacketID_PACKET_CS_PETSKILLLEVELUP), &CSPetSkillLevelUpHandler{}) + netlib.RegisterFactory(int(pets.PetsPacketID_PACKET_CS_PETSKILLLEVELUP), &CSPetSkillLevelUpPacketFactory{}) } diff --git a/worldsrv/petmgr.go b/worldsrv/petmgr.go index dbdb7bb..76d6d6f 100644 --- a/worldsrv/petmgr.go +++ b/worldsrv/petmgr.go @@ -183,6 +183,17 @@ func (this *PetMgr) GetPetInfos(p *Player) []*pets.PetInfo { if item != nil { newPet.HaveAmount = int32(item.ItemNum) } + //技能 + if p.Pets.SkillInfo != nil && p.Pets.SkillInfo[petId] != nil { + skillInfo := p.Pets.SkillInfo[petId] + for skillId, skillLevel := range skillInfo { + info := &pets.PetSkillInfo{} + info.SkillId = skillId + info.SkillLevel = skillLevel + newPet.SkillInfo = append(newPet.SkillInfo, info) + } + + } newPets = append(newPets, newPet) } } @@ -228,6 +239,16 @@ func (this *PetMgr) GetPetInfo(p *Player, modId int32) *pets.PetInfo { if item != nil { newPet.HaveAmount = int32(item.ItemNum) } + //技能 + if p.Pets.SkillInfo != nil && p.Pets.SkillInfo[modId] != nil { + skillInfo := p.Pets.SkillInfo[modId] + for skillId, skillLevel := range skillInfo { + info := &pets.PetSkillInfo{} + info.SkillId = skillId + info.SkillLevel = skillLevel + newPet.SkillInfo = append(newPet.SkillInfo, info) + } + } return newPet } return nil diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index a95651b8c8f2a5e40c3fc88b2fea071fb7325454..b6efdb70f7a303288e47c9a07d415389b49c8c01 100644 GIT binary patch delta 18442 zcma%hWmFz(vn3K-gF}!&@Zj$59^56k1@}N>L4!NN-Q8V-yF+jb?r!svbIvDo@0vCL zSWUn6lBk0NIgtYUYuEF$Ih-X0Mh+n{_W6tz^xT z?5VgbT8ryUG4@Ls;uCh>5gR*3gx<=HhwEyDzn?}LXMKjFW2nC>^sh;st<+UOH#RJV8)x7RkfQL*P3LC~?gDd!5^CVZ?ZxxcfzsXf=Fyk4+a_06_%oYOGBzkp8rVLuENh=Q z`w3nyxd6)R;FD&f)hiFUy$M|bxW*!MtE0KMOMzdLHi3;aX^6QKiY;$v$bD-xHSdOj z)+gExn`(N|2QCrG#aEU>~Z`^OvX;!_{2$U}#V z_6Lhfs1`2bkD zNpI)4#eR9*zZpYGW7$xbeE!Slj&(=*RzfnEo6i&%d(#vb7#MV)8(09!y@EUKfA45*(=l8rm z-no7f96TL(;^RDCX=(JVZEW$l+6J0O9;~J8+ub~>k)HU!+C8j;S3MnG>E7wCu6{-A zgMX^PqL1;t6YI-scd0KwJ|R3_u}W`i^0=X?HHkRiSop><>QXL4Vp_Gb{Oe_F2&J6} z4S7Lhn2TKg0XVd(Rt1WJJr`Zz}2cc7b?=R!|o0h+R)nDabSb219b!&F3U2Z`x z!RNW#Y;JZrP-C}&#NMSiOtfjrTgQf_7>09r;XmuUhp1O7or~{N4t7f z!p-9H@}DQwTx^5`PFE>TzI-@?kzZMUEP1(S3?oeC;pIgXzbHztO0ka(%o7ZBQ@Dlq zlS@bb&N*neG6|W*ZnD06TyO?^y@d`%%QHz6krE@{Uag=5m$UQ z5Bb+`jNLIFoWu!69w9R(Np**?`= z5E!6qRxFOX;$Xs$&|*kqYp||Ct6K(rW9exq3M>%h8|(^4UtMt`8MCIo;^ftIOu~-Z zJ(8<&;Ul4P`^Mn60|S0?$Sxy~)tC22Y5@%?pc*_a_fZ%WqU4tXNjLP7fhg=}(Jc3* zTZr`61uv91LX`N@>WG9wm&Idg!2MxyMODjS_#l_q>&V+?Qo?lWX{?n%jlO!g2(+T)Gde#LBf;1vx6azbIy*(Y`0sq+XI6>vS%Ql#gG$Lr$5 z-**?g`wSn)7p$njEc&v*8XRfhy&2Uv?8}oIAi`KP*BS`xSoH0vWg48(@&wD$l<10g zOthO}Ut)yy>@{*z9Y&HK+4dk*zWs!tIrHMAvy}!2emm;NK?JVj$(4gS$;}NoV0v9 zqoKsa>?dm=2VHT}4~LNtbbIUVu8R>WS5WGa9Dg0+!+}#R7uBH_1e@FyW|OmrW1|NH z%$Bc-CwK9E%Y<`u7O;pbEA1WMQfHCX58l;O0mYQez=EWOSK-QHM?0A_`Vf1t??2kG zv({rA=RC@4dcBkr7$eJ3c(4jVibYKM;T|2od$Ye ztwc&PC||xDtkwt>@9nt8_d2MdNbUAh%3{RP#ODwNwHr7+Fzh<%gOtiM;T^da`u6!U z>#&4V3_mHcLx+mvn@#%@f0>{3?)?yM8Ms2-hm_1&#yM=K!Q5BdpOX9xG7WGxsqLQ( zV(AO+IA%=wsK86?Ol#;+L>PrjA?$QPiWwant*X%7Mm1*Jj$8139N%+HFK{a^?PV~f zr6?N5p^1WJy->^egdWgnAPtEX0Wx2VpP;hI{3n8uUo9E6lAATD1){d#SUIwP8&csh7=e+?l! z%o5pJd$z`IBr|L%xz2Z%Ty{KYpS+E(-ZcZe<4lzws56iJ>@%N>WZWf3yQlIsLfJ4s zyx5rsi~C34XBa|kZdB=cBo92RSz=2?w0t3!dBMH5n~v1QM@&CVjf?1clgjTpMQIgE z`L@Auu-p~GMsd6l%|_=H-4uZ*o>8*RgZ@Bjleg-btaDgu6Y5-e-)GYc^}~+M&oH0i znhoUrMw;dYA;eQcqM*6?Cbf_thBhtkwyhl$&_eX2$ zd~D@ks0wPn7H^=riu3o|+Mpv`nblew=yYPhY1Bf~5uLE;^RcU4L1i$@rOz7OdebxQ ztC+8-62lr(1cT#XD;=l8#9*@A$I#wo=GR%Qs)F9{hr7Q#W$8RO! zBx`jKyy4B11Gpe=${2!u6`2A;|a!AS|pBrdJc6d&T+n#|DvRZdb$X(-;o zE|b$uO6lf4ktD84l}A#*B8P_OW>Q)r$$|mScUUu?87`(1QI^kSoQ~BY>v*;-6L+@a zn&tOiv4k?YkmI$7pgc}d!Y`R3LNi-LIy0!skwP-F{Znis-&#v^;Z&qjdkOFOrZWMA zhmHtHT5EiCv!WAfFZTuSJe;CVQXIuR={X~Tq3v@?Wf48Wa0n4#&chY&vLR!SGwQvZ z!71{1&s*1wv&;P=_P}4yA@Snp+||siexWIXC1&RM2u`!LgT&yPc)z`|_!(a)$2Y)Q zZX(KczllRZS7sG1jpE6Oj%&vx=P@Sz!bI9aGkdk|ngKVVF(Ggx7*hm^hr<)ULskh@ z39HG*SQO7Ty#S0;2XdI9R`>FZ#BN@3oV-U+a~~K<9nLmzJDeRo_x6)3(nD}d0%yC+Fb06B!vVe#yRT1 zH)iG;^;zFqe}OEs0dOp}>MDT?s8W->$xRPsuj#M^HgheRGPdox=~5&8ShG*s%Wh6t ze%mP|!A?NRUQ^PSFypkoW8vF|uJN50+GjGOf)qAO>Z?>R6)wg{%gEIxG&8ukw#zu< z{moHmQCWmsO&lvSK00$btxxUuT1#*wSzd^HLL~S~6B;vHiD^(R6Z@c$&_rI%7YL#Q zMfF){mlou^S&U?L@8bof_i$B)c*4JNz0=%|1f$(P7eL_UL9SsC_?2DQTNJ_%i-82e za+RavC&^%>T9YD~h-hYZF6ig%BJ7AX@=tD@eaJngGvH<*!}8T=MnnyztOOC^PDO19 zp{s&F{nL#C(xvVh-+-`|*W7rXO%|?V7YlV`vDCUKy&4x7O7b7@4j?CDF-tJfELWWy zN92CDIF$i%KI9PMkMBjVc~?&k{TcgL-cfXat@LlI7gT4eAj6F-(xKE;L_Bbe-x4}C z$b6svtkRnv#QHJ0DQiX_4H0+Tp4@;bBNG^aL0Y8sVLLR>Sbt8_A~+WbTFF&<%?!x; zC3b{DB@1?K++X%hm1!?Hu=cIY;)Ee;Vuv7Ut+x4)S=wX?1eHQnoM553YIiNlOQ9nK z`fcOU;bPW7Ffy&fZB^G1X6}VTI=@sQr9ziM6^&qC$j0aOn`lmlae!)8n!_!=aOSqR1e{8iuLt~05-I?hmq-GU&pM6T($%o}kIEDf z^Zf4B8++eLH)<4-%$(_dfGcmq@iBuMQ_d4_5^6@*uhM6i97gh(Ke0<0%k0%H&dJ$9BlH zC=#GijFUyo%tdlys~IGg!}LE40Bm`qi)wOz5R!jTxsS$SzMg-pf^7j|(Pvm#BAeq58h1Jdm~xbxwx(yO2w%e7;d(CI{5&g;Fz6D&)ZQ zw(@Z8VCE?lA?F;beF40dYD5!Qz?EE?%Knvdrq8Eb!rE8!zCy8migCQn1@?+KMFG4> zbqC(eRKZH9oGMkOvY0hf^hWnet`7Zk!lo62hC}LP=#VB!F;#!TR6SQ)5H2T}$bt+0 zNBP_035}P7hhM9>vGvgrlRzzBiTsX3Fr&0~Mi=(4!DfZ>8a$cDf)UdqotP$WoER#( zwzeN6amf=0V^@56&@wBMDc*^EIOTF@H3g$NMY@ilD!eKcgwJUkN1hUAJJqWXdkHQ} z{I@$Nz}YhJg0lM9tM~OL0!Scfceyz3CQ=q(x40l5{lNZsJoW+{&ApuFquoIn2VPnH zA#f`*TA}Fv@ki9C&S={My{}OcP+Cs@SiWmQI%<{-+k5-FOK3?TW+6tCt^9BmDk$>@AM(YwJe8!_ez4Ca})n!j0efC91tXmoxH1l3Ve8TeF27xUv3%L3|JmqNleQa^GgRAM^R_-#26jq8zarbVtN1#eByJ2M2=em)5elyK1pNch; zq>SWn2e#bgfOAkpTksWH{GQlGu*?g-+c2ZYUJ@FttU42jLn;-OV88)X%p0J+P@pgR zPp3S`OYiVWHG;~bR*=g&dnx)DekZf|8QJ5KCM_}!t-PY(cp=SupIKemRB;B;cYih& zdj?CHZzNvOzEeX5F&Z4VCi9P7ro_60b`(Fi{1nE5+1Py?TE|K8dv?s3wT&1<+~Gq1 z0R|w5JY6uhkYH$yFb`VOStHTA$xo05^@sA%uuM2B;!fq4WzO$Tuh#vL{j!=}ou&}8 zd~jGYF)<OV!+KiLJtbp zl+~gPQ@>In?#Q1ImEus3pyEmF{!_f^R0)b8NcD5;HJg{+Rj-GW zm*-}^r#YLK5qe;YcH37GB3$|%Xs-XsyMJEm*-7>99UZ5--_#{VhBc_@A3W(bP3OQe zsp430g(kMpLa3b#;g-9n1^Va^&=p)zL!h*UzFEMI6lu92JL%LyT~+#fT@1B99`Qf+ zmA@RGc-;)?SqfEZkWBk?Q6rZ9X-zb|FQM(bctEmP73-x;>km~>^CaTzJML%mPLB_;FqtB$mx825={sO!W>j<${3mk|w8Jg*g>11tRI+E-!ohzytfs zLw);QZ~eU>f4`2ULNk%fKs?#6YxGV6(7*B`%^Yj zmR6-xPuP(YMh2mocT_4s1mQ{zvfNiQyuEa;qH5_b)7f!l*<{2_GkZ8uAg-y>{}mgC z39+E+!S+JXWeTzSo6MAQ2R4-@rzPm(cf45?FDAIjY=78(xxd$Yxd(+gGY34eCo5QC z*=h@+TxzU<_M2B)6#OmeDtnbaEhrZFte}H~`URouWac*&tVfjvVR0f8XORDd#4`Bw z8oU;zMEMGDgQG04?`9>FHy`!9)Tlm=G!Ns#3N8YkmK(;Qq z{CKC9VyG5U8B;iC97CZwz7jc+I7Oh}CSRFYyrPUu$i6aA1T9`dgwoZ`_|ADvT~UjY z;CkdNmw&Q+Nz@q*Ur7^dzkhop2-20z??V$}cxG?kdg2O#KF7ZNP+EpxeU3{+2bqMD z24{Z_^V<7m=PIcNejD=y}om+%nJUIi3>67V{0z`NTJ^=robD0yc(By|@!D zoNA=i&WHEAHJhh_bTGbfD)!Tb%18i7b)OzvgZ~I|V{u*1IhDdiLqA=o9`&FQ0mv6y zuwtV-;RKDBF5z=9pp&?~eZR4uOAzKnu+hRc?rx|MG>4ZGneHArIT1DHV*Oc5sjU0A zQQ2M_3-7sNC~;vE1u&hV;tky5zU{7jT$|>hvqy$r0*Q6_UcTY`1nO`2peRsu0@^D| z`8xDgT=TEwX*K`JlypX}OhVb~5i)jShxZ9f>)-I7ukBc?V%?rQ@R3QBIA>2Oe!4#z z`$^B^M>ktYQ*(cC&%#tM1-s#2hae&nI6B%UVuNJ*SYV|KSnXJ#{D@V zBpFW|AHm}#K?x2t0`g?|06FBqc2Dgv8spn;d^$i#C59~~iTC;3HlczO(PbuH*;$MR zD1`8{PJ*dY5YKdt+%K~br7m_fO9R}<++MKjdSGsce(dz5Yx)(VgX%EstnUm5)C}M6 zCLsc5=Xb(Mwb|t*bK@*FeF}?_L&R2!%K3_{j|K^h|4R}6%2MNFE}by4>cDv*UF&n| z#t*XQYrQPL<(F?)@~zO+_NRoG&qNKkaO?-^mWmf_>R$3fkbDHZ+-wD4D;*{Y^)Ip7>mE<_Ka$i31MjumK-QDQtOSdN7#tL{lG zXO<2a-y(1zo?_!4-oLw5S}0ZmrG8qa>D7CXKmlIeS4w&7spTokWGNow)S6ICoB-LG zQy`aXaohbN3{>H&PBJUx0i9a1IC-DsJ`gWGD}H+ArSm{Yb+RF%CPZNUr=53ujmyX^ zzo@EH2=a=bdoGA%OAozXx>*a|-o*^;(${w*a2~AwA-;NyKU}ena&WQ%pqR4aDerNT zu67cI=Qh?6iT88<6~xy0fA&8!Z-?Guv&kb>RneaSa%-Wn`?~mmEszAg6^f?C@_cdmHd<{HFFwxWoTmaGz1N5Ptw=+|oiw16$f#%O>&^Ema>Lch8lLORW7=DHDf!?ce`NQt?UVcateqycEEWewK zoAgeyanS!jWE#NFa`%`CV(ht9Pi-Vt0%_c5hQMq&U|XHloVn0_ZZ+i>sLI{{qso{l zim4SKHl2)Ge9(y*I>mO*gSkb2IE~`Jcnn3J?XKj~xH5N!tC?Qc2GJ>qO+j?`E#=CF zNbQ4kp>Xow5%3fG{|Av)F@K(GSN7?w8-@fl3bG@Ih<5bjKv7ISrXsbyyd|)DAv?`a z2L?LbIaJYg{fhh3EhitN2DT%NX2UgJuI*X3LULLD;FpzvxsdD82h^at%36wd7zJ+H zM%aGV=Kl@g)IAV@@Q)51=ELu~_*TJFq)8U@*ro)s;LO z%l3-TSCknd0iR1iejl!t=hP{1Ss85VCM*L3pa~!~^q&)8oxX;nBYi$FVouL#qGWXZ z)$d}XR}f1%?Ij}ujVs|d{4My%K%zgZHE3c8&-+tz?kg7s@J9g)oAmFTPt{&0zYN*4 zB8dJ$Q~7l$1BrerRgamVjN9U@(Q|BFshugLX8K*B0-*8m+p4a9t?34dYnwfV> zc^n_^>vlpwNg_XRr&klE3#|AX3F3In9*@S|$j?$12)Q7-0YPktC-NH?d?WB^fXucK z&+mx)+%x>>}uaFu-~D=YWC#JfPQ4dH1s@^^ZftZOwnW2gG*Y`JGJFK+)U)88@JPX@@=^ zjogXFa1g_^r|jQzCXJsVa41~?2@txv9SR_LjGM+<1R>~Onquobkn^@t&D2Vk6A>^l zb@%4~B^_}!)^(qMd|1Q`;<;D)f1_y;)#50-Z}!vZ{BG#zR0tV(Xu#7LJPqX3e)b0} zZqbYWDe?F<7(fN{_W&aX1=l&&%4KLdXmE?bJq7ug+iF?&T*%$Lk4Vr0QwyWv7iwrw z-u|lWvT>Ej)A=a^yZ;az6DX$%{F!*q{`+SMNPnbI4T!!5JN318d}yXW^>3p%oH~?` z&L`XB0MA_kH(7{=+6GWc6mwZqu&I44x1`#Q!?ar*%I6twKR#<*%IUyimefYAS&g!#2uC z5URpiAA>6ifrSdc_UJ{Sz4Ir%*Map%NP`B}Jd5V@IA|i$B7-KP{gV>lsJ8oijkh4T z^wsM>4_4{tmMUL%w{35`NlVN@;|;%yTzTNrs}uNS<7a#7zn=Px2DOzol7OVnK-0?5OeF9xowFYG z^FPdkgQ(y?lKnSCAsRqksAKQ^q!Oy?6b_oRO-cown3|n)Id0FkvH|VdHgorZOqlkw zAf1MEwF!d9|BxXdj8g@!jrljFSYiVl-hgb~Ujh^01u>X8KetO7|9Gdz_`}%lg38Vq zGw$;^hJ3Tmi-O6~{41#o%X0h6g7y{=ca;$RU!?K|AfMjWPU3e`ebxE1?KvK@blrOM z?XPpGM*MmB0)|T+CEubti*F3HNu&*&29l=({IMF`@vrW(9{qo~``_M1JSOd;I93qK z&G^s#%iXPuKqkw+^ZJP5%shfF@>iAjcP~S`yz;CBNJ$S8-!f;??Jo8b0m%9>uapeh zM`Tb=DX!PY=u!^o|M(eKGFDwYoNmhWm^rYEVmuqZ{U`or5V~JCssMh**?)2OE4=@* zIrv!UqVi|YQTaHXtPPUxe@T~s-H48Kl434#(0ag2Hn&E7@jCI>0Tfw2fU??|=9QEz z7XKxBpFqpOKZD`l#z7AM?eEUX=hLT%-}(>qKK!CCqOX!msth#jUth50+eqfD3@XqQ|%^+<4uW)+7G7tE2luH@U*9^)fxE8U+#&;dOs2UFE#L_ObaV z?ElxCY-)KnPFSPQHO>szrUSK@Z1$fH1HG&R?MQR{wPq^VAjJKC;o+MPvD*A5)b@iY(gdnc^@8q-l}(q*!|~I>($UfK!;gA3mz$F>bxWX6{rKH(_nvk} zLj8!IswXJcU&erlG5M~skT(}UW)f`J+15*Fz)SoiTI# z9?Wh}8}F@#zc#eDHn%T7^Q^plTS;pa<$Jj79@+hIH}bSwe?pYjvfKhU=esN49e?|D zw0pLY|KjCwllel|^405W{qjnyAK+Qp=+@d8@d97(Y;&x3Tz49wK)<77Q>W+UdcMBX zz2oKi(3iPfF^A#4*s{9PlkI7Dx_<2C0XQ^=A>|pVdB)G5^ff=EUpibayuc_(L%zWP z0|SEv3zXXsSPYH7pnwDeYlH=TTZs!W(Yab%g~jXH{9wT7U8OkUe&3EQ6djNQU#MAR z5yMred9%9!6{8L{Y(-J?aLHYVjs}~2j@E%s^m2T)%{8=iQ+4VrLrqtd=>Ht#S|TO- zv)D<->)Ev>8C~97)3^o|Gjsq(Y0LTQZmR0-xvVwL6d^t}W=z=Zl`Lw3W49Dg^z~CU zyp27vbkP~*oKF#1c2cS`R;MdVG8EZ1rX4c-IT}jTE{`z^$#Q(j0>cNi8RPjbwtW=Jn%VD$k8f0-cOZV_U zS$#dWq2`F#enFy6iKpk8Kjx_dUYbW#a%dQ0;8O#t=AZZ!WCtwFUDh<9i;aIqiB?~w z8M(%RV|^trFB4>68_sc#j&D3!2vN+m2elMKIdk^4J+QBD?2ZCcYYc1zIO4mx57% z${DEgdGw`92zo=NgYZsLa>Hs@YWNa=z4EQR{b0387Z2-S)a%3PVFpQyHAe}^H%iMn zXI^M!50aZv{K3!s=2hwb2VRpb=YhL#kSFs74wo#bL^m_@1T78Ik`h&9N9wUxWFqgU zTiUukn1y&q#S9$l;j{OcfO+DvJzWR>oW^5|XyTEQnKv2cQIU{-EW#JIxR&fDk*M~l z8#n$87OB=4H^RwoYB3y0_HG;1W~>B4L5K$a8Fa+{E$Q8N1y0WX!pRlIk}1%7gHg78 zU;g}mom50Q;k^(Lz+qlWuo0Q31|K}NcJt;;9iBjB`iEeOcmnV?`TP)b<5688+*V@h zBh(Vt=Sec2c%eX4y%yq>jqxVZz{vEsgb4j_(=30szDJ|j1EUL{nFJTvr+MF#04B5o zqkU;{_^i!*d{PxLF8?Wksg;l58M!C!_w*`WLD0Mk7&~bToWs{~Nd%i<0)2C8A7~$g+YTr zD6}k*sivleKUEYN)yKU#7b=Yq9b8$ttp4?38kdUVz+It8bhB<_+=+1nN*|^uDteT+ zPiLMU?D;+Fs(CW~Xe9R#0en3~{3RBJ5#%rxZ*Zm1Cw^(xUV6rCDKKnGLXo8zDPj+A zlmmRXV&?kh4uz=Cl(2bTovxBv0l8i%fx}E`9b)7v;JMb4EU+dM?E{TW1WOM0bZyGj zc$P4L_5Quxm^_Y`Tm>{S$-NUx*V^M3vt>N0r?dj1B>$-JGt6z*rB6ZtY=4D}fe(AONPVZ-tZI=7_K(&CteDlOZ4Pg+cZ9C$ zrsTOtUJU8sH*i+DL7(9-(O>*7kh>{Z`#w#{BnD9zmYV!(N~twk3h3Q#CJH{&t7c%j zfChe5!OuA(f`PrY1Or0?F}bT1y@R8hm9fJsc`xg{L@Y^Qz7PbzbV@<-zjsEb7_DD1 zk!Ej>m*X0jq(wu^p#H(pj3wE^A-BNmulzf%E7MmF3cgP=mOJhoa@h}ZV!!O@iCMPk z0sRHS#>8suod-U5^TE7<+F~t1`wia-Fx0}HhAYojhK~$0DBDf=W41s=VNM#V7sshI zjdRfwv&~aS&k`fHatil~3)0f4244JUgRSw!klrE=w>aeHVw(X6d<9OJ);G^S&IWCo z@aBh~70kNz$lu?7ovc4J=<`wXDCgj-2$Qps2@3H0+^AfH8A#xutdCEJ(hT~1hn)Kw zg&f9G$I^A&Zdk`bpG!PeO%T_azP*vX>TvWJEQ4@SHi8*HMwE*VkTghdS?~+B5Hygg zFD2|~$owkXczGqAAjKZb-hXy8d%BLhsQtZdyS;H+v}Pm#OH-TH$9q{=Y`V4U(1D?I^5x5A z>01~3MtEIvH8%F2d?%Fb+>mDE)MpBFcHB1g3I9Lu8qonxXSjbC9#qeJHi&UoU%Lt-L$L#(8(qIK;WlX;P%;>DWv^V9dpd z#4E?tiJ(ghAFVj)>QJ-?i;z2}W$3b6U%fG(b`;WV);ENojAUGPcIlkl5iu4m|9yoA zFwzZ{Vq?ciu(Hbqbx66}p&0N&!ul2;Oq_P@a8@3-vwX& zxtb}?8`jVDgL9{AanMeQe*AI7q>&DIU)2{|Tl6o)eK zSkdXhKcXIGezoLK2V1C;e-S%pwqt(1ctC~iXM01B&YXR0N^T<8%)gV2OJ2=%wEf{O zsR4IjtY<`;x|87~q43Yof$v+U8zzY&Cf9l&ON%wLb1bgh3*nwBes-zEAX|0x_m>&p z=*Mf?nd+`r{%WpkWMsHUMns$6S>d}oQHL?=@36;DoLm0&J1LddavHb8Aj5FwP z&Qjct-*xhoXk^vv)zN~(D_M4@S${f!pWPm-Kb?-8C9gM+6~-L!Gkxm+*&Y3WGSRb- zjfGxroM`e%C#Hsbw#e{D@S88BHx8YSwJX#ydXvJjoFb?Md9ckN0^Z9tR|Ms7`9feI zF*83J`=_-+TK@z_$=!i`ny&IqJlxosea*r$l_6G>i<~N6UZd;ni+V|&Aj;@Q)VHLL z#90ln1b4p-6$##oG7-EL6e4)ro5giq0!MQSugcz|pjc^W-sS!?T7o4kSF*@bCMI@h z!byEmFyD7Mp3!#2YY3?XYaJS475qeI7{*c?VJx~px_3=Y_FayWGq#oFy ztoj*_-=&@C(eLhbXylO1%y1(nZ1_gH3~`CE*{D+$TMnsiaKC~`zj%Vo+U{%IXlLh| z1k9Z>7dIsAqgCj&!rh$;3QYTDoi(S}T&6T_usecqZtDDN8x@lnU{W9`B2f|vCIB#dnbyi$c{9B z3xkZ>fqE-3B}>Fu#B8k5o`V|y?us3vQ0RQLyzkpMWxvCYs&)knCBdQ5)4hLcK8RwADpFo-{orlF02i%E;|UEQw#Ps#yZ6 z=UVSSX{-L%UtLRAZbuF44a2WL9kcfF-`WgoQ}&Q|_UNt0uGud&Op}`%+NG~BEW*-n z(dgs^A}3CVNg`iR1gZF|xMAkPgw;bjv6}s79p6`Pk53`2Qxr9PNa?)C2vX)^qk-0~ z!er>zl+dgg&3TV>Csu%Mn<_cg(&+cdBJ8hGKseMb6R$)5{Z@Y)_BK-P1@aUac6i4` zEt0{o5rc2vl!T1ARV}RjrB{GARmJD~c?1})Vmc1&P^}RLO#@w*6gzabzJOH-15
    |~puwUr|^ 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 diff --git a/xlsx/DB_PetSkill.xlsx b/xlsx/DB_PetSkill.xlsx index b842985b17b4a37480c01b2debac225c73baf757..90045b72d16833a5907405186c5489d91f824b7c 100644 GIT binary patch delta 3298 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 delta 3224 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