From 4c7c2dc287f70f149d7216a8bade3001693a71f6 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 15 Jan 2025 13:31:16 +0800 Subject: [PATCH 1/9] =?UTF-8?q?modify=20=E6=8E=A8=E5=B8=81=E6=9C=BA?= =?UTF-8?q?=E6=8A=BD=E5=A5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/activity/pushcoin.pb.go | 262 +++++++++++++++---------- protocol/activity/pushcoin.proto | 10 +- protocol/webapi/common.pb.go | 316 ++++++++++++++++++++++++++----- protocol/webapi/common.proto | 17 ++ worldsrv/action_pushcoin.go | 21 +- 5 files changed, 470 insertions(+), 156 deletions(-) diff --git a/protocol/activity/pushcoin.pb.go b/protocol/activity/pushcoin.pb.go index 5ab35a5..57a7254 100644 --- a/protocol/activity/pushcoin.pb.go +++ b/protocol/activity/pushcoin.pb.go @@ -467,8 +467,6 @@ func (x *ExchangeInfo) GetTotalTimes() int64 { return 0 } -//抽奖信息 -//PACKET_NotifyDrawInfo type DrawInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -477,7 +475,6 @@ type DrawInfo struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //抽奖id ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具id ItemNum int32 `protobuf:"varint,3,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 - Coin int64 `protobuf:"varint,4,opt,name=Coin,proto3" json:"Coin,omitempty"` //价值 } func (x *DrawInfo) Reset() { @@ -533,11 +530,61 @@ func (x *DrawInfo) GetItemNum() int32 { return 0 } -func (x *DrawInfo) GetCoin() int64 { - if x != nil { - return x.Coin +//抽奖信息 +//PACKET_NotifyDrawInfo +type NotifyDrawInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Draw *DrawInfo `protobuf:"bytes,1,opt,name=Draw,proto3" json:"Draw,omitempty"` // 中奖信息 + Info []*DrawInfo `protobuf:"bytes,2,rep,name=Info,proto3" json:"Info,omitempty"` // 刷新信息 +} + +func (x *NotifyDrawInfo) Reset() { + *x = NotifyDrawInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 +} + +func (x *NotifyDrawInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyDrawInfo) ProtoMessage() {} + +func (x *NotifyDrawInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_pushcoin_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotifyDrawInfo.ProtoReflect.Descriptor instead. +func (*NotifyDrawInfo) Descriptor() ([]byte, []int) { + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{5} +} + +func (x *NotifyDrawInfo) GetDraw() *DrawInfo { + if x != nil { + return x.Draw + } + return nil +} + +func (x *NotifyDrawInfo) GetInfo() []*DrawInfo { + if x != nil { + return x.Info + } + return nil } //玩家操作 @@ -555,7 +602,7 @@ type CSPushCoinPlayerOp struct { func (x *CSPushCoinPlayerOp) Reset() { *x = CSPushCoinPlayerOp{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_pushcoin_proto_msgTypes[5] + mi := &file_protocol_activity_pushcoin_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -568,7 +615,7 @@ func (x *CSPushCoinPlayerOp) String() string { func (*CSPushCoinPlayerOp) ProtoMessage() {} func (x *CSPushCoinPlayerOp) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_pushcoin_proto_msgTypes[5] + mi := &file_protocol_activity_pushcoin_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -581,7 +628,7 @@ func (x *CSPushCoinPlayerOp) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPushCoinPlayerOp.ProtoReflect.Descriptor instead. func (*CSPushCoinPlayerOp) Descriptor() ([]byte, []int) { - return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{5} + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{6} } func (x *CSPushCoinPlayerOp) GetOpCode() OpCodes { @@ -620,7 +667,7 @@ type SCPushCoinPlayerOp struct { func (x *SCPushCoinPlayerOp) Reset() { *x = SCPushCoinPlayerOp{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_pushcoin_proto_msgTypes[6] + mi := &file_protocol_activity_pushcoin_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -633,7 +680,7 @@ func (x *SCPushCoinPlayerOp) String() string { func (*SCPushCoinPlayerOp) ProtoMessage() {} func (x *SCPushCoinPlayerOp) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_pushcoin_proto_msgTypes[6] + mi := &file_protocol_activity_pushcoin_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -646,7 +693,7 @@ func (x *SCPushCoinPlayerOp) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPushCoinPlayerOp.ProtoReflect.Descriptor instead. func (*SCPushCoinPlayerOp) Descriptor() ([]byte, []int) { - return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{6} + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{7} } func (x *SCPushCoinPlayerOp) GetOpRetCode() OpResultPushCoinCode { @@ -691,7 +738,7 @@ type NotifyPowerLine struct { func (x *NotifyPowerLine) Reset() { *x = NotifyPowerLine{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_pushcoin_proto_msgTypes[7] + mi := &file_protocol_activity_pushcoin_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -704,7 +751,7 @@ func (x *NotifyPowerLine) String() string { func (*NotifyPowerLine) ProtoMessage() {} func (x *NotifyPowerLine) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_pushcoin_proto_msgTypes[7] + mi := &file_protocol_activity_pushcoin_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -717,7 +764,7 @@ func (x *NotifyPowerLine) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPowerLine.ProtoReflect.Descriptor instead. func (*NotifyPowerLine) Descriptor() ([]byte, []int) { - return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{7} + return file_protocol_activity_pushcoin_proto_rawDescGZIP(), []int{8} } func (x *NotifyPowerLine) GetPowerLine() int64 { @@ -774,76 +821,80 @@ var file_protocol_activity_pushcoin_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x22, 0x60, 0x0a, 0x08, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x65, 0x73, 0x22, 0x4c, 0x0a, 0x08, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, - 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, - 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, - 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x06, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x12, 0x2a, 0x0a, 0x06, 0x4f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x4f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xc7, 0x01, 0x0a, - 0x12, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4f, 0x70, 0x12, 0x3c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, - 0x69, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x29, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x73, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x08, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x42, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x42, 0x65, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x50, 0x6f, - 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, - 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x50, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x2a, 0xdd, 0x01, 0x0a, 0x10, - 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, - 0x6f, 0x69, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x10, 0xf8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x10, - 0xf9, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, - 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, - 0xfa, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, - 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, - 0xfb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xfc, 0x14, 0x12, - 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfd, 0x14, 0x2a, 0x5e, 0x0a, 0x07, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x5a, 0x65, 0x72, - 0x6f, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x50, 0x5f, 0x42, 0x65, 0x74, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x47, 0x61, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, - 0x4f, 0x50, 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, - 0x5f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, - 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x05, 0x2a, 0xd2, 0x01, 0x0a, 0x14, + 0x22, 0x60, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x72, 0x61, 0x77, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x26, 0x0a, 0x04, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x85, 0x01, 0x0a, 0x12, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, + 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x06, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x2a, + 0x0a, 0x06, 0x4f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x06, 0x4f, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xc7, 0x01, 0x0a, 0x12, 0x53, + 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, + 0x70, 0x12, 0x3c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, - 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, - 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x42, 0x65, 0x74, 0x4e, 0x6f, 0x74, - 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x03, 0x12, 0x20, 0x0a, - 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x53, - 0x68, 0x61, 0x6b, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x04, 0x12, - 0x1f, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, - 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x05, - 0x42, 0x28, 0x5a, 0x26, 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, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x29, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x11, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x42, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, + 0x65, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, + 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, + 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x4d, 0x61, 0x78, 0x2a, 0xdd, 0x01, 0x0a, 0x10, 0x50, 0x75, + 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, + 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x10, 0xf8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xf9, 0x14, + 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x75, 0x73, + 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfa, 0x14, + 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x75, 0x73, + 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfb, 0x14, + 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xfc, 0x14, 0x12, 0x1a, 0x0a, + 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x72, + 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfd, 0x14, 0x2a, 0x5e, 0x0a, 0x07, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x5f, 0x5a, 0x65, 0x72, 0x6f, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x50, 0x5f, 0x42, 0x65, 0x74, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x4f, 0x50, 0x5f, 0x47, 0x61, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, + 0x5f, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x5f, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x5f, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x05, 0x2a, 0xd2, 0x01, 0x0a, 0x14, 0x4f, 0x70, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6f, 0x69, 0x6e, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x17, 0x0a, + 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, + 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x42, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x45, 0x6e, + 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, + 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x53, 0x68, 0x61, + 0x6b, 0x65, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x04, 0x12, 0x1f, 0x0a, + 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x5f, 0x49, + 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x05, 0x42, 0x28, + 0x5a, 0x26, 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, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -859,7 +910,7 @@ func file_protocol_activity_pushcoin_proto_rawDescGZIP() []byte { } var file_protocol_activity_pushcoin_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_protocol_activity_pushcoin_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_protocol_activity_pushcoin_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_protocol_activity_pushcoin_proto_goTypes = []interface{}{ (PushCoinPacketID)(0), // 0: activity.PushCoinPacketID (OpCodes)(0), // 1: activity.OpCodes @@ -869,9 +920,10 @@ var file_protocol_activity_pushcoin_proto_goTypes = []interface{}{ (*ItemInfo)(nil), // 5: activity.ItemInfo (*ExchangeInfo)(nil), // 6: activity.ExchangeInfo (*DrawInfo)(nil), // 7: activity.DrawInfo - (*CSPushCoinPlayerOp)(nil), // 8: activity.CSPushCoinPlayerOp - (*SCPushCoinPlayerOp)(nil), // 9: activity.SCPushCoinPlayerOp - (*NotifyPowerLine)(nil), // 10: activity.NotifyPowerLine + (*NotifyDrawInfo)(nil), // 8: activity.NotifyDrawInfo + (*CSPushCoinPlayerOp)(nil), // 9: activity.CSPushCoinPlayerOp + (*SCPushCoinPlayerOp)(nil), // 10: activity.SCPushCoinPlayerOp + (*NotifyPowerLine)(nil), // 11: activity.NotifyPowerLine } var file_protocol_activity_pushcoin_proto_depIdxs = []int32{ 6, // 0: activity.SCPushCoinInfo.ExchangeList:type_name -> activity.ExchangeInfo @@ -879,16 +931,18 @@ var file_protocol_activity_pushcoin_proto_depIdxs = []int32{ 5, // 2: activity.SCPushCoinInfo.Items:type_name -> activity.ItemInfo 5, // 3: activity.ExchangeInfo.Cost:type_name -> activity.ItemInfo 5, // 4: activity.ExchangeInfo.Gain:type_name -> activity.ItemInfo - 1, // 5: activity.CSPushCoinPlayerOp.OpCode:type_name -> activity.OpCodes - 5, // 6: activity.CSPushCoinPlayerOp.OpItem:type_name -> activity.ItemInfo - 2, // 7: activity.SCPushCoinPlayerOp.OpRetCode:type_name -> activity.OpResultPushCoinCode - 1, // 8: activity.SCPushCoinPlayerOp.OpCode:type_name -> activity.OpCodes - 6, // 9: activity.SCPushCoinPlayerOp.Exchange:type_name -> activity.ExchangeInfo - 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 + 7, // 5: activity.NotifyDrawInfo.Draw:type_name -> activity.DrawInfo + 7, // 6: activity.NotifyDrawInfo.Info:type_name -> activity.DrawInfo + 1, // 7: activity.CSPushCoinPlayerOp.OpCode:type_name -> activity.OpCodes + 5, // 8: activity.CSPushCoinPlayerOp.OpItem:type_name -> activity.ItemInfo + 2, // 9: activity.SCPushCoinPlayerOp.OpRetCode:type_name -> activity.OpResultPushCoinCode + 1, // 10: activity.SCPushCoinPlayerOp.OpCode:type_name -> activity.OpCodes + 6, // 11: activity.SCPushCoinPlayerOp.Exchange:type_name -> activity.ExchangeInfo + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_protocol_activity_pushcoin_proto_init() } @@ -958,7 +1012,7 @@ func file_protocol_activity_pushcoin_proto_init() { } } file_protocol_activity_pushcoin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPushCoinPlayerOp); i { + switch v := v.(*NotifyDrawInfo); i { case 0: return &v.state case 1: @@ -970,7 +1024,7 @@ func file_protocol_activity_pushcoin_proto_init() { } } file_protocol_activity_pushcoin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCPushCoinPlayerOp); i { + switch v := v.(*CSPushCoinPlayerOp); i { case 0: return &v.state case 1: @@ -982,6 +1036,18 @@ func file_protocol_activity_pushcoin_proto_init() { } } file_protocol_activity_pushcoin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCPushCoinPlayerOp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_pushcoin_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyPowerLine); i { case 0: return &v.state @@ -1000,7 +1066,7 @@ func file_protocol_activity_pushcoin_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_activity_pushcoin_proto_rawDesc, NumEnums: 3, - NumMessages: 8, + NumMessages: 9, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/activity/pushcoin.proto b/protocol/activity/pushcoin.proto index bdb624c..0039a3d 100644 --- a/protocol/activity/pushcoin.proto +++ b/protocol/activity/pushcoin.proto @@ -40,13 +40,17 @@ message ExchangeInfo{ int64 TotalTimes = 5; //总共兑换次数 -1无限 } -//抽奖信息 -//PACKET_NotifyDrawInfo message DrawInfo{ int32 Id = 1; //抽奖id int32 ItemId = 2; //道具id int32 ItemNum = 3; //道具数量 - int64 Coin = 4; //价值 +} + +//抽奖信息 +//PACKET_NotifyDrawInfo +message NotifyDrawInfo { + DrawInfo Draw = 1; // 中奖信息 + repeated DrawInfo Info = 2; // 刷新信息 } //玩家操作 diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 8852a95..546a999 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -10581,10 +10581,13 @@ type PushCoinConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 - On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 活动开关 1.开启 2.关闭 - StartTime string `protobuf:"bytes,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 活动开始时间 - EndTime string `protobuf:"bytes,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 活动结束时间 + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 + On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 活动开关 1.开启 2.关闭 + StartTime string `protobuf:"bytes,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 活动开始时间 + EndTime string `protobuf:"bytes,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 活动结束时间 + Pool1 *PushCoinPool `protobuf:"bytes,5,opt,name=Pool1,proto3" json:"Pool1,omitempty"` // 奖池1 + Pool2 *PushCoinPool `protobuf:"bytes,6,opt,name=Pool2,proto3" json:"Pool2,omitempty"` // 奖池2 + Pool3 *PushCoinPool `protobuf:"bytes,7,opt,name=Pool3,proto3" json:"Pool3,omitempty"` // 奖池3 } func (x *PushCoinConfig) Reset() { @@ -10647,6 +10650,169 @@ func (x *PushCoinConfig) GetEndTime() string { return "" } +func (x *PushCoinConfig) GetPool1() *PushCoinPool { + if x != nil { + return x.Pool1 + } + return nil +} + +func (x *PushCoinConfig) GetPool2() *PushCoinPool { + if x != nil { + return x.Pool2 + } + return nil +} + +func (x *PushCoinConfig) GetPool3() *PushCoinPool { + if x != nil { + return x.Pool3 + } + return nil +} + +type PushCoinPoolElement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + On int32 `protobuf:"varint,1,opt,name=On,proto3" json:"On,omitempty"` // 开关 1开启 2关闭 + Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 类型 1实物 + Award []*ItemInfo `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` // 奖励 + Weight int32 `protobuf:"varint,4,opt,name=Weight,proto3" json:"Weight,omitempty"` // 概率,万分比 + Value int64 `protobuf:"varint,5,opt,name=Value,proto3" json:"Value,omitempty"` // 价值(只有实物有用) +} + +func (x *PushCoinPoolElement) Reset() { + *x = PushCoinPoolElement{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushCoinPoolElement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushCoinPoolElement) ProtoMessage() {} + +func (x *PushCoinPoolElement) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PushCoinPoolElement.ProtoReflect.Descriptor instead. +func (*PushCoinPoolElement) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{115} +} + +func (x *PushCoinPoolElement) GetOn() int32 { + if x != nil { + return x.On + } + return 0 +} + +func (x *PushCoinPoolElement) GetTp() int32 { + if x != nil { + return x.Tp + } + return 0 +} + +func (x *PushCoinPoolElement) GetAward() []*ItemInfo { + if x != nil { + return x.Award + } + return nil +} + +func (x *PushCoinPoolElement) GetWeight() int32 { + if x != nil { + return x.Weight + } + return 0 +} + +func (x *PushCoinPoolElement) GetValue() int64 { + if x != nil { + return x.Value + } + return 0 +} + +type PushCoinPool struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + On int32 `protobuf:"varint,1,opt,name=On,proto3" json:"On,omitempty"` // 开关 1开启 2关闭 + Pool []*PushCoinPoolElement `protobuf:"bytes,2,rep,name=Pool,proto3" json:"Pool,omitempty"` // 奖池 + UpperLimit int64 `protobuf:"varint,3,opt,name=UpperLimit,proto3" json:"UpperLimit,omitempty"` // 奖池上限(达到上线发奖) +} + +func (x *PushCoinPool) Reset() { + *x = PushCoinPool{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PushCoinPool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PushCoinPool) ProtoMessage() {} + +func (x *PushCoinPool) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[116] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PushCoinPool.ProtoReflect.Descriptor instead. +func (*PushCoinPool) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{116} +} + +func (x *PushCoinPool) GetOn() int32 { + if x != nil { + return x.On + } + return 0 +} + +func (x *PushCoinPool) GetPool() []*PushCoinPoolElement { + if x != nil { + return x.Pool + } + return nil +} + +func (x *PushCoinPool) GetUpperLimit() int64 { + if x != nil { + return x.UpperLimit + } + return 0 +} + var File_protocol_webapi_common_proto protoreflect.FileDescriptor var file_protocol_webapi_common_proto_rawDesc = []byte{ @@ -12263,17 +12429,42 @@ var file_protocol_webapi_common_proto_rawDesc = []byte{ 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x74, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, - 0x43, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 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, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0e, 0x50, 0x75, 0x73, + 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x2a, 0x0a, 0x05, 0x50, 0x6f, 0x6f, 0x6c, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x50, 0x6f, 0x6f, 0x6c, 0x31, 0x12, 0x2a, 0x0a, 0x05, 0x50, + 0x6f, 0x6f, 0x6c, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x05, 0x50, 0x6f, 0x6f, 0x6c, 0x32, 0x12, 0x2a, 0x0a, 0x05, 0x50, 0x6f, 0x6f, 0x6c, 0x33, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x50, 0x6f, + 0x6f, 0x6c, 0x33, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x4f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x54, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x26, 0x0a, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x6f, 0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, + 0x6e, 0x12, 0x2f, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, + 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x50, 0x6f, + 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 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, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -12288,7 +12479,7 @@ func file_protocol_webapi_common_proto_rawDescGZIP() []byte { return file_protocol_webapi_common_proto_rawDescData } -var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 125) +var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 127) var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -12405,32 +12596,34 @@ var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*RedInfo)(nil), // 112: webapi.RedInfo (*ConsumeConfig)(nil), // 113: webapi.ConsumeConfig (*PushCoinConfig)(nil), // 114: webapi.PushCoinConfig - nil, // 115: webapi.Platform.BindTelRewardEntry - nil, // 116: webapi.PlayerData.RankScoreEntry - nil, // 117: webapi.ItemShop.AwardEntry - nil, // 118: webapi.VIPcfg.AwardEntry - nil, // 119: webapi.VIPcfg.Privilege1Entry - nil, // 120: webapi.VIPcfg.Privilege7Entry - nil, // 121: webapi.VIPcfg.Privilege9Entry - nil, // 122: webapi.ActInviteConfig.PayScoreEntry - nil, // 123: webapi.SkinLevel.UpItemEntry - nil, // 124: webapi.SkinItem.UnlockParamEntry - (*server.DB_GameFree)(nil), // 125: server.DB_GameFree - (*server.DB_GameItem)(nil), // 126: server.DB_GameItem + (*PushCoinPoolElement)(nil), // 115: webapi.PushCoinPoolElement + (*PushCoinPool)(nil), // 116: webapi.PushCoinPool + nil, // 117: webapi.Platform.BindTelRewardEntry + nil, // 118: webapi.PlayerData.RankScoreEntry + nil, // 119: webapi.ItemShop.AwardEntry + nil, // 120: webapi.VIPcfg.AwardEntry + nil, // 121: webapi.VIPcfg.Privilege1Entry + nil, // 122: webapi.VIPcfg.Privilege7Entry + nil, // 123: webapi.VIPcfg.Privilege9Entry + nil, // 124: webapi.ActInviteConfig.PayScoreEntry + nil, // 125: webapi.SkinLevel.UpItemEntry + nil, // 126: webapi.SkinItem.UnlockParamEntry + (*server.DB_GameFree)(nil), // 127: server.DB_GameFree + (*server.DB_GameItem)(nil), // 128: server.DB_GameItem } var file_protocol_webapi_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 115, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 117, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 125, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 127, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 125, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 116, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 127, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 118, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo 14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo @@ -12443,7 +12636,7 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo 25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop 29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight - 117, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 119, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop 32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -12464,14 +12657,14 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 118, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 119, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry - 120, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 121, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry + 120, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 121, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry + 122, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 123, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry 51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 122, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 124, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward @@ -12488,12 +12681,12 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo 70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers 72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData - 126, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem + 128, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem 32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo 75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo 76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo - 123, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry - 124, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry + 125, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry + 126, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry 78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel 79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem 82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData @@ -12521,11 +12714,16 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 99: webapi.NianRankAwardInfo.Award:type_name -> webapi.ItemInfo 111, // 100: webapi.RedPacketConfig.List:type_name -> webapi.RedPacketInfo 112, // 101: webapi.RedPacketInfo.RedList:type_name -> webapi.RedInfo - 102, // [102:102] is the sub-list for method output_type - 102, // [102:102] is the sub-list for method input_type - 102, // [102:102] is the sub-list for extension type_name - 102, // [102:102] is the sub-list for extension extendee - 0, // [0:102] is the sub-list for field type_name + 116, // 102: webapi.PushCoinConfig.Pool1:type_name -> webapi.PushCoinPool + 116, // 103: webapi.PushCoinConfig.Pool2:type_name -> webapi.PushCoinPool + 116, // 104: webapi.PushCoinConfig.Pool3:type_name -> webapi.PushCoinPool + 32, // 105: webapi.PushCoinPoolElement.Award:type_name -> webapi.ItemInfo + 115, // 106: webapi.PushCoinPool.Pool:type_name -> webapi.PushCoinPoolElement + 107, // [107:107] is the sub-list for method output_type + 107, // [107:107] is the sub-list for method input_type + 107, // [107:107] is the sub-list for extension type_name + 107, // [107:107] is the sub-list for extension extendee + 0, // [0:107] is the sub-list for field type_name } func init() { file_protocol_webapi_common_proto_init() } @@ -13914,6 +14112,30 @@ func file_protocol_webapi_common_proto_init() { return nil } } + file_protocol_webapi_common_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushCoinPoolElement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushCoinPool); 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{ @@ -13921,7 +14143,7 @@ func file_protocol_webapi_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_webapi_common_proto_rawDesc, NumEnums: 0, - NumMessages: 125, + NumMessages: 127, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 0c491a5..9d0581c 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -1174,4 +1174,21 @@ message PushCoinConfig{ int32 On = 2; // 活动开关 1.开启 2.关闭 string StartTime = 3; // 活动开始时间 string EndTime = 4; // 活动结束时间 + PushCoinPool Pool1 = 5; // 奖池1 + PushCoinPool Pool2 = 6; // 奖池2 + PushCoinPool Pool3 = 7; // 奖池3 +} + +message PushCoinPoolElement{ + int32 On = 1; // 开关 1开启 2关闭 + int32 Tp = 2; // 类型 1实物 + repeated ItemInfo Award = 3; // 奖励 + int32 Weight = 4; // 概率,万分比 + int64 Value = 5; // 价值(只有实物有用) +} + +message PushCoinPool{ + int32 On = 1; // 开关 1开启 2关闭 + repeated PushCoinPoolElement Pool = 2; // 奖池 + int64 UpperLimit = 3; // 奖池上限(达到上线发奖) } \ No newline at end of file diff --git a/worldsrv/action_pushcoin.go b/worldsrv/action_pushcoin.go index 365b8ca..db4446a 100644 --- a/worldsrv/action_pushcoin.go +++ b/worldsrv/action_pushcoin.go @@ -112,7 +112,6 @@ func CSPushCoinInfo(s *netlib.Session, packetid int, data interface{}, sid int64 Id: v.GetId(), ItemId: int32(kk), ItemNum: int32(vv), - Coin: v.GetValue(), }) } } @@ -292,6 +291,11 @@ func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid i ItemNum: v, }) } + for _, v := range cost { + if v.ItemNum < 0 { + v.ItemNum = -v.ItemNum + } + } BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.SnId, @@ -399,16 +403,17 @@ func PushCoinDraw(p *Player) { if index >= 0 { d := srvdata.PBDB_ACTPushCoinMgr.GetData(index) if d != nil { - pack := &activity.DrawInfo{ - Id: d.GetId(), - Coin: d.GetValue(), + pack := &activity.NotifyDrawInfo{ + Draw: &activity.DrawInfo{ + Id: d.GetId(), + }, } for k, v := range d.GetGain() { - pack.ItemId = int32(k) - pack.ItemNum = int32(v) - PushCoinAddValue(p, map[int32]int64{pack.ItemId: int64(pack.ItemNum)}) + pack.Draw.ItemId = int32(k) + pack.Draw.ItemNum = int32(v) + PushCoinAddValue(p, map[int32]int64{int32(k): v}) } - if pack.Coin > 0 || pack.ItemId > 0 { + if pack.Draw.ItemId > 0 { p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyDrawInfo), pack) // 增加能量条 PushCoinAddPower(p, 0) From 45ee2d2979c90c8738a202e1a96c8b1b72c2184c Mon Sep 17 00:00:00 2001 From: tomas Date: Thu, 16 Jan 2025 10:30:28 +0800 Subject: [PATCH 2/9] add GateofOlympus --- gamerule/gatesofolympus/constants.go | 22 + .../gatesofolympus/action_gatesofolympus.go | 46 + .../playerdata_gatesofolympus.go | 68 + .../scenedata_gatesofolympus.go | 45 + .../scenepolicy_gatesofolympus.go | 585 +++ gamesrv/main.go | 1 + gamesrv/slotspkg/assemble/difgame.go | 1 + .../slotspkg/external/ExportGoConfig-mac.sh | 21 + .../excel/Base/Slots/GatesOfOlympus/Bet.xlsx | Bin 0 -> 14341 bytes .../GatesOfOlympus/Feature/Multiplier.xlsx | Bin 0 -> 11115 bytes .../GatesOfOlympus/Feature/S_ReelChoose.xlsx | Bin 0 -> 9762 bytes .../Slots/GatesOfOlympus/Feature/Scatter.xlsx | Bin 0 -> 12738 bytes .../GatesOfOlympus/Generic/Formation.xlsx | Bin 0 -> 10686 bytes .../GatesOfOlympus/Generic/ReelBaseSpin.xlsx | Bin 0 -> 18331 bytes .../GatesOfOlympus/Generic/ReelBaseSpin1.xlsx | Bin 0 -> 15302 bytes .../GatesOfOlympus/Generic/ReelBaseSpin2.xlsx | Bin 0 -> 15403 bytes .../GatesOfOlympus/Generic/ReelBaseSpin3.xlsx | Bin 0 -> 15299 bytes .../GatesOfOlympus/Generic/ReelBaseSpin7.xlsx | Bin 0 -> 15010 bytes .../GatesOfOlympus/Generic/ReelBaseSpin8.xlsx | Bin 0 -> 15436 bytes .../GatesOfOlympus/Generic/ReelFreeSpin.xlsx | Bin 0 -> 15344 bytes .../GatesOfOlympus/Generic/ReelFreeSpin4.xlsx | Bin 0 -> 15343 bytes .../GatesOfOlympus/Generic/ReelFreeSpin5.xlsx | Bin 0 -> 15321 bytes .../Slots/GatesOfOlympus/Generic/S_Map.xlsx | Bin 0 -> 12378 bytes .../Slots/GatesOfOlympus/Generic/Symbol.xlsx | Bin 0 -> 13406 bytes .../Base/Slots/GatesOfOlympus/Settings.xlsx | Bin 0 -> 10031 bytes .../exported/excel2go/base/cash_mania.go | 744 +-- .../exported/excel2go/base/fortune_dragon.go | 352 +- .../exported/excel2go/base/fortune_mouse.go | 250 +- .../exported/excel2go/base/fortune_ox.go | 276 +- .../exported/excel2go/base/fortune_rabbit.go | 344 +- .../exported/excel2go/base/fortune_tiger.go | 262 +- .../excel2go/base/gates_of_olympus.go | 1339 ++++++ .../internal/exported/excel2go/base/matrix.go | 342 +- .../exported/excel2go/base/opt_group.go | 14 +- .../exported/excel2go/base/prize_model.go | 30 +- .../exported/excel2go/base/simulator.go | 126 +- .../internal/exported/excel2go/base/test.go | 4134 ++++++++--------- .../internal/exported/excel2go/base/var.go | 476 +- .../exported/excel2go/storage/storage.go | 87 + .../exported/excel2go/structs/structs.go | 49 + .../slotspkg/internal/generic/key/theme.go | 48 +- .../slotspkg/internal/module/shared/types.go | 21 + gamesrv/slotspkg/slots/formation/formation.go | 14 + gamesrv/slotspkg/slots/intf/formation.go | 4 + gamesrv/slotspkg/slots/intf/spinner.go | 1 + gamesrv/slotspkg/slots/machine/formation.go | 20 + .../plugin/gatesofolympus/choose_wheel.go | 36 + .../slots/plugin/gatesofolympus/common.go | 30 + .../slots/plugin/gatesofolympus/descx.go | 84 + .../slots/plugin/gatesofolympus/eliminate.go | 239 + .../slots/plugin/gatesofolympus/free_spin.go | 106 + .../slots/plugin/gatesofolympus/init.go | 10 + .../slots/plugin/gatesofolympus/tospecial.go | 77 + gamesrv/slotspkg/slots/plugin/init.go | 8 + protocol/cashmania/cashmania.proto | 10 +- protocol/gatesofolympus/gatesofolympus.proto | 10 +- 56 files changed, 6646 insertions(+), 3686 deletions(-) create mode 100644 gamerule/gatesofolympus/constants.go create mode 100644 gamesrv/gatesofolympus/action_gatesofolympus.go create mode 100644 gamesrv/gatesofolympus/playerdata_gatesofolympus.go create mode 100644 gamesrv/gatesofolympus/scenedata_gatesofolympus.go create mode 100644 gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go create mode 100644 gamesrv/slotspkg/external/ExportGoConfig-mac.sh create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx create mode 100644 gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go create mode 100644 gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go diff --git a/gamerule/gatesofolympus/constants.go b/gamerule/gatesofolympus/constants.go new file mode 100644 index 0000000..7a61b2e --- /dev/null +++ b/gamerule/gatesofolympus/constants.go @@ -0,0 +1,22 @@ +package gatesofolympus + +// 房间类型 +const ( + RoomMode_Classic int = iota //经典 + RoomMode_Max +) + +// 场景状态 +const ( + GatesOfOlympusStateStart int = iota //默认状态 + GatesOfOlympusStateMax +) + +// 玩家操作 +const ( + GatesOfOlympusPlayerOpStart int = iota + GatesOfOlympusPlayerOpSwitch +) +const NowByte int64 = 10000 + +const GameDataKey = "FortuneData" diff --git a/gamesrv/gatesofolympus/action_gatesofolympus.go b/gamesrv/gatesofolympus/action_gatesofolympus.go new file mode 100644 index 0000000..0422af3 --- /dev/null +++ b/gamesrv/gatesofolympus/action_gatesofolympus.go @@ -0,0 +1,46 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/gatesofolympus" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +type CSGatesOfOlympusOpPacketFactory struct { +} +type CSGatesOfOlympusOpHandler struct { +} + +func (this *CSGatesOfOlympusOpPacketFactory) CreatePacket() interface{} { + pack := &gatesofolympus.CSGatesOfOlympusOp{} + return pack +} + +func (this *CSGatesOfOlympusOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if op, ok := data.(*gatesofolympus.CSGatesOfOlympusOp); ok { + p := base.PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSGatesOfOlympusOpHandler p == nil") + return nil + } + scene := p.GetScene() + if scene == nil { + logger.Logger.Warn("CSGatesOfOlympusOpHandler p.scene == nil") + return nil + } + if !scene.HasPlayer(p) { + return nil + } + if scene.GetScenePolicy() != nil { + scene.GetScenePolicy().OnPlayerOp(scene, p, int(op.GetOpCode()), op.GetParams()) + } + return nil + } + return nil +} +func init() { + common.RegisterHandler(int(gatesofolympus.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP), &CSGatesOfOlympusOpHandler{}) + netlib.RegisterFactory(int(gatesofolympus.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP), &CSGatesOfOlympusOpPacketFactory{}) +} diff --git a/gamesrv/gatesofolympus/playerdata_gatesofolympus.go b/gamesrv/gatesofolympus/playerdata_gatesofolympus.go new file mode 100644 index 0000000..537ac3a --- /dev/null +++ b/gamesrv/gatesofolympus/playerdata_gatesofolympus.go @@ -0,0 +1,68 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamerule/gatesofolympus" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/slots" +) + +type GatesOfOlympusPlayerData struct { + *base.Player + base.LabaLog + leaveTime int32 //离开时间 + SlotsSession *base.SlotsSession + + BetSizeIndex int64 `json:"bsi"` //选中的单注下标 + BetLevelIndex int64 `json:"bli"` //选中的等级下标 + BetLineIndex int64 `json:"bii"` //选中的线数下标 + BetMode int64 `json:"bm,optional"` //0.常规 1.%125 2.购买 + + taxCoin int64 + winCoin int64 + currentLogId string + totalBet int64 + + isFree bool //只用于判断是否可以离开 +} +type LinkPositions struct { + Positions []int64 `json:"Positions,omitempty"` +} +type CustomEliminate struct { + LinkPositions []*LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} +type SpinLock struct { + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +func (p *GatesOfOlympusPlayerData) init() { + p.SlotsSession = base.NewSession(uint64(p.SnId), p.Coin*gatesofolympus.NowByte) +} +func (p *GatesOfOlympusPlayerData) Clear() { + p.taxCoin = 0 + p.winCoin = 0 + p.currentLogId = "" + p.LabaLog.Clear() +} + +// 需要带到world上进行数据处理 +func (p *GatesOfOlympusPlayerData) PushPlayer() map[string]string { + cache := slots.SlotsMgrSington.PushPlayer(p.SlotsSession) + return cache +} + +// 进房的时候需要带进来 +func (p *GatesOfOlympusPlayerData) PullPlayer(data map[string]string) { + slots.SlotsMgrSington.PullPlayer(p.SlotsSession, data) +} diff --git a/gamesrv/gatesofolympus/scenedata_gatesofolympus.go b/gamesrv/gatesofolympus/scenedata_gatesofolympus.go new file mode 100644 index 0000000..2d75fa1 --- /dev/null +++ b/gamesrv/gatesofolympus/scenedata_gatesofolympus.go @@ -0,0 +1,45 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" +) + +type GatesOfOlympusSceneData struct { + *base.Scene //场景 + players map[int32]*GatesOfOlympusPlayerData //玩家信息 + BetConfig *assemble.BetConfig +} + +func NewGatesOfOlympusSceneData(s *base.Scene) *GatesOfOlympusSceneData { + sceneEx := &GatesOfOlympusSceneData{ + Scene: s, + players: make(map[int32]*GatesOfOlympusPlayerData), + } + sceneEx.Init() + return sceneEx +} +func (s *GatesOfOlympusSceneData) Init() { + +} + +func (s *GatesOfOlympusSceneData) Clear() { + //应该是水池变一次就判断修改一次 + //s.slotRateWeight = s.slotRateWeightTotal[0] +} +func (s *GatesOfOlympusSceneData) SceneDestroy(force bool) { + //销毁房间 + s.Scene.Destroy(force) +} + +func (s *GatesOfOlympusSceneData) delPlayer(SnId int32) { + if _, exist := s.players[SnId]; exist { + delete(s.players, SnId) + } +} +func (s *GatesOfOlympusSceneData) OnPlayerLeave(p *base.Player, reason int) { + if /*playerEx*/ _, ok := p.ExtraData.(*GatesOfOlympusPlayerData); ok { + + } + s.delPlayer(p.SnId) +} diff --git a/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go b/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go new file mode 100644 index 0000000..b878255 --- /dev/null +++ b/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go @@ -0,0 +1,585 @@ +package gatesofolympus + +import ( + "encoding/json" + "mongo.games.com/game/common" + "mongo.games.com/game/gamerule/gatesofolympus" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" + "mongo.games.com/game/gamesrv/slotspkg/slots" + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + protocol "mongo.games.com/game/protocol/gatesofolympus" + "mongo.games.com/game/protocol/server" + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "time" +) + +// //////////////////////////////////////////////////////////// +var ScenePolicyGatesOfOlympusSington = &ScenePolicyGatesOfOlympus{} + +type ScenePolicyGatesOfOlympus struct { + base.BaseScenePolicy + states [gatesofolympus.GatesOfOlympusStateMax]base.SceneState +} + +// 创建场景扩展数据 +func (this *ScenePolicyGatesOfOlympus) CreateSceneExData(s *base.Scene) interface{} { + sceneEx := NewGatesOfOlympusSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + } + } + return sceneEx +} + +// 创建玩家扩展数据 +func (this *ScenePolicyGatesOfOlympus) CreatePlayerExData(s *base.Scene, p *base.Player) interface{} { + playerEx := &GatesOfOlympusPlayerData{Player: p} + p.SetExtraData(playerEx) + return playerEx +} + +// 场景开启事件 +func (this *ScenePolicyGatesOfOlympus) OnStart(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnStart, sceneId=", s.GetSceneId()) + sceneEx := NewGatesOfOlympusSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + s.ChangeSceneState(gatesofolympus.GatesOfOlympusStateStart) + } + } +} + +// 场景关闭事件 +func (this *ScenePolicyGatesOfOlympus) OnStop(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnStop , sceneId=", s.GetSceneId()) +} + +// 场景心跳事件 +func (this *ScenePolicyGatesOfOlympus) OnTick(s *base.Scene) { + if s == nil { + return + } + if s.GetSceneState() != nil { + s.GetSceneState().OnTick(s) + } +} + +// 玩家进入事件 +func (this *ScenePolicyGatesOfOlympus) OnPlayerEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + playerEx := &GatesOfOlympusPlayerData{Player: p} + + playerEx.init() + + d := p.GameData[gatesofolympus.GameDataKey] + if d != nil { + m := make(map[string]string) + json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } else { + m := make(map[string]string) + //json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } + + playerEx.SlotsSession.SetCoin(playerEx.Coin * gatesofolympus.NowByte) + + playerEx.Clear() + + sceneEx.players[p.SnId] = playerEx + + p.SetExtraData(playerEx) + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + + s.FirePlayerEvent(p, base.PlayerEventEnter, nil) + } +} + +// 玩家离开事件 +func (this *ScenePolicyGatesOfOlympus) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + if playerEx, ok := p.ExtraData.(*GatesOfOlympusPlayerData); ok { + playerEx.LabaLog.Save(2) // 没有收到结束消息,算2秒游戏时长 + m := playerEx.PushPlayer() + if m != nil && len(m) > 0 { + b, err := json.Marshal(m) + if err != nil { + logger.Logger.Error("OnPlayerLeave, json.Marshal error:", err) + } else { + p.GameData[gatesofolympus.GameDataKey] = &model.PlayerGameData{ + Platform: p.Platform, + SnId: p.SnId, + Id: gatesofolympus.GameDataKey, + Data: b, + } + } + } + } + if sceneEx, ok := s.ExtraData.(*GatesOfOlympusSceneData); ok { + s.FirePlayerEvent(p, base.PlayerEventLeave, nil) + sceneEx.OnPlayerLeave(p, reason) + } +} + +// 玩家掉线 +func (this *ScenePolicyGatesOfOlympus) OnPlayerDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.PlayerEventDropLine, nil) +} + +// 玩家重连 +func (this *ScenePolicyGatesOfOlympus) OnPlayerRehold(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + } + } +} + +// 返回房间 +func (this *ScenePolicyGatesOfOlympus) OnPlayerReturn(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerReturn, GetSceneId()=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + //if p.IsMarkFlag(base.PlayerState_Auto) { + // p.UnmarkFlag(base.PlayerState_Auto) + // p.SyncFlag() + //} + //发送房间信息给自己 + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + s.FirePlayerEvent(p, base.PlayerEventReturn, nil) + } + } +} + +func GatesOfOlympusSendRoomInfo(s *base.Scene, sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData) { + pack := GatesOfOlympusCreateRoomInfoPacket(s, sceneEx, playerEx) + logger.Logger.Trace("RoomInfo: ", pack) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO), pack) +} +func GatesOfOlympusCreateRoomInfoPacket(s *base.Scene, sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData) interface{} { + //房间信息 + pack := &protocol.SCGatesOfOlympusRoomInfo{ + RoomId: s.SceneId, + GameId: s.GameId, + RoomMode: s.SceneMode, + SceneType: s.GetSceneType(), + Params: common.CopySliceInt64ToInt32(s.Params), + NumOfGames: proto.Int(sceneEx.NumOfGames), + State: proto.Int(s.SceneState.GetState()), + ParamsEx: s.GetDBGameFree().OtherIntParams, + GameFreeId: proto.Int32(s.GetDBGameFree().Id), + //BetLimit: s.GetDBGameFree().BetLimit, + } + + //自己的信息 + if playerEx != nil { + pd := &protocol.GatesOfOlympusPlayerData{ + SnId: proto.Int32(playerEx.SnId), + Name: proto.String(playerEx.Name), + Head: proto.Int32(playerEx.Head), + Sex: proto.Int32(playerEx.Sex), + Coin: proto.Int64(playerEx.Coin), + Pos: proto.Int(playerEx.Pos), + Flag: proto.Int(playerEx.GetFlag()), + City: proto.String(playerEx.City), + HeadOutLine: proto.Int32(playerEx.HeadOutLine), + VIP: proto.Int32(playerEx.VIP), + } + pack.Player = pd + } + + //get data + Response, err := slots.SlotsMgrSington.Enter(playerEx.SlotsSession, int64(s.GameId)) + if err == nil { + data := assemble.DataToCli(Response).(assemble.TableInfo) + pi, _ := json.Marshal(data) + pack.PlayerInfo = string(pi) + if sceneEx.BetConfig == nil { + sceneEx.BetConfig = &data.BetConfig + } + } else { + logger.Logger.Error("slots enter err:", err) + } + proto.SetDefaults(pack) + return pack +} +func (this *ScenePolicyGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + if s == nil || p == nil { + return false + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + if s.GetSceneState() != nil { + if s.GetSceneState().OnPlayerOp(s, p, opcode, params) { + p.SetLastOPTimer(time.Now()) + return true + } + return false + } + return true +} + +func (this *ScenePolicyGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params) + if s.GetSceneState() != nil { + s.GetSceneState().OnPlayerEvent(s, p, evtcode, params) + } +} + +// 当前状态能否换桌 +func (this *ScenePolicyGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if s == nil || p == nil { + return false + } + if s.GetSceneState() != nil { + return s.GetSceneState().CanChangeCoinScene(s, p) + } + return false +} + +// 状态基类 +type SceneBaseStateGatesOfOlympus struct { +} + +func (this *SceneBaseStateGatesOfOlympus) GetTimeout(s *base.Scene) int { + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + return int(time.Now().Sub(sceneEx.GetStateStartTime()) / time.Second) + } + return 0 +} + +func (this *SceneBaseStateGatesOfOlympus) CanChangeTo(s base.SceneState) bool { + return true +} + +// 当前状态能否换桌 +func (this *SceneBaseStateGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + return true +} +func (this *SceneBaseStateGatesOfOlympus) OnEnter(s *base.Scene) { + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + sceneEx.SetStateStartTime(time.Now()) + } +} + +func (this *SceneBaseStateGatesOfOlympus) OnLeave(s *base.Scene) {} +func (this *SceneBaseStateGatesOfOlympus) OnTick(s *base.Scene) { + if time.Now().Sub(s.GameStartTime) > time.Second*3 { + if sceneEx, ok := s.ExtraData.(*GatesOfOlympusSceneData); ok { + for _, p := range sceneEx.players { + if p.IsOnLine() { + p.leaveTime = 0 + continue + } + p.leaveTime++ + if p.leaveTime < 60*2 { + continue + } + //踢出玩家 + sceneEx.PlayerLeave(p.Player, common.PlayerLeaveReason_LongTimeNoOp, true) + } + } + s.GameStartTime = time.Now() + } +} +func (this *SceneBaseStateGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + return false +} +func (this *SceneBaseStateGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { +} + +// //////////////////////////////////////////////////////////// +// 开始状态 +// //////////////////////////////////////////////////////////// +type SceneStateStartGatesOfOlympus struct { + SceneBaseStateGatesOfOlympus +} + +func (this *SceneStateStartGatesOfOlympus) GetState() int { + return gatesofolympus.GatesOfOlympusStateStart +} + +func (this *SceneStateStartGatesOfOlympus) CanChangeTo(s base.SceneState) bool { + return false +} + +// 当前状态能否换桌 +func (this *SceneStateStartGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + if playerEx.isFree { + return false + } + } + return true +} + +func (this *SceneStateStartGatesOfOlympus) GetTimeout(s *base.Scene) int { + return 0 +} + +func (this *SceneStateStartGatesOfOlympus) OnEnter(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnEnter(s) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + sceneEx.SetGameNowTime(time.Now()) + } +} + +// 状态离开时 +func (this *SceneStateStartGatesOfOlympus) OnLeave(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnLeave(s) + logger.Logger.Tracef("(this *SceneStateStartGatesOfOlympus) OnLeave, sceneid=%v", s.GetSceneId()) +} + +// 玩家操作 +func (this *SceneStateStartGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + logger.Logger.Tracef("(this *SceneStateStartGatesOfOlympus) OnPlayerOp, sceneid=%v params=%v", s.GetSceneId(), params) + if this.SceneBaseStateGatesOfOlympus.OnPlayerOp(s, p, opcode, params) { + return true + } + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + switch opcode { + case gatesofolympus.GatesOfOlympusPlayerOpStart: + playerEx.Clear() + if len(params) < 4 { + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + return true + } + playerEx.BetSizeIndex = params[0] + playerEx.BetLevelIndex = params[1] + playerEx.BetLineIndex = params[2] + playerEx.BetMode = params[3] + needCoin := sceneEx.BetConfig.BetSize[params[0]] * float64(sceneEx.BetConfig.BetLevel[params[1]]) * + float64(sceneEx.BetConfig.BetLines[params[2]]) * float64(sceneEx.BetConfig.BaseBet[params[2]]) + if needCoin > float64(playerEx.Coin) && !playerEx.isFree { + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled:", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + return true + } + + //playerEx.SlotsSession.SetCoin(playerEx.Coin * gatesofolympus.NowByte) + //logger.Logger.Trace("=============init dif coin", playerEx.Coin-playerEx.SlotsSession.Coin()/gatesofolympus.NowByte) + + //get data + Response, err := slots.SlotsMgrSington.Play(playerEx.SlotsSession, &base.SpinReq{ + GameId: int64(sceneEx.GameId), + BetSizeIndex: playerEx.BetSizeIndex, + BetLevelIndex: playerEx.BetLevelIndex, + BetLineIndex: playerEx.BetLineIndex, + BetMode: playerEx.BetMode, + Ts: time.Now().Unix(), + }) + var gameEndStr string + var data assemble.GameEnd + if err == nil { + s.SetGameNowTime(time.Now()) + data = assemble.DataToCli(Response).(assemble.GameEnd) + + data.BetSizeIndex = playerEx.BetSizeIndex + data.BetLevelIndex = playerEx.BetLevelIndex + data.LinesIndex = playerEx.BetLineIndex + //data.BaseBetIndex = 1 + + data.Results[0].BetMode = playerEx.BetMode + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====TotalBet===", -data.TotalBet) + //第一次触发或者正常模式 + playerEx.AddCoin(int64(-data.TotalBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) + playerEx.totalBet = int64(data.TotalBet) + } + var taxCoin float64 + if data.RoundReward > 0 { + //税收比例 + taxRate := sceneEx.GetDBGameFree().GetTaxRate() + if taxRate < 0 || taxRate > 10000 { + taxRate = 500 + } + taxCoin = data.RoundReward * float64(taxRate) / 10000 + data.RoundReward = data.RoundReward - taxCoin + playerEx.AddServiceFee(int64(taxCoin)) + playerEx.taxCoin = int64(taxCoin) + playerEx.winCoin = int64(data.RoundReward) + } + pi, _ := json.Marshal(data) + gameEndStr = string(pi) + + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====RoundReward===", data.RoundReward) + playerEx.AddCoin(int64(data.RoundReward), common.GainWay_HundredSceneWin, 0, "system", s.GetSceneName()) + //免费游戏结束或者正常模式 + sceneEx.StaticsLaba(&base.StaticLabaParam{ + SnId: playerEx.SnId, + Gain: int64(data.RoundReward - data.TotalBet), + GainTax: int64(taxCoin), + IsAddTimes: true, + }) + } + if data.Results[0].FreeNum > 0 { + playerEx.isFree = true + } else { + playerEx.isFree = false + } + } else { + logger.Logger.Error("slots Play err:", err) + } + + playerEx.SlotsSession.SetCoin(int64(data.FinalCoin) * gatesofolympus.NowByte) + //logger.Logger.Trace("=====================end===== playerEx.Coin===", playerEx.Coin) + //logger.Logger.Trace("=====================end===== data.FinalCoin===", data.FinalCoin) + + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(0), + GameEndStr: proto.String(gameEndStr), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + + if playerEx.Coin != int64(data.FinalCoin) { + logger.Logger.Error("==========playerEx.Coin != Response.Coin==============", playerEx.Coin, data.FinalCoin) + } + + // 记录本次操作 + GatesOfOlympusAndSaveLog(sceneEx, playerEx, data) + case 1000: + playerEx.Save(0) + } + } + } + return true +} + +// 玩家事件 +func (this *SceneStateStartGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + logger.Logger.Trace("(this *SceneStateStartGatesOfOlympus) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " evtcode=", evtcode) + this.SceneBaseStateGatesOfOlympus.OnPlayerEvent(s, p, evtcode, params) +} + +func (this *SceneStateStartGatesOfOlympus) OnTick(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnTick(s) +} + +// ////////////////////////////////////////////////////////////////////////////// +func (this *ScenePolicyGatesOfOlympus) RegisteSceneState(state base.SceneState) { + if state == nil { + return + } + stateid := state.GetState() + if stateid < 0 || stateid >= gatesofolympus.GatesOfOlympusStateMax { + return + } + this.states[stateid] = state +} + +func (this *ScenePolicyGatesOfOlympus) GetSceneState(s *base.Scene, stateid int) base.SceneState { + if stateid >= 0 && stateid < gatesofolympus.GatesOfOlympusStateMax { + return this.states[stateid] + } + return nil +} +func GatesOfOlympusAndSaveLog(sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData, data assemble.GameEnd) { + if !playerEx.IsRob { + data.SnId = playerEx.SnId + if data.Results[0].FreeStatus != 1 && data.Results[0].FreeNumMax != 0 { + data.TotalBet = 0 + } + info, err := model.MarshalGameNoteByROLL(data) + if err == nil { + logid, _ := model.AutoIncGameLogId() + playerEx.currentLogId = logid + var totalin, totalout int64 + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + totalin = playerEx.totalBet + } + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + totalout = int64(data.RoundReward) + playerEx.taxCoin + } + playerEx.Cache(sceneEx.Scene, &base.SaveGameDetailedParam{ + LogId: logid, + Detail: info, + }, &base.SaveGamePlayerListLogParam{ + LogId: logid, + Platform: playerEx.Platform, + Snid: playerEx.SnId, + PlayerName: playerEx.Name, + TotalIn: totalin, + TotalOut: totalout, + TaxCoin: playerEx.taxCoin, + BetAmount: totalin, + WinAmountNoAnyTax: totalout - totalin - playerEx.taxCoin, + IsFirstGame: sceneEx.IsPlayerFirst(playerEx.Player), + IsFree: playerEx.isFree, + }) + } + } + + //统计输下注金币数 + if !sceneEx.Testing && !playerEx.IsRob { + playerBet := &server.PlayerData{ + SnId: proto.Int32(playerEx.SnId), + Bet: proto.Int64(playerEx.CurrentBet), + Gain: proto.Int64(int64(data.RoundReward) + playerEx.taxCoin), + Tax: proto.Int64(playerEx.taxCoin), + Coin: proto.Int64(playerEx.GetCoin()), + GameCoinTs: proto.Int64(playerEx.GameCoinTs), + } + gwPlayerBet := &server.GWPlayerData{ + SceneId: sceneEx.SceneId, + GameFreeId: proto.Int32(sceneEx.GetDBGameFree().GetId()), + } + gwPlayerBet.Datas = append(gwPlayerBet.Datas, playerBet) + sceneEx.SyncPlayerDatas(&base.PlayerDataParam{ + HasRobotGaming: false, + Data: gwPlayerBet, + }) + } + + playerEx.taxCoin = 0 + playerEx.winCoin = 0 + + if sceneEx.CheckNeedDestroy() && data.Results[0].FreeNum <= 0 { + sceneEx.SceneDestroy(true) + } +} +func init() { + //主状态 + ScenePolicyGatesOfOlympusSington.RegisteSceneState(&SceneStateStartGatesOfOlympus{}) + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + base.RegisteScenePolicy(common.GameId_GatesOfOlympus, gatesofolympus.RoomMode_Classic, ScenePolicyGatesOfOlympusSington) + return nil + }) +} diff --git a/gamesrv/main.go b/gamesrv/main.go index 5a06e0d..f1764d5 100644 --- a/gamesrv/main.go +++ b/gamesrv/main.go @@ -36,6 +36,7 @@ import ( _ "mongo.games.com/game/gamesrv/fortunerabbit" _ "mongo.games.com/game/gamesrv/fortunetiger" _ "mongo.games.com/game/gamesrv/fruits" + _ "mongo.games.com/game/gamesrv/gatesofolympus" _ "mongo.games.com/game/gamesrv/iceage" _ "mongo.games.com/game/gamesrv/richblessed" _ "mongo.games.com/game/gamesrv/slotspkg/slots" diff --git a/gamesrv/slotspkg/assemble/difgame.go b/gamesrv/slotspkg/assemble/difgame.go index 721eec1..9736274 100644 --- a/gamesrv/slotspkg/assemble/difgame.go +++ b/gamesrv/slotspkg/assemble/difgame.go @@ -12,6 +12,7 @@ type CustomFortune struct { FreeNumMax int64 `json:"fnm"` //总次数 FreeNumTrigger int64 `json:"fnt"` //新增freespin ForceRound int64 `json:"fr"` //第n次 + ScatterWin int64 `json:"sw,omitempty"` } func getDataByTheme(NodeTree *shared.LiteNodeTree) (map[int64]*shared.SpinLock, CustomFortune, int64) { diff --git a/gamesrv/slotspkg/external/ExportGoConfig-mac.sh b/gamesrv/slotspkg/external/ExportGoConfig-mac.sh new file mode 100644 index 0000000..9b911a2 --- /dev/null +++ b/gamesrv/slotspkg/external/ExportGoConfig-mac.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# 检查 "external" 目录是否存在,如果存在,则进入目录 +if [ -d "external" ]; then + cd external +fi + +# 检查 converter 文件是否存在 +if [ ! -f "converter" ]; then + echo "Building converter..." + go build -o converter ../tools/converter +else + echo "converter already exists." +fi + +# 执行 converter 文件 +./converter go /excel ../internal/exported/excel2go .. + +echo "Done." +read -p "Press [Enter] to exit..." +exit 0 \ No newline at end of file diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d7734ae818213edd165f03de38192ac9b2ffcd39 GIT binary patch literal 14341 zcmaib1z29YvNrDS?(Qzd-Mtit;_mLnt+=~ead&rjcZX7}xc|`JbN1Q2``kY~&$n2~ z%p`e}$x0?O@>0McPyp{KNOqh5{rRs1`Sy>2wZ6QawT(T!{2Lj{TL#20GGUF8Yz067 zfPNqV0EGV})3vdobFs8Yj~SB$W<&|N^*v)S*eF1wR%B9oqNbxlD?QcUm&Hz!5Il7> z@kC>%1KH?|x7P0(U|{WV{-OeDEyfbHToB1+ilJA_`FG`rs-jgT1*ji zDbS`(O9f5e(qXy$o21~FKvIfoUcqOK@3(3W^oZXUlj5h%O(}X+>WzvIRtfJ7o^O6$ zyj@6tkm#IgVhnjtn^c5Z9#OiZAmM^xunbF7xH}px7BHhTJzs-xq^&~I%7(s%}eeP-Wg{`w)9G0`u3bl@%r**2>tKy4__IKiN3+F z{RThcf5NYCZD;t7zh{hsoF4;9z=q5deBRk4kQE(lrSMpWrXG>#j>gP7BN45PhT)St zv_+%Hj{X_vZOg$riw3>{vWHKVV~HJ#7zk*V3$>Z@-eLZ#KQ)T#K-_1U5&|(E)mpmp z3Z`;OYgq2&Pky$ni=DA?`I-kNXK4i(8tvdi7Q48^VJ-9G`%g0;RheJ9s5&7DrD(bs zyKs7d8D^Ogaie`F#Gg%55D7Q}!AK~KZE^bU297($AB}s8(l`xI+)kW7^z#@)^M=$s zem-7Wbkv&7*N4gE>$hGRIIx|o{M1v%kwt`@W(Pc4SAcP|@SHt#u4c>exuoTisKU*C;Eh z!JVtukg%v;LJ6su>C`x~5$0`3`L9j%-oh8Ke+T_xif@wQ4Rp9S(2@TJx}&{=wdFhP z`Oy`yFSU+WJD2PKZ~0BZY{ky2c3#^VvL^=MW4 z3%SPDrw(s7n?)<5`lO&L^G2t`T&>8Nu&NKl97GHR?Je2(y(lvvoL2~bog^+3iR9-aeNyg5HJ7$jQ>UZi-qxhsKP%ES*c?QMh4?_DM5=8eT->%cle!mfss0P;$C}&O) zg(Q`?*9vw^o!aQYD{q(A!!3a(bA-k81eLO0$mA9BSEszb3Ib{ z$&_{|{1$3pU6Of)F^TO=I*iNF59v&#Rg)4ablb9R*=5%R_KPuvjL=L#Es6xaeb)s| zLL0v!9!SbnbMXdrkW<(~%atNai{4|uPz9gqV+_sq8rc$9`>*9H*}#!x+7(bf%2#FN zV8dV6^G7^nr|`I6AWTk7WIRSPYrSs3H$uOX;X#ww=y-IW*976@jUE~?^;F%X^FLz| z?f}}io?hU0Cvjsb@((#p@2S6_29z+l3AwMxt$Be~mEnvZ(Fg*y*(=VTU;J|FWu((6plZB>M0zI%{{Fj`LwFf zr1&9b#s5@oz*Gw?V&4#4PK1FJv-gbmi-?o&j1eK*knU6oBZBc|4 z=t{T-;ObIt^dPv7E8P%GYYkDI5X7K<6nZfmF?Y;rGdkNgjA5Hx5aMk^!C%FnAl|8Y zlFX3I7B2Vu7?&+|(wZ1%V>>&+!~+Z)tgLunT~Yy{DReO3y7^FXa!N>8z$H7wBA`@4 zP_|6t1{AF}c=ar6s=zBRV_RKKd`{A15N|6#1;Z0V6L~?awjRwGh+jWMKaMr$E|yZB zsn(@9##Ds*RT{Q5z=aXE;|nE|%}OVM>9_lgwVIsZ3vxSH$EyKR#xn$>E5?VjAeYE` zs|=E1RaxhNcJw~$j3djh=y#tV=~5=XTGwO6V1ny^?UhAu)zewZK;8Uo=g(hE@de8H zqn*+YM*P*>-dQjSRR1${?(Fa!7&m{~W07N!@y@DP?3b$w_B8=8Y}|~pNA9Fs`oneX zsqEPKw^y!YkcDUSK^_Mr)h-!W5^72;kW1iNc~;h%L>e&$mtw|sUsMw1^ESC0<;I{3 zi4||>{+@?>H0BK=kZ)psyuc=vZUg3LCOzwzk@^k`+YpwLN8IL>ZdZ38mfR6j_8Z#} zu+45P7rtNSatnJRVl(s$cMar)j7b#=PZZ#01ZHP*f+J5^%*&=o=PjaGYf7geOX{=@ zlG8UeZ<-7piT8fm%@2v7eY^)S*HtU@J1AxTa_=8`MO0}F+u3OW<+7cwX;g;klo{3v zUDG|=!+X@~;TTe`ND3U=q;lkfi#EwF>7+1JD&1_KT#5G@iS?YmMo5~bc-|`YOuhEefH&S~1 zC$$Sv08%m>l7c^7-K7Fu&)yJ6*e=X2V@cM}dwDIuM&B-;i?m}Eu2nX|0(V)h1p%#M z0?JexFtBLX!K*a^Qw59S0+*V4=5vCcu@8HjImvD$YG^yy)y<^HFtGI_*5hWZE}}-` znf@+pusSmsVqpDt2^hDC0V~mKRosymP9On!FY4c1!3-7|gC=NS*XM`)gegZ32^XA+ zUVD_zivgOIUK!|N8Iq8?!oeVf32rPKxf^mw@!=S9puyTFd7u`?Z z^oy(qI=6Ru#-lQTy3aVNQ`b*ak zKFir%`0!Xc={Bp7C&t#{+bCscgxul#t?6Lqx5NT z{%x^J6+v{8Pg%+6EHzo$+c@@9(fBO4zWZpiQaFPm^oy2GPnSe*!$@ySfPQkq$A~Vu z0<5n7>$QzRs@H<-fKp&F&Vt^qh|EKGdoY0Yv(angkqGQaz=79DNXH?eg=$-oZqxZT z(1^~SfrZ+ymw-A5_r`^a5X0-7z`gD~od+wlwZM~`$k5Y8XDa8`j}*q3r4bZKJy=mz zTu$`rADyOnAYp^TJy&~tCO$`o03D`5X0MKSEc#0{{Knl~EJ8Qvaq*zU2S)+r{#(Q1K}m);k92$`zii=VTdczK|$mXy7SG9BH|w)Cb#gO?J) zYsr4Z@4&sOS+L?bd)WCfaxh{skK6FPb9&c0{&Elh*b`*ogtxMz-*OhY_TjON%b3sV z47a*TV7bL$3t-3 zn=rkmRyCaEHO3tn{Gg54TyM8!%a(!-FCK@1=vbJwc3g?qdqd|Ba!c(zFXbMQLhjjh zvTkv`ffbsUd&+rdl`C-1P2N}sD=(FwO)sd<(44zIz^_m!v|6(hq?9kxF z<{)?cL+RxrQ8{@E6#r+1mNRF`ZA}&5bG|#)u~mnTG1-JsIVA7xGdlWx;ecbk!%~Z9 zgJXmK{Pc+Vz?Ap67V-0d+|K$8PS`QY!!t|vb@=5agZqz+<%-9u)7#f|o(THmA9SgU z8;>JG4enl;#r7qxdofmzJce1`#zE=khZasI9rp{+k>iP%lCOp}WfkEh6Qq#v^adPl z!{>Ue6W1HgL5WOh+J#HjFOggEFog@IcV^n(JI=;4#Qmc@Tr?;G{E@~^B*#gE{}~|J6!Tpo8ryOMKo(e2MP0J{rx3U zIC2_AX~dV6@z?VGd2>`e_Z+hptX3f=6N3mHaeyRJ&O|^SieQl*g0-)ew|4u(0X(hE zZ>5Tm2`SE72z><2;!3)oZrs8kbx7C!k;<^QNt)XZ9=5C@yc7tMEb_@7ZPLx-El9HM zH9eV{B@~bMHH`a|kK`cmP$1&gN#fUC@+av7DRG%})6KRBEn_%KQ?1kQ{T3Il$ib|q z@!yHa;+whdn|+os3r09sr_?zpWcDkq+W9Gg^FR9V7uWb5F}Suoo~|8(VJ$Lfjq~}Z z{7VqM{4hVIGJ(9LSFF6-L43Csn{+n0S%J+@)*+brF|t&u~3<(LQx@6xq8GYoOC#~ z*_~DO`)wNMuF?lY#N1*fN*@DJPCpQ;(+{{HeV4&j8>jQvartV)!TFt%TT?r>KY;=2 z)Bc{!j({GL?~GSM7-rXzp?{B4X`v0usM@BNYN%+}aF1{$k#4|D{eDMwtCd~S2t?3& z`Fr^|SjJleK&h#byF&eaXHG>s+%=W<84{B@9L#xaKaQGa`O%2v>KU5ms7A}%F7Mef zvLua2<4Eer;h@@MofAk+6{#ktQhXwj*UUSKsH|WdH6(+hE+&Ty1r?gn=+06N{y@P3 ziCTD4{yB44myX$1Re}}=Z5kpFui9Usiiy3vs<)S1B)XofyS@L=8969^7I^@x@MK&L z%L5cC$NVW{4b`-T_y=lF^5^xf>s|%h<V&>4wiFs0>apa5#sbGkp)uYhqPOu^~)gp!x(y{ys{DJQbg7 zs3tG{6DwofLgDjSeYbk6-uhz4p-?Jb#Bt&ZnyL)=Z04V6lX*;u_Xg4-;X6p2X}>@! z;EAl{T7z0-7Ig{GV(jzN>$2Ha{RLAb>o3^`6VzD=qAs9s7)FGW$^_Gj8 zK`R@1Ris}-i6>%{gu`btRI1hD4_&+Ygjo~rY{FQP;99znMEi!f^7=#lS!La|De=H$ zb^SL)LT56_w<@t|bU&8j$fCTd!+Y5)C}g;)|G|iOHB2WFbKuEmN?6HHXyh@dkfen& z6$TAd+05bR9+-|y@L%pkw{zRjoA5xJMGh}zqWSIOop`!WJ*Wke5i@qsr_|}P47wJF z{j-M!;|yd3hfG&W7AwxF{oe}J&6*G-_PG~FP{Lz~H)50ST8pOJ#THdChxPprqA!L5 z#F-Adv~Oy_*ocHx?s;}fru)Sfr2>CqY`N}w*a2b{C;#+snMUfT5*sIH452DauRtRA zdn>&v6{g5ZfQ~j82kvWllN~>G5kklaIb?cVviNX5l8>mp8K6!l9247di$}36Av-AX zsNTn`oLvD)Poy6U9i6rt*#sWyB__LEOU0HAB_rj6i7(4d5YvO@(d;On$-^p9FqYob0lC`kQEaG4(BSSl< zFmAuWp%Lb36Tv%+JoU*QE%PxtBlf4Y&Y@ae1fGfNIOSdO*}xGn&(Wsc%W}AmT#b_Z z_dp%z*L<;^qN4|0F}eKvpsD$#V*LK>weV9PU|Aziw1>t?~{J-yYn#t4vG~P@~ z0igeNufzJ=q$Fd#!T{3-zvzwNP{D`PpykIQa$LUn1(qVvGYvI4B0w^MoYMC3Ol+vi zxR7%eT!X0Z_D+2Gcmz#0jV<~0wEbQ(TDoxv( z$5Z8Lt!q8&7vkW_#kBeHx)P51R*@t6`-#;Hj> zUBh+1>=H>Emr0L`EL)ynz#*J{YxAjPz>|CrbZt}BAoU;*GD_a73`F{|_1!`c_T}%x zBAO+QawlcOsdq*NN*C<>#-aI1uImlx5UV+jWl`O2U`;}Tn=d;KTIh~t;V$;0dWuE zblU!9aSrZ)C5%b(YF%Qglbz#>u(52SJ+|+z!`4t!!l1u(jz7M=B#JxaM!B&>EJZ4B z+_`*}K9Z^YWG)D9drWHG6mA!#5XTCWH~91%l6m(pBT{kSvunF5u| z(NI$tH=Ym1y^EL3y-Q0-xAT1xd$z5feACEJUL21F^%me8$x9*qNRX&zk~!v*(tNJE zCl1)9iE$QnJz=ar%$_;`+4w@_W%KK>**N^#&KNPCJu$qqQoaAX!Swx-=FMR0U}9)# z_{Sy9)fLo+)tecV2m80d`rl-~h<{l@Pt@eBSJ+TG;1`_<-fY<9_1NH!p^H_iWir^k zRzY~C$qA}TIsDTSp4iJfUjTcWbrS(wP8ckxCxKcVGRZW8%77nGZ^R|5F-D}O!LaA& zf`o~@Jzh6F-AtX2^mLa8iOl+RS-Y+1K|U%1uM^gn=>Nq zX1S67N=)GH&Xmn7AS5%rG8}x1(b_Nh9WXP*hfF376^tumo<(rnFcH!rSZxKESKo_; z1U@bZBLRwRS$poOb$EUbYF!$gu};rYS8L;G+VRNu!eQ(jrHjH?{dhq`#mVjgtaFyB zeBs#9y)G>S@bd<^Oc{+x%JqwAS?mN!mxw9 z^NHu!b4H%-V_n!$ee4P6*W*qND-P#i1{Y(b9A9tk zn8;m}sBn(PE(Gp5gadP+Eh#y%Z98fYf|4;PoR1UaQ3e$5W*MiEVI!PvxU&lX1qHBn z=9;qsuD@P^3FHB`?k>PBhcPalB&?0lC6%fRN0^`8zTT%^+|M4W{Vieo19fd`K+4R} zk^?tuQ5<@w%sA9IQAree2X}E%NGGQX-xnPtAAF^F6%O%4aHXYWnDU6pqtL>fOhLSo z6OUlZoh)jc(H%LcXWW8tn#IK-MkW36k@k}=K4ehh#7E<72cyDzA(vE24|ZwZiD=4E zojdSjh_x|BS6hr(0zROnc>xQxQ8_;1rHauhQhcDzbw#$<7Ct>UW$#r`48)z}pwZ)t zQi4$UdecPZcV^2jbj5WCI6%GTnTRy7R*3G)#bP6@4icP^40$3&F)RBVZt~>Zm!weC z&jz-Rx>Mf(tD&SO`6Gj(tHkEDtGmU|_=49*RcGC0eQwR!al!rg`1G45uX&voifU0? zvumYi)lp1tyv$F3CN_C{Q7g$Aa;Zg{eou_q<59rq-Jk*z|AE>@u15aPHDHkCyg5`j z{v1AdE&HZKKGG84NTizGOXDz!)AKHeGx0o_Y*)!$^S~iJqv_o)2f6P5kCR#PSe2oAM6hh;c&%;#;` zy1ss`TRQX5kr$%~J&=v2G%0Wnbzo`B(g#kdHxHn`9;2p?@SEncAQ zie6XJYFMPzdy3_7CjlU#9;2Z^2_NMXq_5HiOA}7D5=f*VlY^;(sgbE~f^m@8W?3tX zZ=K)+5WW|rI-9WGSeNHce2PY?y4bILJ1^W66ojX_n4#da@o#(+&si> z+|FbqrL_cJet`b_w#stt6BO&)eX8x-*6Q7};O+BdZ=!2wXrSa^XKH0^|GuSijOmi> z;YSEO^F2dgGj1spr;N!1?;@YHUnH9`B1|qzwk&S{f_hQlf>i8#qlnUK!taq>FxS9P z=Vmj5cl&r}{E9no3Kz5ZT}Vx^k+Z|}m$znR1pH9|4@ve{=FHN`1&L~a=7dhF z(?8U>QAD~`Hh|QDUE;)K1+$aU(N>mLfWs!Pr8bGtvd@w#J9 zh~CcJhOyf5a;6$blA8K zhOg}%(ZA2nwm>ui%JJj_JNDzF$yLm)T)WBFP>PIQp4)7=dVrC_qj&S<8}qukVl?@b zk)~uEce}7CP1v3KWTcy0)RB{N#>d{7VAS52aC-@fjBZq1ouDge6q4s7SF1Z z1a!z)%Ghx@Nn?_w3h*h-C5-VGVL+Xt123mWgv6XvZI@Kb9yCd+gkg&(4nyk$9;-SP z5-t5o#S@ksxJXXB8p_iO{-HOfg=nz~M(&YzfcWOn;-|uPf8!d%V##gelDd1pewDXg zm8|Ess};P)r@nTel>)52RlFNkUB#pLsz?UCDe)Q=)fr=pmLWr(!$g^G?me@MX#tZ% zz(XTh=(LcjrUAt@IyBzTccf=Kiia`&cc_n`DmbHF1#!F;6!tCwKSFo(2FCLeDDOg9 zBq%q!(~47}R?tUpz(+ZE7EqgwaL85Ct9cAR{E!f?IaE+LqI|y98aT!V!MV~rva557 zx!-l3JOY(1Ib&VU#%5c#+AswXXjnUx?)h{O#+5$$VJmaynG2(DcOPk=CPpwsn4LI! zW$wA9Y1nFlZi)X|b{iTKmb%U-Byix6GwGwxj^?WbgQ{$JJn^Gp52o^&!d;5uJ@umws8dg0gLP7l@iu7=-;Q4pXV$e z>D$#jvK#;a?Eh%3gR6z%FLj;M)QDW^NA;qgeC3}s!4EYf)pl4Zoxe6qED@e@va+Gc*sgklnbr zP>8HUwv&%m=ysF$LE6@6l)H*tOS#?14S2*tN%69*fbtLR8FS7ySsBmE!1$7)VFHsY zb=ZaDCD!Xvydss`j{ER70h|5h1vv{Y`7a{Y@=9{PSskep@G0a@4UCHy4^HsyrtV%1 zh@D~`vG`Y>EmK$sIpwJf&;g3=D>iOaJC!Sz1-jFgcYK&P_A(VK)*$0mJ0H3*_wuRM z_D@UFGY;4zwB)a6D@4<_Yyuq@Odr-e&B3`ksm|(FWM?v_O9}|RHm6UI9-FnLB zV8JA3uy1@*%=!yaZpKPzIf{#+n43@Q_`_3&o#UuC+U)Xelw1RFUMYh3JRi%l(OYBm zUk_0?T8fMA#ZmT4580SdAj21R_O3X&c8R(M5>8HA+Q4otTQzHpBEt%ipRwoBfdn`~ zFmx+eI9&b_I@MQ^$=4=V@xk;CSR6^zBxx5%Ci;B19QX?<`K2`2BNvH^MBaV+PKuct z=v@_!V4b{yE+r5(L8YJ?t<)yYagygq?I}h}jUWef7qjBf^fcH+*EGV%?#+1GpQ(}t z!<&%%s4A8j1mVqA@#83YgvNoc4ZD+L0{Oa_pPGczT1rvGnP__<5lu?r$OjX%`H$7_ zD=TM7bUtT`cqbf9b6#jESy1$$ zXEtl9%<2gM{3?yJ5DuOfD9}%3W8@7FHsEt|OLLdyKfpfzz@T{4#gUPxnW5FN`8{HT zW5!`wX&MoRd%+Zu_JiXG-cU2>JhwL4UA!P2jQmDeo|hI)omhcJrX+g1|N5(*B4mnKKii zR;G&oW@>Vrr~`7ZoU2HClqIS=C!b!o0dTRWSEV@nt+}|Y8N~nRf`O63nnhCdQ@B6o z(1v)@QI_%blIF6_UpXVxr>?qF6xJN0;xD4zUw5rZMjen$u9skH4zN$g{+(xz1=K0n zBii$eK>TF^hPiFXe`Q&J!n*5Q98!60R3EyNnfFB93gD{PgY1F-6MQRgQ^}PtK!WYf zt-5UP&NUVt&OUMIAz!xt9F1z@x8g2H8g7xx&MlemKC)gCz=N?;LYS14MZ6!=<3O@p z@|-21jCS>~y8x1%i72&N_F!77E-n~Sn!euI8WL@@Fb<`Ms99am1P`*9s&GkpHyL~Oc4kRC0C&xpZ8l7m0 z6ID47%BX9g=jCZe7|FQ^vJ-{Z3@_4tJS*wKv~0QGJx7D zo}eJNVj_TDj}_G?TWur@r<=pXZLpW(3D5y4Os4fkTR5NP!Si+$=roS~5d`S25O`VV z?!df!=E%`f`aJLq)QLF@n>hGq_#slY4v|fY0cj&73Y$hdkEL9RjKR&w6o1b0_k;6{jgnm0#X>ncIJo_ghcSJHYEj?tz{`^*Ff{xzEjS2 zc5$vM$y>1<6z9P~pc+Le&SRP5mY(%jf>+vh2ml$2h|KN~q-gft*X@43W;ZT!Gbt() zaA5vM^4$Vq<11B&I{57F+oKtja#|yc^yA4_vk;(i$OfilNt@Dq2L8dg1dK#M`|;8Q z!G`g;1di<`OK#PXA5M5*r6xIY;~~r;2QcT5L~t^wm%(UjR@~)#uYcU&l^Qy^!}q`c z%rmvLfs1j!{g@}Ot@{zf4QR;Ebyd9ctPWb8b*URQ+!APFC7|9+EH<@|#Bt2`x4BcXnPMO$8XSP0!iMVOVSK#6 zgl`@>f`g4AGm{6j1*W3n4ftqYI1$vfb*3*frv;j5zNf);s6~TUJnTo*+z~en(1Zt=1vY? z?AD9D+1>bQ3Z1bm7+MR90_+}B-Hmu;Ctu3m?P=oj;^b9yyA!92P*FM@k2kymy(Ew> zp!cvQ?9L4lwiyLBv0=mYW!F}kNKYV9Pxq?tAl7>o@M|OY%7xD1krJtHiL&ye}NnoJvN8V zVaERTUdD8X5bZ4s;Z;nbE2oNq!YWW6P0RAhjXY0J3k&r%r#T zxPa>QzsCN_O9{fJ6uKl_YQsikBtvP0+}6DmJjj|qD02m64E)k1DiKY60mV;q1y$J% zlb7_K`zDu-Qpz{&5OrKs*h(RERk-4f*)B|Rw_3La37t4LW!(B;6O4d>o)1sHvOWk0Ata9HQyz>MmlbC!JhK)~`Q5i1(M*Scoq^_OSPKl^sR*(w2a z>m(U+jM_T7Oz56jb-O(Zn^{byp?qUbRwFnp( z=Y*Xj@5q_6WKe0D5iP8UWL=fTk>dC~4N%J^#$iL3da5lt%4{_y>Q| zoa0v#rh(qw1Xo^G9dWy#v?b2}U%T)>!8vY)GYbB8@IHMz5n}z`!v7|FcdGr@x$qad zZE+)JJq!pUw*fDHNuIPTuC;N4OL2nrWsiW}cznUMm}6I49Thf&wgg3~o8g<|S?-ad zf-TQ-8zJ-#v+B77A$kZVP#X0GpU$H@c)5KD<_l)iS&Kdk`+7QgH@Nr6)@%sNa7CTd z1){Kw_SD3EWLY#1{qd#Wnd;bWOuJbfu9@RImLb-F#?d}rl$J}VP;n=&WM*chpWMsF z$|q%w%`jSCcNPy)L8QoZzAuAyCDEu)M}y41t$434Gk2m~G#g9zN8^dMleqdm0?Y%nn!{Yscd81|Kc>Z?n3FkhPVAp_PNqM^_s|d#(3F^;rCfRrfn?@elCP4a$01 z@XDw@BKRX{#aFm__uSH|Be$eHCWx*CsTD9_DK!A9z0Q8-aA~S`27hBMpt)SQ*((jOE z_Df^+)ECMq$w@{Z6W?tGN6BWIr8u`yDqf@en!7p3az}NzX=a8DjJ;h-zBGWt^R=wA z%S!F$ly?7K^B3#Ct^)tw_dhQK|Eh8HKiU4e8vL`#f7%iM5-?5ptKR>F?f+`@dj!Yt z^ghDzzeo6;`QPyze{cDp5gqTmzela>fARhm-|=Vj|8%zhONzzYI{r4t{-XuIr2KNd z|5M7Je#C!CS$LbB{~+a;SMi@x{&b%FOA5ssIR7B!mn-F;QvP&H_)7{3`aeqf<)k1l V1^T|t0ziHH!+&#Vm}Gi?`+t_qY&8G? literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..31bd28bd81e330e7a59591830579f257b3d9912f GIT binary patch literal 11115 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 C<8xF1 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b67124fa52db9dcc42d24a3981cc8fbdf4781957 GIT binary patch literal 12738 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 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a4f53ef52607c9ffca391baaf60d672667b60bcd GIT binary patch literal 10686 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 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..35ec79ae8ffa6a2982e144661d840b89c226934b GIT binary patch literal 18331 zcmeIa1yEf}(=NOT?jAh26C8p=aCdiicXto&?h=AKK?4K}8X(xl32p&`+ug}IC-$DV z>Q?>tR{d4?+f=R1^y+?krl)(R*PfXrF9i;P0e}L)0001Dzy-Hok2@FuPz(hCpaWo@ zXbIWbI-A%!>nVHKn>gvvyW3b36+k?p$^$$B@&C`~|6vP^BG;%nfW(jNJRvaW?jO$D?OI+-8ds7&%8$jbw(ha~|J*jcdn=N)a`Khf(L&s?l9G z!BO8;wkd`5%H?r8QV&&7CvT{iufZh3Lu6opN=$|xdA(rR{RaD_3$}0Fu1fm`rzW_W#LxUBt^{Hp((Sc#VFyO} z9fY~U-c6ldRmK}%SVKh7BD(Kw#0g(=s*(76z6wCw{|w-7baR;Scm};4pYZ(Mn$Dc4 zn$pq<83ggn7Xn=y;xC8dW$w&1r(3)pn%nLG_iJKp#OILpFsV8I68l6dPRba6gU$~=yBj9@kj?ZkcMQ^ znn7eo#`qqLDg9pmMS5IO>;0wZOXvKiXP#NrZaE(5=caXq?u95`u4pMDuz^{oQ*Ej} zQui$_(5Q)yqR|K9Jpm-vZ}!X2S)yq+^XJa_A}iJlg6YX0{jpudRQm#X-)dWMs3$vO zYkrkPenYOEyh#wcf-67D+BYT+!|eoKz<1St-Om0(rrKiI({8Akls2wJcq~riDsEnI z?~JWLHNTjwyTUZmP-_6e5v<=!BfgDCtbK(jSjAYw<|M@aULFiu0%!6r;z+ zJAFBIq|O;rPrJbY`ASK6N)$Pz60-0Wa>f#n?oSml=lsi3a_BMp(#NRTATI@1j@=yngUCHOaMS^5ISj)i zvMQ}|Eg*T%J5FWW|C0w4{GD7OBvGX%EiBn_koh5aGfH+gJ$7j`_byipo!?rIY9wix zk&P%03#*g@mh{__adex{uiqS~MFqV$Xy~Co9Yb>LRMZzZWN68k)E9zQ#Ex6YxiK?Q zF+z5PC2=kJD%Xb*QV)(6Xs`dCtlP;aMCM32veZ0jWTr27J^{xtc12p^R3MtRCXS`G z49C%(C~5pgeQKU9Rdl=)%*N+!%V%Ig#k-l$7eU*54B zp~OkzYUtu@zB@C%0+)1(R+FcS6KdigKz}Vf(TXKZ-hFSxbD$@DZ@zPJvk{Ny;>G*o z8M0xs&qsLA6Y~iI#85eus68^_^$(xD5Y=}uMC8Aa&dRl0@C4*4(|MJg>>M-9F0UX& z9}huUw=F#{w7Rc&YQ>ewO~L#Yim5LfyI_I62`^Z`%IcV4SQ@GN>)j6HWpz>oDC`XXg>-BMQG&?VovF66Ct?g#~2;!+>0j!y_*Ybn0m*MYpwfFPHv9EZ;GUA z)hE%(XD3+quUio=+{s)?*@m9rT?~`YUMfj)va&r`j=mya1Cj^%F$63-&Xu^dkLqM+ zG~>M-=cS9ZL}YhB9T`e?JgAHziCi#f^DVrV&Ax~Hw@D>Ht7QltG^rRs006iE7%)(T z{57xq8YlnEF<_u%5XAfc_NP6m+p?DtA@n$?Bj}@#LxSrPwu>iqkZ$u4m~_GW{0IU% z7p-MqiW=8|1RX(oD2b~_ezJMsk{d8w?yE9)IZ=cmin){8bd%y22X7yDsFxKs`FLgu zFJmFv4jyc8L!-CsBczw&VQ5k?u(ysxBtIZFWsuC~BPLH?t2)8>kaK6}I)^YvZ$y9f zVpj=d~H9TBEny9-bEmgKr0;58bhXH4CU8FK4BUJ zGRisi#C?4B%IzY5))^AFxKw{Kgga5Tn+(2}Oo=g5W8l3Hddfo`BkOymi&&=xCwEDA z7eYbKtiq>G8Q-h-~xKSzy@*rJ=i*#o0vE|F?|1G z`ZnrjB@WB(GoplEimemS9ph2viKOjTP1IN!2W6q8yKLkUv*^fvI39 z$MfOE*+3WNtXAb9ZdU3{604M=GkGu=&ri&kDdseGIi2)5ExzpOWv|N%TXMWi?&M#4az>#{T6_sV#>y~^q~tip|=+8mxHMc!K#q*x$w(!w}%@>XyOXgvry z&(-eaO@GV0bR$9jJfwbkhWI5j@Y0*cZ=^r!75J|5qehzbAby3(;yY5BM=h!Oop&E% zYliuIs*q}~+O%sER3!MPa;^NGo`!wp`1+QCD_a@OjpGdo(q6){ai6vDyz}JswoFg| zW28jG#^QpBG>>6A2JAD8aC3wn2hHB+R4S9VJVH`_&J)Uy`P^kb;O% zASWuZpUU^C5xz{IsX-Q$xiP_GYFhFsvxy^4de7fs#@B8Tw_~*;CoP+haB?Bu4`q^ZFS!gi5F9Vg1^) zc@DFZ<~@xcG%YpfEw4i@O=ncgJ1kN6N%~3pNhx}u-eBUrN!QS_IaYBxT+Pm~5<8yO z?p>y__g|)m@!x0mcijwiHJxedU4GKYbYM7WIA}!mKt!c(L#6(F)<)-KlcuS=0ltJT z?Np!U?(6OR?#+rj$TuG!zc-aN<|SN@0D?$0nj@e*JbYreKNORg=t`necG) z7ME9H9sC8R+KhmN-0JSx>DutR{?g0~KmbwqRRTM41Ei5IYu;NqYj`L*%Y9bl7H7OI zE$H^WtOi4m4B7Op$%!2K7BB3ks$zdNT31}@oo~UE_AQtgSf3wtTO2jDxsp}bqSmHJ zhAKf93%^>oF{;?G3UMK)&0x@apDC^hXVy_E6lgrN?XC5YHHw1;zT5QB z#yB6$IXCPcK=}I3iP|Ii96!`(bzTdm$AgLAYwWPjFfkcWW-3MeYX9*4PJcu+unvJNfqJ+5(x z5oc$t-o|=(gMQ*BM)UewHUz8uVUUKEJbP+*8QJR!%5e(9TO<(zojjX0a_=jgZk{Sr zAz5r~unLT*R6~>QZtMj7GEh%S z*xU#9TH_u;)9T;8nUsAP18l_<(IZcTHmCEuHDneLQ9MR10=wC7YC$hL1g56&8XY-} zjQTu4&Sxg27RRSh$8Me9=kohKd|2`G@$UzA^eLNpH*&OyO zy}u;%yW8-)-oA~^^?SIvsJjMUY#yEuG~QfVxe+KlK6X4DA2*Ng&#u^2>-jC>)!RwW ziFelaiC#n#ut(Y*)Ye}0uhpM4Citz}fnUwiuM;9Z)WnBI^H?Vt7#SeGTY>yit@EBA z$9sh%v*Q>KtNzl*h#6YLLy<{r{uuqZ=~kMI%>~DJ#rDXe z=@y;JVAk;2>=W}+z(ONX$cp9FjOo+LQ98}cdBWAr>sMe+PX31r_dFzr#Pgx1xh3rN z_STb6@;P~*k2k|OrvjE5fyGurQnRL8JX!NaAt6$De6Cy*GMRv7&4WhU z*p{%wtlZ73qKAFplh2F>Gi|vX`OUcc*~vXeBA3}1*YfQB z4fb_TtGD}{ak#0nD4L?|bpqz7#0SKptY%Vd(28MmNNl-fEO;734YNov+@;wz=CH3- z;BE_rFe`WlnEIp^ol-Re0?trX(0yIggUG- z+!5Q0!X-?>$vCOQ!{`zfxMfY6QJ>NlRpV%Af*Gor7&IYN7m+&l-n~Xt+6?F!a<9*1 zv`3Z8J!CTv6}lj&>bzXcfBWLw%3Tg^zIXg?RXghi^Qf>AOaZ^6d+jk8*@56Tw20x4-;FaakJ& zOc3*R?T2tP6>xGl6@lk>Oo8R=qy|m+CISTA>O79b#IfVE2(-omCQ$1jGZBOi*J-}N zHJ^cbU^!%gjKVnCh>veo<%6RLeSOz7?TM?UZw&27`0ZZE`)PeL@k0}EK_>(Zn8PPl z$K>7Jt+7;Nnn$>tGU!D}35%(qzJ2Lx8%k^}>~N9C;kt{e*oFqk*BQ@0d&+)1i5D4% zIxwGTl8z%dFc;$-waTHYGT#m#+%detN5W}!y3u9JxL{ri9aTlQUsNQTPE1lRS>JSu$+A1?r-uZZ-zGM=mGn4B|5}JZ2 zOIG1(5U})Ve}NG*BP8rJb2`BJ$=Wt_!UqeW2rm)#wCPjv3y^1JIGJbnyi7QrCBwGB zs%I`z-6U!tjO8XK5hdGx*O>vHuhSneLE3c2C0zHh_$(3y6w=TaqxdjOZ%B(=udxNg z#MxV&bx}z~5w<5Z*fiw)SwI$yiT7cH7R@+2p9E3~f`9 zC|rYMQi6lw+xVKqweXH8T%s*Yo7nTCHBZpn>|FG3+&AKx*SW%GB=Ak}7UT#RCkZMK zOw|MOpPgPy3HFEY<7-mZcEJJijmV^4;)u5D`MsO=g@v6Q0LDb2&T=+XZD0c@=ry~= zn+ekeF|qeL`H?KbPO!g)i_S#AwBWjYo4E)jz4O5ni|w;dOyB%pZm6>((Y~UWOmBsn zary&NFz;aa0sgKGt@PmnK0zjNBm5Ak(%bY9{D}kMM-`jPme9c$@L(tl=*FSb#0e%v zkfN@(e9uT*LE#;KP=y)Qu;Lv&;j3s0)aD{SdJn4dP#ws#P$UUK^1KVPP*AMY)fi zn9`opJzi&aC8}`cCkD$t3ASHZu5BDHWe9n{%Bgb}2Vz5Wu1a*5*7V0tQ5=O9747Wtu zKP{nhIKtAuTbA9dXq z5|Zr>8|%4=n-~%-{eon#t4WCKQ1x4VQ3+dN_{f|S{^D>H_1+=5iu-Bill)h|x1RoI z>p?dEKPPN2n;DL>v;a=3C@Dd0Qmjm9=rRZw$2nUN{UwBA3g<{6s{(YyFfp8C653nZ&LQ0FT{vEVGkNi7i$^5kLKcF6Qd zyR6XA_eq7ae^$I4U_dqx!Lv_fR4P`{j!Z?c87w}EwRkoG*StnyP$F60g2C`zIQPRh z;eL?tH%wjT2IACK{tgcT+Qo#-;B=bGb;b6-6n{ALS8ZW>0n4JI*;nj7G!d%3_warT ztkT}g7R~fcL!{J6LO$Z#>HFF-aLqM}C9)A^3(VAY@}iJZNo1Y92NW||+N3=~18gfr zRmpQZW{8>M8A?{ayZc(E!#V%Gl?-`pNh+0v6KPO?jC6hjdOIHEQ{IyFYXguyo=wou zlm87Zgy&dx+nWas(*0Yl7PrAb)&9Fdtsi}T?mFIsmSTQn=hHg2L5v81)pB7@f!)V( z2=S>RNuM;Gr54;-2hh$BWwl{X0ZdSDT6^CW4!&j>Zqw3oW%aI&N;E0RI*{jeq zT`1sU=-3t%BCt*0>tl1X(FOZl&gJ1!S_e{-2UJ^*J!&tn1|)E*b5sNYSikymjosP9 z36=EXPIvv|5`mOaDV)1%=R^}4l%wQl=bplK7lkG>LASOKg*TzX?zV+!%24eFQ?M_X z#fsQhlWiACaGr@x9gJEa#1)B)Jdu?brYz;ABq~y{m zTJGDv@%r)H5-}UsrnN<4qK2mT(M~$3A}MUz3V3@l%{59^g|CCk=0%%WvQ&K%5){w| z62%oht_R4cd11F!L2l5FUPLzA`eW0Vf!{ZwW_L_tv_Y4?oZQ3S054_lO5w#iB*|ulbiEQNlC`S$|@b0&*l@}K;LJZs3xSlO^@=K+@D4;p%GEQcgWE~CS(ej3^W7UOz#i;@Hid7a? zVr!pA;&EfX0nNUrlh)W>XPuLJhRoyLN9zUdo#s`sTYAyuIJ`|)QEhzjGc`8rQ$J0iO9lut5_inT1S#gwb49b&4j_`jauVFCNQ zpMMZUiS)F>_~g;|9K1TPfbpa;Ed>zDpxCp*S%b@)jLjSa{*_6Z(7<$Qo*VgMewnM1 zo_r{T$yknl-Z+8JgcQs;dcL!*^E2%)KSE_$+2V} z15Buf4q3G6`;MsX9Rnt&s@wDGx-`phT`tkAe-CgbH%JFwD$++b%Klna8 z%slMwpBznfO+8$1?h`(q>;s4QFLPIp*t=|wpAqVgO|FbDTvOuuS$(~CIJ19zxUzq& zqsozI@_@`Y+{cWH%vOV;xzNpj&EZXTlzE1H3kvL4Hvu^>IaLM0kl{bmxCqMj7bc& zVt472v>&29tbNhc&y;w!-04o#)drSrieJdgMmj#8l-tR{up$Wizb5zXl3Yu#T3TdrTLaY;Am{3jAfo1$&Cf;+I95&{>BL|_`NOOG7bG;7^G^U|{}1C*&SPCV~k58~VnG@{Q|wKMHfd1eRYfZ)A&d~b%DB;5c*f+55DZ)puJ{# zrSrS4-1 zAy`C8Ry3=2xm!NGoA&nch0@&tw;ReYoHG*^6>GtwhS8T6E7d}|sh3sb;k}w$+77YeUg-BiNQp@9(g0+P!_>^9|r~MYCm1h*zBO*~Ajuw11uZ zjqk7*gvW<}i*L2VI%6+LTHAkZok}#KmMSL7u=ldgSoqLtWZTcqTk)3pOntg@5swUD3K{GXB}u4k%@I}Ku4@w6KuH}Ct@Asr{|60}NJq?kr!D`WxqxU#-)R>= zXaOJ^RPr}Gq;J>nc+nu*v+p#Dzi7*qZBXnZz|A_9ECE=BHnQYhMbH1woW^eTCK8A6{AtIHHXl%>E(WC1IcZQ z&b+e$4YabBw(vTZoqow~Ai3e>ssNBe$*k$cr>)c8nY70sxfFOqaFD`ej4abda(9 z#!vj0I>^-T>iSx*lCw}6r7qIDr20r6wYt4a>A$PA^88yR@3$(iObmao^5n{|RX+X; z1GDF!DpRyh-yc4`_TCADnq$mWY*W0V_RA;w2Vxy7N`k5xStw#1NTW><*leHdR}% zy`pe`aseOoM7p;o-;t`-klt={e-FO{gw{_$h3rq9yfddn|4*bbiOrFoA>Sx?Ck8yUz=|*{X zERM!}JW-|2c04n}Jad=(C-3UKGFH}oJkh1(!oIpj=`Ix{X3l?5s+M$D$Y-s3`jpkg zk!vjnLP>QgV?xi(sk8t3IY8NH`50h?X_npPKhsFv_U0|0sg|23^<{VT1OvD^5bRv-EaEE+{6 zQbc2xzFCNFYX0PVF8zf=6l??XwD{A*B|+9)Ws;Qga6fk1c6Pw*tFXe4#>iu|K#U|x zYVrwjtv9Ah6MFn=g9e8CZe&wHP)MijFYRK#k;>l`h{*VNZlRJ`$hg%?Ibuk4pk9+Wk{dT*Opv`)^B$ZzG`)MckL$<&F~8ZA^4MICG3nh zHUe9|K!zy_-`KtshQpbDmLsqq=)0y~{y0_ko=>vo<%Un!td>j8!OD9g z>WxEB__7L69dwVpYqm&+j5>wB9-xhuZrlzDylV*EQP-io20dr}vzi11+TuZCgsiDW zoC3(49FZMKKl-@GQVFlW$>XB=a^Vg&X~|vh>$Z~b3ltwlnyGf?$no{_^*tF#9SGZ) z<$q|szS(tc>EOJ-zS?wtD2)vRW_E>LpX_efJzkyd?p_ZMmjZ9~`hj5^Q=T{bo^2iL zciW|BxxQZ5DH}`8VH-<0p3tV_4Z}j-@mWQy*f{9@l9}7Tn;Wfp{Qs+mub0z;qU5bxq>)6?CXQxv114& zBwW29#o?yJ$`w7zin`^8a@rtJw_|wFN~8BhsLGu?NAL1Qo0UV8`w-hb`3?SDX08*C zekKSfEeKNmNGsj-!S{Cexb<9B2AqWv8op++nfXx1Xu-3*B;X&Gi%uq+4wb2Q2qWE3 z=q@XzZzs~4mfu+DLv87UrQE8PAYMk>0Bdo@%!6gIgQ;uit&69uq7Hmiko-k=f?uXR z+3%6XLaZ*XZ9|#ZN&buFKzRI%CR!UjShVi$-z?Jz)#)|AvS17g3<>^&c@R7-u=%s} zbyxsQ=*Kg@MeM_ns2LMLFd8DW(4b>=KGBK~XXW|-PCBf?is=pQRi zNl&u||FG%*fzoi#+bLFHttGA?sdEpJbbyONsfFqPW@$eF*D@ph;V5DPHi!{&CM3Hg zz03k8`u|fYB}A&!qRHr5fBD7^&HSt6k3P%)*=L|0{NF4!k`X7JqB-9euG_!0unZ=o^|{qVf9In*X;_N=TUOl=Z-AgtsNGXE8dI0bB(10$|L@xX z+uWS!1?{w>$N6@u;`=5jXLA!96Nc~C@B5z)G^FhCUZ8Yh?f4O0EQ{Bj*F+5lRE90} z%Lb}T#FI8k9Wt-eW09GNHS2m&%M(5Kq@K`176||xmZd&qLfG7pa($L;D-!ARpc2p& zZZ&_qf)K{iYsWD?swJlwN*^AVWY&@AQ22}}A%v$uV-fyYlvwT|q&Q8MNZLu%*Febl z?#duJ{l~oL;O{}= z%Sj=p?2nxSr~5Uq^%|lvD3h(d3&YSdsDk_jb8hjXB2mU+8m9;kHKh%^*64*n*$N;{ za{!UM_o7B;j|G4qS~J=6RLgAtwHK@T^V+AcuXaE3?jX40AuUgKwV9q7Ncj=8gJIre zT3vm7jjZeZ1xk5U>shX|>x~Swod9HKN9gf1GW2Ln(2Km_kJe40Rm}@+_n$1K29xU1 z8QOuCF#;IOjx7LJ%iEs!kBMm^GI8@+;7?^*@4L{=DLb~4iB_9BF0v5X+OQ1E5&ZIWY za&}1O;%}B!PfFj8)Ka-!$HS9jR_o`;)a-D{)cIv}X&@bab&UsluZS=CKA6LF*@#1l zg91lEylaC+kf+>BxNKvV1s9I~S~*_~gTP?VWhhNHOZZK&tT~*6#uY-aJa;FjS9lD^ zS*51{y*8OO{0L8fEUeR_d(<{uDPOWt7Bg_IRGplUbR3JM!9l2uXp+eQACZ)#SZ=Gz z|6KEB7vjMh@-2>55xpW6*V!&lUlwo>EcYBeYfCrNB4uuFd=o(tqtHwHdev-kiTDO* z-M>D1%~w1E{b)a86%3`+MlqS_W>nkV&_lYVjS$N^GQt37)g`P-DMM#?320`+|7aUf zeIL0JQicq9ew3O>d)E$oNoc$YmSc7aV;y|{=4*Tse}dzeF3L?AFOOSg?OFyDCzpP9 z$|L8E053@#ZZ&vO*q3w#SLK;&g?HEcQ8T04THl<_9i*!~4wmNutx`@2#5G^7g zt#EdVu9;-)M%6Ga^;xSORd*|o zMA`1phr8#xlXe;;C_}DK>$Bg*q*1WGYBosG7H50MOpR|VUaB9IL_>m7Xu&Ws%upX- z5-JpB6HP!Aj6BmqKk*^V6dz&uZ=4Pi7V+Xxk2zuMq3AM$?lm-J~1(Az6{F|`rcOp8!21CVlSb4(~Dgmp1Hz7 z%`^*-OHK|uttBla%XQBPGy3i+^lpFIonw0!>%ceJMfq6@21BTkPX7~5zgsCd6%BET zmxICX&=R+dtS?G5k~=}K_gj_LKzuH(W!$%vn^Lk?;FeZRK%ieC(w8=seu1pb;mG*x zgkY`2Y&isQ`O>1Sl?9&LCg0$tnHZi(!L(VGP$Hws+HoOyW9$p}`}gayA3YCHtzk$W zozzP!3BTysFA#@;^XoV@B?c}`G(wSWm({Cfbbw>pG^EtX5~t@I4mjE=7ck=akIUC=Q`##3h_K3mvLTpOs__$n5q`}Ds?&?vkW%I7- zET>)PeorL-T!K88dp~stx>F81EQIlQ2%8%?niwlNJ6hP9eUD`4Njb^)j2Hta9jgR_ z+T0f0Q_SKS8ZbEmvuF!1Z1Q}{e5xPb2E6!!=JfmoS9Qd2r)b#Q7osP1r`KyGLJfP! zgU+N?q6kpoeON=iIknMys0(NKs_~FVkec8BbGNph1vl3anB3R+eBb$I2;WA$yfV)HM9Wsm$X_)D+GP=!=h1DH4T4IHRTzJ2^^~ zbLQuiW*H(bc%O8X&t5;3av79rz2?lGJRYx3Go$U)Ia!L_rqzA#eS+eWzK^Iqbt*Z` z*q<26q{|+4^3EX24QWH<$Y}de!=BBL{S34$`=6VW)vz$hxIsHsIYHJ!1sxhOwlk7< zw6k|&FtT$r`8Mc*&LjTMSrL#MdB+di_AsJ|TqfTj$6rR+P+?S%y+*F3Q7kU8{FH5i ztk3332eer|wt50_BcFQF;j}d-%?I4!x`xmz3Rcp4RrIu# zNj~qnJ1Z>%gQG#ZIX+Koe;_=ZH=0C0ivfHCQa5u{hkDQ!-zy~aK9dbrZUE5Et-NlCSPRjUA-s1Mk7h4Rvp5^!wD8Qh z-t(GC)na*F_LncuHQCG{wP7>y_f@|NE47_gPG72m$a8GY&A6=zFW07tYX+WD40Q23 zQMal~bF6|Hqv6&1R1}^vx3^Vqy~ao3k{se7FN~DM&Sn-|cDyU>JP5d%xYk?O$9AAj zS2gYtojusga)(ILIXWJo|M%ZA{T)(fDnK4*1e#`1e)Tv5d;9-!IFP6P{mDw~mR$s$ ztvOD%1<7F zAS@}E_|QX!J1nUI(X9u+j-lM#P{s^aY;Lg_NI{6k+U#KCMR#3=!j+ZPNQ1peW$0q# zQx{_sgz>q0Aa`8Ot?QT&BGyw+E39|Mz*^L?!8W|x)yQnZN!TFM-gNLuj*1fI4#Db2 z6!+1IjSG(L52M704^UxIcnj-$`0q*>dtidR6dR#h-cE+3B6k%dCDN1TbBC&$j)vc)N0fw{-Ynd~hj<6*#^wg)2lW#BQ2Y3_(z z2CGs+(p_MSe2pm~MIw7#I&8W`WBBnAMrB_Jo{sP0@S1j~`z?*=_MjOrRXX5+c-4ML z`Ng2mlN`53JTS3LRoBDUWODB!tZHQJ?A8Y~WW3qIXJbUfv;BjZrl15zk+d5Y>T4S$ zs!c!QdX0I#zVX#>SGGpg#uZ0_Bi3qA=*jMMSWRr^%;+NF?i+J$ozJEy&+OOxk~js= z;tcCf8&p6Cj?q$75b_FjOlNPZ@fAt1xNKyG=_hXc5~p;4SW}N|7cK5ESH>tuhdE0r zWF>82ApQo4wuu48CymB8uZX@Xs!lZf9TtK*zJxvcxrlTg54H6&i}ar z+kxrgK#W&<2lw6-ygF8z|A&i#J$VjFX#V}3A3rVn*MI-=1`v6v-vNGq2f?oZwV;vt zmp2mpDfs6}?4P2aL1(l7IG6pW@b8CIe~JPCP;lRc|I3lpKXLv%q4*O?0pUj_{^Pvj zpD2GG&H9Ow0}AbbIraGcpw^!#e{OpFi4ytjUs1kqf%_BX&o#cEC~MUJit>HM?@yFJ zf3*CGqRR9g<~#UdHA0Qzh|RAe@`ub6|dy`Mf~qX<4@_|hwWdbV_*IvZS-RhmzRPBIXq~b2mK|2V&+un HTj_rRthZ`< literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c54dbc2919a2323f7d32c48d3228f9cbe7be8ec1 GIT binary patch literal 15302 zcmeHuWl){Vvi8E=3GQyegIjQS2=4A4+${tPt|2%CcY+5exVr~;cepFr5;^-+-Ky{2 zs;}yv_2Y$p*YvYydiv?H9(gG+aC87902%-Q5Cc}I>$Dv~004YQ000dD4XP<*YvW{W zP8}_~bset=GQ6$bt(;Y`p#*SJh))htQTH2o3vo%qez7ee}* zsmu>wsv&VVPQnxJUxK{unyy<75yNoBTcHnN8cYJv!if11g7qiVatg&^h=0B=15|U$n-hHw;vzxv_eYSr1B%$`Ys}(hEI51 z=*v_&Ut=hnQ;3B7r$ph=gi0qTb!{JYv{{pi;nFD%LvRSZ>v(&rOlbN#h0( zIfXMDhV`DY_L)UG%U~!An9!(1A_Q7&?g%QR?S?DHIx?I;BqSPAj6f1A5`K;zrzT~6 zmorevh>I-3$tIv{T0FvCo#qKn-(#VJLI2JT1R1S6S^d?A-aZM|G?>EUz<_;~5hqnx z@8{Q0e5|WB6yoVJ@hn+62}(*}X0}4N(mpF5FYT(qi_TtLV<~nhIeoT5xGGlOi!Ijh zD4qhLJ8lif@U5XK6E1hn5Vk!06jb2BX`IGqQ@pp5bsgZSNgat7S+kQrFv2Q|iTs6} z*NOFA_LsFhBfLueA_5(vvc|eI@t1&_*3DoVKZFAb{Wc5DUELa$pv8W&q?u3I4CG4a zmxyZ6Uj^Pu1X8*O%527k^%M|BB;NG9cEeZ9+ZK~0E3L!QeN8H*3C1IU-dM*i-no7+ zmEFVdTicSpbn2`VhphPW8R`1#;I6I4b$+_HZ?u_^RL!%E&O93oh{Q#>H6z0vR@{>A z{l^y8A<$v>qiwEEkZDjRG9VNbj_>E-xF2#bFBfEa@#-T|b(WiL;JIwZ4%uVfk*j0L z+`yPVK0|pU6>H6_muWcR>z|S9y*^2gcCFAi1{U$k$K%tb_t?IJt!g>%0Rgu5Zh)rM zcJccp@eS0037eXilkS*}FQHc}zwlK|7#&OY*zVtXE3)I1p;IUO>@j}Z#@uFT*;S;S^DgMg?qR4!{(?SJ_6zbvJ2TY>73}@X z(0yTxBuLfEQDjL@Jo9_A&PI^c9pAgHe95mnMDo=cxjLWBd!qGZMZZ+kg~?@)!lzE+ zHZsUw5&k13mS7&JzKtRiU;qFP02%~Hi9ZICpNa9;paKG%_yNoQ-~Kek4qJ3E!gn79 zGzW}&*~i!z$8j}>zbw=n41>+56P_bjUj13+G*sWrdML1kWDj^QqkA$;MHsbjvM^fkz%j*R!WD`q2-4Tu_gvTSUyk@B?PFpWwm zQ|q*=F-(@9j;@s&NeFHx@&x5G$^asGvV@3!wGcSw?8L$Sq_ zj=!76v)~Z=U~gFXh>Mtq^^{9IIT(gRL+YN_b0KMq1}AX;6ja$vJ(Mwl-s22hLSO-1 z1-Z+#~u`5-+ zn2LNf#6kXCk^Py1fgH~l_OqT=%4yA#UYxYVsW?_CMaed3O^GV1oxOgm;|x^7`oj83 zNXZ5;xw3rBCkouXgccBJaG37IYM9LDSZ7%vgI)%jj7fzh<2)-xnvBa_D=Js-RO#f# zY4bj@I>}KjaKdX&E4HOSqeY0VpJsf$1^N_9Wg@AInF;ZaHT7wzUKHyg18&A zWYlFPJnJ-evnA8s{S+oqy}mGKEX`w(j1EJ99%=^PZm-etoJwWvjz>t!$7uwMGzLGZ zb^Sg69^L&{aflbXg?5&cjm3gWV@wCr?+-RXzGlI=1_w*<2{w;1iqtfMF^m+>D8v|+ z*aAE1>FN6;ZbB0=fCw34qy!5?zUvj?%NUw+Bte;5V_c@%MXy5ZXyUj|{$^9YCjIDb z%Vjxf*_fD^b||6qY15!B^o>5C3E(FgI)wox3h*lYNw#f1CJ4+?!6kKw2I{#Z(v z+u3{{!aj*y?ucKYHYNyv9mM=6GLgPy2(Cs105skHEt#1AAd{5s8Y6Pg5$y%HS_>Mb zpWqwl$&b(GmQ;(p(jr)hF}!nX-OOv2y?S7B#I@v~o8FJzn@~J@oOn)z?SFPNmyxI< z%LNZFk7rGddA$9E!>h0c#{TTplz@cX%Ffy8YX6$v;uJf;kLdGt3>$GZgrN@Whfi`= zaFB8qd#p(HPPm(zP))mO)dp@UvdNocBk$$wJ+Nv^bA4aYy5LA}eK0o|y zepuV+LRM^pQjs7TtOS)S{C3USuz1}v$eFMT2J`E7`POv=gMPz9s<;NMX>*B?ztPl| zr{-hYAT}o0PVHkO<7^=3OuwriVZps4wQ&>}?UQc=KTPT$WQtXhc*@&iYiD{(fuF0+ z`s#pCo1W$kJ6_Q@I(ZLZ`Fn2#UPPF{=A6x_%LVHQ31(y)@JkM}Pjd0ay}jDvfM#Db%d zr?ZCbp2O;VP-V&{i>e4zffkjj4!1?j?T#WBi4sCeCtt@d_2dxQSp76}qj$k+&^b>G2{fma_2a)p)&qQ>|lc3D#eC`aG1w<5&P;x+S_iF3W zat`Jb6L<{|9R~)z9wBB^;}Ub>z} zS4Tek^j*>#Of)PD7-ClLx)srbF0e5I!`@UIE(d;7u5LExaK?$IF`k;j04pI!J37YG z6QQU(CK9pnK~9_SO*&>FGdU<2rJfmCtMKeL`JU^0a$>_y-@H^+C#-ophq?K@OD(W7 zu1=R6P96-b8)y`!ERJy*9GlQf9Oz6js}QbEHr5a^KR0{>?#d7>l%&EM$dH-fO9N=q zlKRSW0kfr4i1wbto^-5}q{4WpGw&f}F2O7^Y|*(zT_WeugC^e2&|&EkAr4^^LYUx` zhYaHLaK?&88z;qucPLfK8i{ss1A?gV&T&>|ewmlNYVOpEqVT4mt9FTE2^3hCvgygP zT13v%kuF8)d+Tg#oR**VIHPeAWsx;R*(wFhP>A=5MOjUyUO*{^%pktVC}hD^C#s%C zgyzmqw>E<*P=US6W-3$i+BfvD2pSJ-(5Bew+B~9eHU} zT&DDzg;pL^BuT~zda&|xfo&{qT7h~(()U&5w9G7lhosE7De7w5O>lWp8OXj1B0Q$g zU#nV~K;x6;x#0UoK4;Y?Iw%;T&*HND)JOwW$mvGL#cH^F=vkd&bmaDVguqDH#YNeL z$T|8z{!EZ1y-r{kYu=5Uq8x5yyQB`P15kiXAuVEK2^4KY3q-6)pCYc!#QxM)t=$>Av)}t= z06tU5$db#-$Zv$0uXQhon<`THdUiz33T)&(wAg9Kiv6 z^P)WmWWFV?g||Shx)%K-2!UrUZ!j9DBWE>C8`6B>AdhjDX5mbOIW5%kfQ!0Azy>2g{!v2*wVkcL_+Q&OIpxWK+- z5~VYhYmE~c2QQ3Q;i?v}@M>a5kDL+`cAPrx;heOx2_Esn1SrBugkaQ8=CT7lE5*?) zz5Qj((KH#BIc61ej_L+cHDMGtF^MSIR$EI7Sf+Nj-w0{#8JBS7Xzp1UGLX_xmxFlF ziyujITyC%gL&Vt{oODn~MB%qa)L*E}`LX~l82QfY1(ayY*~QpAl^_rZP#0AkC1l~P ziiTKI)Dt}?7lq8#J0vC88@h$3L0kdnfXpRYzqo-lJ6H~i)@bXjck8@(2Q}Y1n`HXt|8jjT z&9QdH9b~%8)Ql5f5CeI8L-+A^WN4)i=J4=SiEH5cfR)~&2j`FN2|X;{Sh9c$yo3Wm zoAnv#yV3F;qauPcXZ7I$nL_I2Y7fEi3GE%n9$s>qoYuU)%(*K9tM%!MJugh?F$Ua zgfOw@48vWAPE2So=$>v;TVqwYGGhZ}F}Q+WAG=1>51mkur#UW2wDYKMqc4FBDRsV{ zs=Sd=ZR8JzsrkQ5tjtYrXQ=<6?1dRg>X@F z%}JAD6oGOw%|X4gxq07+sFV2|bjxpW=0La?zrm#g;bebe1}cBU)M2hBPHfBXntZGdlRAmXMEErEP%#9iu}ZN>HlS?&EOCuICn#SMNqhGZ z*;JM`ZkJFW%TiHQ^1_xGd@6T}lGW$_p@QjP#&>r)MP5siN@eau8rUBLE#H7X4F`A? z)yMtZ03&F=E`QI?$LDPV z7~vsTUcEU5ZubZjaymqt8QLqonoLFlSTv0r#MhBVHvFWK&cY^R%@)%^dSuMF`c|VLQZMhhI5P1 z_Yt|%+9_`zOA`&vZO++{9|OJJ*%LNTmdpq|`J3^j7#hxPLUp2Yx3p7+caGd&By2Xf zAOsHY0n}(T&tWo!WM9m4(kMdyF~t*@B|0!Tg^AIqyChOfm(gO@3LwqjQDRluXW-9 zaSz|O8Gb*$;v|7m6@UT&bOrwHN|)u2m9C6!HgMbMi1xsz+!F~hCI&J{S*3CGvUaZQ zJw6LKEt`pTEKroQ826bWqba(~tFt=eV9bu%#J6<(P8Kn`jFls;1Bt^D)f8bL0 z{esdOkF8{>G#CW0Up7+Fa7F@@;pX8*`1 zQ=klYL?voCJ=o(~Z0FLw2hZV^R218)P|}0DGl((Juaa7ejQ1c@FzQxV>l#bbp|drG zt#V=>Cxoa+NqlD6x=$n88>0Hc;T)=6^RK0$lD+RGC8YEtSmL9i2ZlIx6I=D*y1T?1 zN}njCnGG>6nekR|X&%%h`xbj8m-WVx+AC2oYWp|S>ELeJTeQ$TDKp#Q6y~fwu3K`SLpd0@ zwjx@@FK;48&!n7UWR6TpLB?^ig`Ate`uw!{G(T^H3xOWA`i)m)jt)o;q@!N0QB=Zf zA3t!>9ACOZj#+S5dB0xH^qv>*N1Q5i;&|`vIni}L*bDstJvWZkSX-UdJL8Ig!Oy{j+j}XELI?OIlWcxxMldhmkOe<=yu@CB+$KfSxkho+=@ozk?r_D zitGyyA8VjC!huBS?EG0|0=_J{{O2O*{Q`Z0e_`$i_6uzMkk0!BK!pDO&S*dY|A#a& zAi(*TM2E*MQ-xoYN6acn3Ez&chUt=GlJi5V^_~`zVNo1M=F&&bYilSUXC-}skcslY zCRN()vJScwrv#5cr!zt;>1ofHr@Z;M(rrJrMamm*IibI-I4(WG8u+(O{|BW0_D|!i z^A#32f}~FEMAClF`uXN2|4nJn562=U`SI}02uuJY#8gmvUUH#1bj1IYln^A9Z(eJ7 zqqlTxi)wZ*`FEdX{^&Dc5B@i$+V_BNG2atxJx^$?4AAZ#U!OJ3mE3O)zNgO>^V|8u z7rlei^VAD|uKB-{5`scx$E|u!-*{T!xaXol>cbYpamzS<__=PI0y2O39{oP+px-Z@ z3-*h1LH%NA#B-0Idjaw9o_^AFy;^_jfB3$U`#q%n|G&QsvavDJ0RaHeV}DEV`hHmB zWM*t_%<%pB{hVfBUCI`h9k~T_+lT0KNxbr+JiOPhBxJE$)?ZEH9chi!0rMI?CYiBV zosI{!JkfJ^>Jd#O5kJ5|Vd7&dxb-b5*H_8L9FZR*ptDtrMzGjq&Lcdaq?4V@O2~c=A@8Q_Qgto)j9WXxB;&T zNPW@Nif&*LP)yFwoRPbrNR)Dr#3{lc|BTyq~ml9sl1{|km2NV zD+6UK0MXJMd^CXsH5eJd{vmMGsy4W^Zm#iR(n6{?t_qEzY2G4|i(6{r8Ej?d06lM4 zoT-IUY3?->CMm#-s3Xio{J8^j7qO8&Aqy7@diofLf;&!=T=_){7VO4c^m~*(`4O!P ze+CEmyR5NWv&hI#l4fRm&SbK781twMK983fgsp-;PnYBU`OD8@b-JW*pVp?!bnj2L ziY7YPKEk^{K2%}0@_RgXu=_lmPGmpGue?DZ9FG%s3en2C;|a>eZmqwJe&fpW#@@e> z)DLasK!F#$XSR(SZospibgkhy699Pv615eDuQ`my^lF0T?10SK*EFq)l)eeEzGSPC zhv&U%g^vSMo&6P4%kki1PcqudDi73d4qyC3Acx74A%_wN1-62C>pF`dPmzak;rcWS z4lMnRa;6wMzW%OrUy^K^@W((|Ggy1|YxqEU?iNmu&`6H65_bW5Eix;(0iNzC7{>+I z@GaPUzIekl=K0lpHF7@EVN8;0d!a(2F(!RH1X7Y*xy@4F3yqhp2>Yu@ci5Ua^omqm zXFEJyY4g1x85d}2n>wlH2{SXp8}N$g*&bRqE2ayJ#JAXMzEu&c-r{f24)@-yfFS2v zE5;Mu4r;j?xJlPH5@K3~z0t>BaSka}O406LoHw=Rf3oo_dk9+&Dnx>~I82PCy>EiK zA~f0nd2f0JZ54R&@%&vJe~iO%E9HiahufX9Rs{pHqjNVK<)PEMpNAwi_bWJ2*<4OX zsRGVXXh<0rJ+Agjkbbo5PdrQ9^=f*g0pPE6730$=IYQ3dJF259v_3|XfB6*12R!)~ zP0$*(mVG!o4;K^3m^IseUrB`YM&*T$ZT$KOX#wcsp>nfQ;gVB!#g6?eNV8dXruLM9 z7Y5UY!lo~v6`e#U`L%prN zLfaZvia4Z7+T52sFyzanWkSdDAU_CB-GOCCh06H09U&^+(YU4p#TtOxtRbuaDMi(iOT zmDFXo^NdEp>bg!pK}-Ba8#6VYjd;FZKpYJTa<)0cNIyfBpK-8IxOD_RQ6SP(J^jd+ z5EDG`MFi$#S&4%Ea!t}r&~AY5DqQJt%ZoKzq^THB#8p1IEGbrfM|(n{uo^CegSJq~ z`U!LNrEsbRp#)*ojpg|E>KyGml98|SOp)sESBym}`kH)kQJ)Vo$#rGP#DhU`(c5Jt z2HBzRf!+`@S46eQDMPX9aR~Z%R4IT)l^jxnW*^q!DgJTH*BwgwlqNaLiLU1 z$3shW@cwEG<{nn-6D|bHA)UyEJnItyJ-4jp&$h-9$L?#^wEVr=gBsdIs#}s(2m^!| zmp-tbr&zs)fVw)zJR^JEJ8*iNm62BqPYKof!bp$6$o{WcPa`PO2|>W6EHm)<9^sFe z@95-aW$gHEc~z}C7&*`OE!uMcJVvB4D8vb~g(PZg#OGw1YY^Eu$y#qVqtd>rXu_TMI(5WLSG*QtG+=%Ok*E^3 z%x5$NpWQ95E}uyzb>jEpdU9>vHl`a7ym6V?1X-Y$qD#}z#c|sD^m&oFW44QQyJVr0 z41%=t1{?RF+31W=jh&YuNnM`S8iBsfmM)m0(t}N_ql3y(!746&J*Sfz*5u8-GkJU- zE{L+Gt)SzC`@2hpq9{qO9aDFU_m-0dV+(-NqAxL9`;HA2xQ(p*q#&op;yT-?Pj3!N zT9D1xEG~Pkua8Nn<5>~DOzNbd-w8}K=sn7QBs4ZjBx>&{6&Y(1i&FOO>^LOpiSQ`ylQjBi`MCR?E7JLC9790;F@D8 zZ-t_8w6gM*rhWP7J9{5>%EgHk;K!K*R9M3a5xE(a1!b?C^mk?#?40=2#Ub!2$#U|t>mifhAa0uOLpz{V5e+qu)gC;#!#Lzgu>T32#Q z6QyacXo7sRB32(HiaD!6{q&bi9r4Dld@*Wp^QR)BJVNV)DlYFKbR$78$+ReYNK@~r zAFo$CbXy-lCpkHgtS_~&=v$F#+UVvSj}4FE1~LXGL}7Gh$ck09wf8Jy*XT4+?woJ9 zX<#%y6p*F!$7ktIO{-cg9(79sRMgp$OJBVzw`ij@ zlBl$FwQkFZ@m_0^}Qn0I6Nm2yxC0+pzt=G#L_J{69IRtVZ1 zourU)gRtTCBel<0FL=5;N{?=`nel~zZ`d!rj!9CxieK2`xbmzL9=wn{k$c^5-qh0X zX)2n)Vv1Tm@}^^B4u-O5!#%yLld>p73}FavF13^}KyxB>02f3injjp%cR9nDnn1?= zRvQ8Ifaz)`s@HlOg%U1wOPYks(L@0mxOaTBXI9w+S7q19+f3T-`nE7Xw!G3M)$}=~lq75jSroS)iB} z$>~49WVXh}^h0v@<1UlR^p7H?BaGV@kY9n#h2eIN)F_fm&~xuW3-5@*LKuAlWs32@ zK6%uQ1I?br#vkyV;mg;6%-+aID-5&1n6y@YtuUClOGUS{x#c9;%HL{Gs>-8zau9Z; z$`f_7MtsUVjoZ)wL;HM->Ae%dy73khfh)m!`ql}_RmH_6U40r~>dik!H!Lu2Yi{5% zIw#OtD8K|ZBU?jx2U|Nw218p1<8KiTm<;`&yfvU3dA{qH?O;R}xe~t@`s!uSs3K`e zUg%mtOGAtTZeTh)K1Jd}Hy?d@WIxUp7os+IHI&TF(&br{`V}ngRS7l9Ahcv#s47hr z{iss2cs|vMA8udjl)xL8mC>e#CaOT=Ea&4D4LEwLV+k_s;lSsk6yW`gmj+-dcXV9R z=&yh&Se^NrhW%Z*x?lt-%%5>U6M5{Kpz>UZvPc!fK+Ko5$H8*iMtmXBc=E8jbe90K zcl>bf8v}(ZGqW7yOoyDBVF4WVbvg*$rF)e&3q7GX)ZXe#{Fm8zU-n;<161xFSQkQ! zwKgREnr2m|As!#p#YcM#+Ch+rVrN3}4btPbP7bu21tvpBc*tYpzP?Cj<}wUy!nhXm zdI7koIBV@3F6xWhctw|Q+KKjI*U^XHmD)P@Br*CKX zABO{a+Ml1a*w3=_0>GVH@uq;9*G<97&?0*gG#|cXs*s|ts98_1yG{<4*09*4z0XY~ zh`xp7Jz*m{!74T+=Lk}=WjTAgy>N4(6DYuewsQ^#A46;8<(;nu-Pp<%% z_#~(fJRq|aV2cTXGC=i2@PpSwCB@q;CixhWmR+is$rw@jR&u99P{FDr?XHp)hrUUN zz72)HuTlw-7W9>Xz48&LdLoC_wvP~8nI>OTa>*VvT~|*-ttf4nE_EvwKF@7TOn*Ei zt*b8jI~!PcZ1@sm3fIvjUteMH1ka`#u-IH(5*1Lv( zZsOm%)Z+O)^XT_Y`A}a=IU3+Mh`?Y9y#Mu6Fm-lxvbFw?cmL(v06@;WLCFpQERie! zBV?0|0l5@brI@&T|9bgy6GDnuw&-M-WQm&4qeJwPt{_}(?}h$Vtrpii8quv@Q(mfM zz&`PcU7s?0uNUb1*EP5xVyUVw2L)tuZEq~gWo&KNdemh+*}$eFMa0v61DM7k1qTte zs^_XIswK)yMsYlbJPK~T^_rBeP_%Hwkzt87s}o`+dNw~X)TpDK6DT-3N zb&q4m;aHqtTxkQc=)lnHbFzZoq6}&8j@P^;2^5zNOEH<`w##!&28h+R%eK<_yVzp~EgYB_v^Ks{M6%Y89k>1~_`6R@%fIbJ#Wd8Y*;SY=c@!vmOIh2?B72wyK zPd@_`14Hsp_n>}P{QdsN57lMhOzgMYAipdBnkoN76#zH|4io=AZ~k|j-}9w^AhE*# zU5S6mp8g%>_e9YjD1N}3E&q^%{XK2;ca+}`;eMc468s~|_anLAQGVZ4{DHDc{vGA_ zEymvgeqW*f0GOox4)9~W`n&4yljR?(K@5MW{yug79pTprW)((lIIJp>Q#?(XjH?z(Yz2p&8*!Gb#^1b2c2mk`_o1b2Hox#yhZX=4<0Y&_XhZAAweI_+_g=Mzg&~tO zjb%bDHpXuupl$&oCJ?Bx43k>8`3G@6@c}w9d`J(hAq`Jyq4Arz_ZV^eg6om4k3l6n zd%B5c$aaAKMrgh(X1O;JS@>u|?fpX1&hCLnpYOPK3FU*&q+X)0UNan!7F3S$!wE;i zw~G|)pZamDJj?##Zgr**%s2Z%$H;Zt>@HR=f?IJ-;1&`9czS{WDE-Y=F$~(x!9ljV z0y0GekgXcJnA-sv8NUDi*GB&b8|E)VuSk@agQOV-(+&H+ukM ze*Iv?`8uJn<>5*~*fqb2&^xQzBggCYg+*O~X922@J9?@(TyU1f)CY}j*@t)UV9=6W zBw`Pwx`RmV%J$1ISYv6n^5-uEqAJ$kgffsn1>(9%YV-y3zt^+o(n@i`)j5|zDI?cQ z*&+yEd8RbV);A^v%L{~fBXHe%)5^gqUu`|??Ko6KMw?J9HkP1$ovCb%0*GCMSxlqm&)9~n;@sr1)r2f))Z>ssZMOGBl(W9Zs3ZXy&mRVdnK7(FP|M?u z2KSQDJ|`89lrrI?igR-a8Cq71^EPDpLNW~47+^EJ@&ZG}=zp!PnKw8j&6fpNdK?;Z zpg!)Z0q>7?4?&dS#EDTjR{Rl9S!KAi6s)0{#IIQJxQ&=gCwS)OnJ;4L8g+|NQ@D=? z&FzbFt9UGePVlE;D=@9{QyIkQE9r*q9NkEsG}ZpSjs6y7hA2U<=9KlpHLXnlkBIUZ z)4@s%d-(+~pQ~eYl5Zp+6?o5!7+5;)yb1=`1dJl7gX4cr=? zHFd(DCJ`S1u=nF_+uCoXA}I`}k?21{jQ->?5TJ#P@xg?!Vp3vg`^L3TC?U$D={eq3 z=UL4af($SoM~SLNv}I{P^sSgu0Jd0P*O_g-W(S^_@ZzDQ@rwO<6~tA`jN`it@A-Xq z{K_tIk7H;PHB5|`vPt&*M)?@ifx)>&{u?t47}w52lMu0*0Y2|9{U;Ax95rhA4+-(~ zzlP}A?N;QZOKqW#OvioBvuTT7A`W%ZHqX_vVe#DRc09QASK$~AbQ!l>R0yH;xFm-7 z)Fcc^5l+7gk<&>bh(^9)nGXM1j5vq&HL1DxG4>+yVI$-6xgs3nH&f~XkIxZVOC~1>|KwC>i;KN*LE7U6 z3L$Vos_}o8)y-jGJ$%(v<+dv+yPI(eqqm!(!czvce*#*+rfgQWgU_)mw`5q0Y{v`uiPl zNwMi6l`;695?d>_)cCntH+UTP6bFxx(H+BB_}VGwv=0GDPGjo{IS~R^X=BAHy##S( zks&RG9d#zm#daKr_h-7@V}`viK08|<@=)Z|%0)qBd#uW{KMBg>?mlS{_meL{X_ zDprSa#`5hZdaS!TPEF}779LpsI7q`ro;~h=IQlI|s464S(kgk=bQ&K?RV_mD7(6?Q zfSh~w7Uui61bwcjr{rl}ICcxI@))>X=;w)(s)Z;fq~nugKHzp{FB)Kg4s z`xWC!Tgs?h)X%abRs!iG`t@k@oabb$x*I?0*yt?S+=Sa$%xaXk*`V!{_LKILQFKF> zVd0m(*4DK@QU@NcW@p$+9!=}@EYmmzE;GOe?z05CZ-u*C%r^BbgEulCm<*Z>no>Oy zQ)$^#Y0=Nw>z{1VG<7u~6w{@j8qwUJ-!1Iju6Tl!^N*pj#R6~ZU5CjauzaVsaKTnE_Vm-!iYs(31>6~^a_tHd?W8#@)(lz4KQtEwvp7M~+W6UW* zFs|z5Zh=5v)O+#EJ*f-y52<3Cqd5O$O;7C7ZSbJAiJI4cv?i86tSLV8yEUa;f~*M! zLV6xDtfEX`T)#A;>~oXl0Ag2EtoGuK%FNR;^9#E|y*J`U_={()tk>ozuG3KmT|Cwq z!4%4JaBSVlbqkp1bBi`?1-)L&$$GD$;l05nb5l_av0+S`tDuh|;bLj64*fD&x5bb$ zJ`6UDugaKLY!ezDhQFT$XZ%21sr76CZ%U7&fpYVbFuat8dbKYyJG}o26(P!JWM!t# z4JQNpYL%^dQJ)uGqB&Aami(bKMCFb6V~cgnmTj0DQ4$=^rqzkU37(-@%MCs`eHi=S`Nk84Jo9@7zs}n`-_I+~VUZ;$p(S~Ao9T>Ji+Nehz-R{b@ zZ)}aC2uA$+3pUL;!4|z_bVV*TaXK}qhm6hg7uhOJdalT~^lPhC{k@r&ylRhl$=ypy zF^NVKjm(QR7g$B6g*-~c!P>9`4k$Z^s;)Oa)vTkM3v`1u!aLr+6MAm_kH*q)SS!>| zcGE=Kw=H=<@7H(M$SXn)Ht_+oFS<9SEz?^0+5$0l4M(VDLQQ3xfP?;)8c+}>kAAhmR>?H?$ZtPG) z@?(gYncKNeW+wT%6|zC-`SRC&T!Y`*AC%}9OlFu-_P;=tlFrPSB^f56Kb&435efQl zI|_ERwckI?1$5j$Tv&VGo?hlU2DHxvJox+Go_1J29o`*1-3C0KTs{os3U&zC`!5Q# zwflDHJiYUtL%(=h`TF$ez0}J0dgvo1_E+;^ z%2Y|t5Z)S;FG1xvN1bB&KtkQg`NV-#mL|F?D2HwmCyc7)YQ;I>wK>|Q%Y})=0&_{) zxF+8!;Rc@Kp^e3vJHl9^LyZD~Or1mKu?kZQ2li)0QK~zqH;qCKs>GjX7Ncivo>$IL z*nImEm4yU9iP74yZi*V@v?KJc{Hj3KCD%^eW_sG@i<3bSl$gTR4W&qnEb-FJT~1v8 z)cYB(ELDc)3_L^O%~y?BME1yQ#qz{UHjh?(Js5LkJZl)3MZ8JEg-!ItlXOk1Sp27^ z{ivKvPMZQ2E-=|TDU@=kqY$uVa0|1xfKn_X6n=}C&Iwo3I9-Wn;ufgyJIIwv*;%lQ zd^ClMV2t+k&@Ez6$6b4(bS1)xQ1{#^QN0SmUM;>0lvy(EdJ|s)!zzJm*`nM-Po@}5 ze40X`wx>LnrvgJwoRM%y&M!8CE1X`s1)Wrj<;4@47*my_CA2Aw)eECy(hWN#M=#(c zI+~XeX|H_7#uKTQr}K3aAu^jgAPRNV=G$mA@n^7skfa#%(a4SQ$w}HMBs}5F(lEH3 z2jK>4g3}>~iQuxmO7K-Vv~KOuBYEp>WE4qsO!l@$dYka)5!tC@SZkBQkiaJTK_}JG zywfj1;(KljwAwA@P4P5Wo; z%UOnkq=upK#J-gpG=e(j?1mqdHS@(U6Fj8^8TGYGYa*0jvf*2AnkLgwm!@2@zT1xi zAyzC+i!-(+;H;Ky|x_zbBVl2>83`_U`y9@GzsUcP(!8Vsr zSt)tzvmac)_Qjx0E;L3{wn6|%`8D9g>a#-17A~y>Q*bKttRlAE(I&M=^$`Ixq36WZ zrhODz#yzls4cunjV{*Wfe<+=6%nEU>E=G>Fo8%K zD+MPOQjwPtGiEYAN&OOyEU*5|J<~$Ts~$p()uZ9!G!3rR1_zbbkYrw*%aYxrWB{8R z_hWuxHqVzsnj=*lR3AmtP@p?<#RzdmHH@b%KVHr9XclIW@KioADo~%PVbuIR&U+7Lb%nNsOEfV> zC8%})$vv`zd8Z;Uk$n6nZLJE(WpLEK+&ifGAT?jifS3?FSRJ&7!;4}8541{65I#)! zLK4hf{(eQ7HE1kpTdj$GcOy`}%RB=l z-5{3e@;sKRU@I2yVIiof$?5Mp$V@511LLs>ua-1%XQ3GWhEE(+?#=)wDxtNr>dWs5 zJ#hdTXp=M0WMH!ud~w=sx|7Ic8tR5j?{?fx7HJWD?p~SqLKP6{u6H<&V-Zs`mTyk5 zd=Zmoo?7qIS%B!nEr#Wo2vxh;rhY-Kw5-f`xtX2gqti6*fJ573;g9x z1F)qw>~C)dfi16I{_V{;uqEj4TzszRo>G7IFyZX^TK){*DoIxoq#`z7-<8o=YQ$Hi zy_`uP_Rm`B^;`MI3PBNLri$o%|LTq|;j?W_&t1CXgg*wha5~OZ(kW^g6!8-%oEwUe z2Z8So0Rfx%*hZ+2$F;w=_Cq{>!h)mxDGPcOBp^JW>-VS8pw(Y#E(p6XU&*uN= zpU{}>uxLS6xmTy?FA^kdfd#elmyFl)qyHZj4|3a+3b_JNBBhvTlHeRWG_Gcm_u;}! zRryQD*_A)TV$0(PMPsVU^H!A>6J*-x%!yf(IkDM8@~FtMAHFNjaJMV7*2gG{C7x_R z!?WVg0WLEoK}_DKHWg=EW<5}xG5Z~m0R))#8{jwy(B?P5yr~AX z`QHJRK!8-g0ZM=X3w{L*wO-TOnOL866%=1s;#ZfGW;X9rgQk$dHz~an9tmkM1uwJ4 zN=27rw+}3uEl6B>LL7W&kCobz+kUW=n4w`z-K91Kt!2Z{uB}*JGyOokEvyq(6bc#^ zK(^A7b|1vsLNv!GRbG>hvlvV3>&=NI+7oCC?a$DA zO5Y)b2@&SFT#Q?2@9OhQV)-PR3**U#9Aa8zG5HO)bo-?}%clHOr3B9&SbygJC${9> zpo0^3_>i2-_ld03yU&EA<3H^R5^G?$$<>`l3N-hIx%0+Y%A5I-l*vLCY)*Z3ZeEu1 z|JXW%{P>cLtGT*xutQGNu@H8`q`_6)g&GPvGJ}Z*E=`Bmf00R#H=BO4uuU#W&?Vh} zce0$snPfp8~JrhjRbYl|C*L#q%hlF8d10?a74X=GA{!2< zhl`eHqf{rtY(?WuLBTnlQv+K|X?cAzxegm>oosMS|P_o8D2azVDOqs(CfW2^2mj z&Nf79(N=bY!eYq8l+O7gtZq>lmNc4)-!cRC^W8>QV_KW88*mf|fvv zO`(>mCkn(|CKw+qlw*PvKL&Dt!J0ac`Rk;bJwWv0)@e2k!YyZ;9+~gid|?4*+xW%p z`vBMXR9HDq6;WJo;cruR%J*XGw%)LgJ3_%cz4EQO$sh$e(%`qf=E3a6g+>9f2fIY z%;RwDG^3DqkH<$PNKPxUJVvjK#v|9BPSha7)iqJOhnnzO*BYlzbqYVF^Xl{@QkaP3 zV)PKu0>0YB>F2&(Lmw^KSTG|t(h+s7s7ksAZJYdQSBu&X_%NvA6P2(!LWP9~mTL>H+ z;{pWyxpN-(H@tn$u9yS`{O%8l0t5v31H5ireV&Fr@0>h8D+DY#e5&SpxIH;9Um*fGLoq+X007OiKF-R>XS;C39LaQ3?pN4mi2 zuH=ie+dCf4uUZb9GN3Jtkg<*4JF*<=n|^lJm4{$uf6CEXTdX|k zW0%4LC8}M!iATWQj48dt=Mv}jVXe+({;2ZC!gDnA*D57i&@$K}WPdW~LDS&;MU@yr z!{h!%QJO-3{YjNrK!3#hqs)A5-a6yVd4?@iVmDMc9qMbh!c@%kPipp)_giZTn`eLa zGsB{=nB=cs|KF#u6|#%Di8SR!twI%WL$&i54%kM;{u5>Qu!YG!DkfM$@`nsctSLZU z{Zk_UHz@P9FaIW=kzeGaF!i6QSqS!NHr9tFjC>4eW9+vGyz;E7Q>f4Wk0>gHG=-_G z_+gl{rj=5m0?j`ZYKjek9qBLi`roH6AejWfV?F^kL_4oBnFOHkF+PDYe*Xe#E3$ja zM&3m~dY)@sVvYSb!Tu-8eC_jhaovasup_li!i6v)OowF`YnNKX#*Y6VQ+qo<^-^J~ z;%{G};{50}Y&H}8{n69ew}B3##~*veKX&W?|KGv}+u9oMfdT*+@V+OJ{WuVEwKBIi zXZ-Q|<1FYvThTz8Z@gTrqY1(5Zr2Q=!&!)_WLh(K?Dj^-Q7OVFwh!Lzkj$G5Dx{4~{43P=R zmTh^?1%$+jVSI12zaS9CNah|wNzr79r=P@}2SdH;sti#SeE;%FT|^~VNFeF%9nK4x zt-HnyL}T1xd_GFN)=ZaICQ$LDRpQ`=!OO`r?q4t5>HF9al)_b&d^~uHNQ6x*S-7;Q ziC8>GlBXd^Fm`m&Z{8=MEX+(0&lWU{w* zV4B#3RFHGB+%)3?T9LT-NA+Wd%GBubJ$|*0tP! z>%(S6UyJ?rdT)Y%7ttLbd3mzqgTBcqapAW-FJoo3@Ag8$340NpG2rnsm#9M|;OTN|xMT$@$)Hab|7m@$8Z^J|lu!3? zlp%UQKGfrM2>Lwsa0Wb_P8U2Vt-eGeno5>(jnI2@#}`(F*YWN$;iV_*OXuKHvLKA{ zLuG!*frU<9gc09&Wa}-*`2gq>u=t&L0^Ls-%$n1zXNND`0xh%Z$rxIZ-&O9^@$uzY z)&{sRH#=W3w;zu#4ZOx!UE_oKS}2h65Xxn-Y|5p|MS-U*)v>`U!dLDiR=P3A`V5}o zMlD|wlfd|^+fcefmRMP+f)%{8_BCRt5^p=VPh=d|S*5oSgWd}}gb}{}csSq}&zK$f z5`h%cESAN!5-oB8vQIdq4bGya#FNa%&ymPTixju30xxugJCF|6Q10+_3mH_Xc+U3t z`mz=W!E!G!vbGH}tyAacKW!nZU>5l3-K<)ESt7Z`TMw*{UGtZEiScd!h+ z@$IOdr-_%`yAMP-c2O^l@mAd;s#G)dhnE&D?FFA4f~p^)R>DeApf0|pCDGou!d(%W zZGq)jUcuUhUX-1`N)}9XIqsm`lK1htQ`4(uL2<6X{eHtMadO$=H1f}U#nLZNB;4BsK5kbrbMdV zguTMU*?Eklc21ILt&ak97IOW)MmR7;m#3u^bAHKDB*IGMXMM%Yc} zOvNnOVU;~o&@9Y#Yv1hGnkbeVhS^~CO=218;9+rLl5ojf1Z&jquH-9s$B6MLh|_jN zRUwaQkhKlH9vKVd(X*gq&5Lr?Tx@an@^%w1Ym+D>Aggc%#@0+Sb)jinl=!XHj%s<7 zC-7`rYgV|6noC$7`St1~4PrSMy&lD+6HRN&Yg-KFtwh~vGlGBMxt9YD5|pCUr}sJS zVbLhtT{j!2>PfM8vQR&FkSZ|>Nv0u1EwE-BA7-o%G7lGxv5zGn4n>)L$1wge!s0pP z5)#X61?jg3HM(Tm;QfHWHH50;cJ_5gl-WdI$e>s-sV=u_IHDG(v=Z836Bl ziaTfuXl@1;n>icaK{7b3j%$8-N^LL}LwN*w_J7Z;8b^~$4FjFCvVc+qkpAWKfv#S5 z=D_c2dLSus+LkJbs2Zs)zi~7;qHGGD5+^$-jV~~M)Cp6t+^r%oqWNwj0+}%?pKG`Z6uNK(b^Nn;UMd=wHEP-cL zl9W!p|3Jw~z{B}K?ot)~43b!@Ag)|RMf6oo{r0LKtt)*}&L?eEJI!`T-N}q-(fDV2 zZ%S0>0tFa)2OkY;q==Ofr&vPN*=Rs0gf{y}Idg0Er27m!Ha$id$sL`RfHRnXQK6x)zi*SYPN$1@=XS$O1E*W5 zfBS*pocy|{4a^ZL9qfdR)A;#-GOAq3)B@e9WqrHNqhV!;x;Dq_DoxEAn@&nI={j3a z`_A0Nz%K@9f+0sV%0$-#j~Stwn*og#{9B(i)xs)~s3c5vqrb@rsB?YkfTGs~y3?5>_+au0gfRqzE4k*>g!10E`bgl1 z%vbaAgZ8^bo9znT||8B3^@&v*UAUiDwWkX{AVXs!kF6L&ct}fONmOsqa zby88LmkD#=q-~WzM2~kb*BVQj6`>1bS4ZTo7^#7=@yJcWaTTexS5LMz9P0xv&mK!I zQP45D_tkRaIsk$@J}idw6=q;j_4C;mKl)jNMAYLYAc-;@obVW-DfGBTpa8##utzC{;IOsvTNpiVT2JRjDHu`$xN3EFKEAs z8ze3?P?nsTqp6aMqZ5$P)X~NKyNd&5T>m#Y4kS9?SHlWDOsL{lQum^pekLE3%Z!6MfV-oWs>r+!c)ZGkz`(YeB*l^=t(z|on`(Tp1>JD0?V3(i z#Zw|4so31FG00g9%|~Ju&JLL`hU$qTcPJ$$S(r#R+5W*DK=m>o3W>r~jy0;I6)fvA z02}e+YgJBT%MH1KcRP0EDC@h+w-#)dez_MnsAStE*XCYNTrn9O79F&3kw;fk@IlBZYnuviyyp$u0zMIWh|&)&o&sHN1>hStP@@M zLVh*f33!>rx31!%o)j#PAaTmN4%Zp+WhH)8@E`XvGr{n&ia;g8ph*?=SB*1va{8~r zfi&%pCo8E-VNnQ_2PM@S(&*6|t_CZF<+eweO1eTZo_kCw5pNS86&4CjWFRB zn*W4@_yo7Yl$Gs0Qolc@WO#T_HRqODAb4D#>)@7LUS(g4M0fOvWNa^!M}$dPJ1%da~~7*q$-88ZdOC z2@ch%BGZCv3OTDCforF6+3g01B2?=Nw7#y~ho$QqXlat5jWVR}z$M_jO-vk4fu{8| z#C+ud?~R98X-?tUfu&kWmo;FdO%qLgy)P6a+$ft#g`pG`9*$&nN+JxznRD+>Jc7^f z8`3TaR*oapu-(s)x3?`M&V5`K6u1XPSCYqXJ?iBbnlEk7gpoPIwGQwX1LMfx??PEc zv5#%Jm4lYS2+xB!5eXb3fJI-PPp$@-5_f#=)9`fc$MFru zV2(8)AGT?Kg(%9p2psdI&;3(9ex&mk-x~WtubFNf-A}st{HdAW;u8i+tT_hP3C=Bo zJC@sh|53H+uk%WNep#gOB>yUm^bQuv?o!)-tt2T4+8_Ot<~z)gp*M4C8`ZMQhv zIO^Q|*?24N{8!&h_@;_*kHEg~^KDX)W%JuurF3+53J`bC$UQi42WGW8yz=Xc&r5UI zb-A7ubDI)-A!3&@8;P!y&n9OohAyJj_tj0OYMCTm!5BKorl{Iq(~*CF6?@~{B%8WB za+1e-ohoJ@U!!WWun?;hJ)oVThhpTIJaetSN6@~ze)M4~gmGc?i~1RpyRNbSATv6% znDwgQGo{r2O-_7YFSC=sR16H99<-GC=bMZ_CHk-b{^4GulI-6B{(imcSAYtTOaA4u z)$feIUo!d0x&m5?{dVQ#cjmvR|{6~}@2Xw!q{JyLB6Gfcj2g>hzjK2f?9-{sP z;HLWl@H1fjo%Q$C@=w-1(0UOh2jK5(=id?jzJUD64?3h|1_1tTIr%&L-&X^_vPZH0 r!v4qF;CJr7JKSHn%{hMIHvP-}D#=2DRP}o#j|7khY5O48cj|uuq@l`- literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..59930bde0b391333f528fdeced04c8fa9edce319 GIT binary patch literal 15299 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 bZS;5dt0)5j4ApN7c?5tQFxvGwze)cEoXM`P literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fb8757177fd0faab4f87ad3bda838998c69ef5ab GIT binary patch literal 15010 zcmeIZbyU<{_dYyGcT0&h(%s$NNOyOKbhmU%cS(064U*C!sR&3*_iv0xk^6qudjEXa z`aZK3Gt8O2uXFA5+56-^a+086XaEQR6aWAq0IZTXXgPoY0JsnU04f0LiH4w!wWE=> zqs~iLTO$W88W$@|{2Z_+WLbbGK>7c@{tvgnaJ-g97adyA0pv9zNkeV~2d05)+g$$! z>F}*jDSKU~M+|EE-F3PMu7P71nI$W{mHqPhw)i)Me#+b$60nz}iKRLxsu1<|3iE1% z%LTHR)I)SIl!4AqCF&szKYiHfwQWB0!BWzoQbWz{`1I^8MEJWd*GeYE7G0sdS-MZ! zFCFMXdA3fiT{bMiaE|B9D?c29m{*O{yK8>fgck=yP_?X3S++@#w$7HI#E4x^yvL)t zoXO65Ukib=aTG>}dEjVj;>9{Q(Gm|Hf=4b2|{(=L#^ z^Uaf80XzMpv+1#nAJ7!olz2nq5aZ~CtH-eBySrVA(7+kMIv^^ zx_k*OOLpF#GDc8rWY3-Qgq5!61kjM&`(QeWD);(vH))!&sV3NCs-H+8mXK&BY~Tj1 zV9Sj#^^S@`aXNtJ@LaTBwz9BFSC|dC*$n0rQAQUCjYg|oM9&L+J!Z~P&dw+9tn_-n z9rFH~&;a!L3-#N~tpke>3JM}5fhnNrUoLmqz-wFcgdI@5KfV$1*raP^KrB?XrX9>V zr?28R7*!c#MHyYLz5=$wKSL(o&ktn-7%p|d;SCWe;bKYq%EsP8-^Rw``_PuBq$RsZ zhvu1CdyjOFl&eNHWJse5KrLdT&qx8auEYUe&_R5U;pOC zbIwhSw`rWPB}{RIBK+N=2Gf>9qMNvUzEo z0DQ-A27|DHW2QmVNGHLkFZqlqlp^5+%)e|4$ftb`SBP_TjGiPX zawHaiqo~J%A7*dq(>|)2ZBd)%0Y=kruKkoI#uWq!weO9ZO4h)jxFaK~!WuN>{M)R( zQnVY6LqreLE;mxKbg2Z!oV-NENr0)1;FXZ~syn}JCD_|Z<_k=PAw|bdOZZo%FE`^# zIXFv4pHm%ngg^DEqo@$7bjcL5IA{zk^5!v0PB=IKOEW8=% zJ;~Cm+L+w;`f>~i^OciuEdx6TyIjghe0#J_*%G>f!3vm_3yD`MR!Vw^jL@Xc`&*KO zXn}2@PoJ=l>!YlNJ~xPC&tIo+4vRIqiyclTaK0vyh-GIkeQ9NJ^n zm%H2Gi#QPy+L=|CK~gz}tIHk6P1&@TF#6&pP%TZmoHis`9EeJ%yVv;bnVk=8DI6^6 z3!0qv2vH>I7HAhjmdrTqLJ$NDQC#;Z#C1}dcv;Mz$5pFA#QQssIb(A*)j(po)I$=| z(OdH49fFCdiDz%%=7P58!mn5~YA!xIJY7aEm(jx4Uc!~%i|3>=uFd|8f-q9jLE*pj zJSJUiDbF{-lP*93K@^)8^T?Xdg=_WhvKYmc3kq$|*i6~F1Pf(&P?h~m`N*tpL9fLv z_ip{<9ynC|Ga{CuZ^^z7B2%CM05$*$1Q-!N$B~C|@t-jT1UT;l%KqPewZ@H^chkZ3 z9r(BTfAF-6wKj_9Xbb1B&^QN>%CC?2uq2+nu;GmpY~~xJ$;R*}zVYN8FT7nVJm|rI zFi%&CCLxEa&3~)DNOr;2#>3^0KT|)EUQ?vY=O<|A-Qe9V<8UKXa7vsLMgkr*e~_0q zp<6+2_uMLNismH601JED$#n+)J(qL?!_BmhegS!8f}d?E3%-nh)aboMOS844huwxr zRAPndfDOi|ArgDo*KvHxWOd^HLDJA3{EF_+tU-fGy45({hLUuP%z6V`KGU4R$pX!# z<}=!UuIlJP!8Ac$FmMs4vA3U6&YsCa)9xFP_rF>QPFvDHg8erSQf3ew#sqqg6L1BA z`KM2HFf}rAbfEq5LI1sTO^cJZS*HVzMUo{Pu1cbtx$IqcgeH(5)+S%^brmP0v%x5MUiH%30>r$R5mAE=;$GpkwfwZP5 zFZGRm{%$gOekp2uw7Jd(@Pyy*h{Q_36t=I`l+Ph^?kSwH`3@7}#aHFw1_YOB&ph;@ z$&(B-8hCCLm{+jfGj(W(roAHm(4rxry`X0YIP+H-1-;a4BTH_R2m#a7goz4+wp&^8 zrt(}B;Z7dKa_2lacKl}u2hTF~bP6;&O7ik;XBIh##f)^x#I8g!nh- zbyVxq7g)0F-5hIljq3CeFW8ywagb(INrizS!U!=ztg%_?AxI>gkc^E_Wa2XQg&4m0 zV)XGCBRxawy4*D16+ZZKN36AXBh14Z(UrlC^v2n7&{vuZFf+B>dRd5b;P6_+c zQ{eD-e-C_I_xJHr8VLUQNZ{jTm`~+;Rq*&@DJl^Kq_2!{=;yw;(K`8On6%L zqPHwoWTj+cV~@_n`XKb;w_2Xnx^hgDxvndeOm6hLm0jtX%heAdlYC`#W2qti@WrzL zOWZ_4;k0Ik8LrHMI=D}hGRtmO!nCXIy}G&jy!mC2x$%th+ctCL9l}1sJ|faCh!S+1 zk~eA^RtHKBd#mXw7NQ4Jn%&D3wm!==P(C{hKF%9K&c-wK-OEqv=y&x8^al*c?(oS} zt;kfVXRWl3HYn;lYheqhlE3Lv+?-s`Z(psr0G;!fsZ5dlFkO6b!WAg?fVUwb4!lBB{=P9MErywzjQ$_wTM>-+PsbGqCH(K(rb1I)bP`-6_K)8_`~hE2}anOPASY z8PxhZ_~M*Cw{4mu#6&b3rMa?Tg)*^Ax|Ryn7iIZ?EgE+LcfXW)lbt0$sD2mz4c8A- z@oX!XCo8N;_-tG36s09m=<^81zeQ7WjEc7<0s!FW^h3$57n5FoU z%1c2rb;VcDKRwx8bo(Y2dfZCh!~lZRq?U&0}?BGlZahkh^RbhQeRb5ZLM5* zNLR`VpvtZjGpWq-HmfJ1+}jp~sTRRpkqpj?bL3jq?c$zDc6Dk+gtG3j7TqwC1-2-j zSXFNIC2P%Hg-y^a;F2MAQUw?^1nXUMXk?At!wJ-INy!IC2+V$Zz195c?3JWMkxSuC zjeLjE_KqLn&dq)>y9anv8Ta!ts;*t}gQQljHXl?|T`39)|3o^N&N&q7ZhoQrBLjZ= zbvi!0oNdt2G+uDd_2#WK)+?$vX;^|MH_y_C3!~=6ph&cH1fAMGd;bW?pHZ2E{`-^u>vKHsyPI#- zmy2f`J3HqVCkL~;S79996_YwTtQDEwK#-f;442oTy)TGK>v^*2tB#>xhqlSaC$rti zc$ANL&#sVu)v0N}t9r{TJ;0Pb86b@cPNI3Mm2=0uvy<6;MQ^vyb4_oz4ScI|)G<8c z&%36e#1qQUG2SPtl=T2BSGz}6ZKfS*a25K3oGxnloSbf*2P(J+axLZdo4u#v#i`Ra z&%O7dlzR+o)+y#JFkctVcuzke^&!`V zP`ylUGT#)cvpAD4bMJQrl>#WfgRA^T?=VdhYCgN0yWkL5wsQeb2O+_v4mLasf8j_M2`~*WzyGdVo zVyf*&w=-p*Ec_xUY(FD_XLtAw6>DxI^KKm?KffF@6W9>oDhR7d&AORRbvGI&52l!3 zU1aKf_+n^+L$Ko$F5CgffbKXYd?y22v`unMaz1mg*EA6s6op@qE*9Sk-6sY~N~GI9 zQ8}cSU_c?Cc0CcZ#2KQi-lzvv&Qq1i1nePZWvTpBo3%|nN@c!TRJhtZFgtHU@e9i$ zP!)Oc4VN*f#)>+BO_2v-h9y7ikVK!xd_$LZxCl6Oz_hE_T@FX%7p#Os_>5zGV?28$ z-EoVI28RBsvcpN(_b%E=<$gXhvQU*|Px z;|=NF@$*@&^0n*zcQG(D$uQ86z1+8JW$oq^18IjTM)DpiJwB)`;1;SL3ls# zug`IQa{WpFz-wsgo&!(8_ayh;+1DJnD;JSuG5gv`w)1J3QC>cXS4>x;v=l1F8WCx>$d zkIGsO59b0Om2vJK&gnfW!`V7iWq4Tj@iOwwZB@|H9TX}w>TfF7pD@ovlf{yM+c1yU zU&-4g)Fss2)0J0?>fJtk#};&pOo~GK+oZF8`rRnH7`hL1RdnQgJ(;vMypej|0igk* zL7{=-W-snM-rU;3T@y(WOEF1NNl9=XZ4T{58O-55Y(Hb~XWb8|e7ux-bH2&^@irp= zF4dZlNJu0!d@cOojcX?F((>jGulM~(56MZINq|cv3RXAP3S$keOoOMd`zWITm*`K? zdCtPc?)5xOd*T=4Zw?6v zf3mdnG+l^0%w}8@{AKg})p+fTH9?auAkq(8YfiJxWV?b#0}zpa15aiIAf`j(5i(}XfaX?GMJ$L}@&v{C~v<&4;4OX>pYClNPob-a{Q&2Cg6hQKc+ zEWBnUAVR<|6-FLMf(OivJ+=gZ+Q`3n4_}N20*(0nq>i#-znk!jGvg;gjPC~grz!e^ zX};4Z_{BFIQ48w7RcyzdBrOtRy&Z~7PoO98KHzJDQbUIr`^C2AEK9ENP|zVE>C45@ zOyHkj9W|Vj6{CHvB^0N=K;7Prc-@?2SUS}w!zmehp;0~ zzoti}sauY_Y{cz_O;W zbNa?Zqc4A-)m~-+D9BY@FWorh_L_9%yMAw4Tz$ACvTTVJ5Ldfsu)#?4tC#3z9`z@M zp12>7NftjLXCFcer~ZI^_39zy_D@LejE9i#enJ*LfNXjzROoEi(S+K9hFpSS%?Kp_ z75pP~l6u8P9&f|BB-ab8&6Jl9jB@!{ZhGBfXW zN`XfO|5@?0Caqa7&>{8fkbDDWnj=6X^qW#3I2Ft{^L&E%tTJ(-*r47?w&R#(Ds4*B z5#?(GW+(00(f$0U)2nZzLM`_w)qO1&E=7T8Y92dM)M+bj=iLFzZZE!#xE(BYiePRz zZ+5?q{LpML(*ZF#wccL3zex$QV&0yiag0~RYIQyLdiU_H_?A9FHH|8srH4NTI^l6T zG{==3?6KPn^-Vj-Nz-(ye!9-{*-PFnuvVc%cJL%iwp9qmV3mk5kI^7O0tj2O2{w=3 zAWE=~{8dSoXI%`*m$81dbB9=d-5h;G3ifN}fvc5~c8!Mp!u%u3$1!uhfz^#2n52Z`*;NRs#;b_IW z=TRgKUHHGlFf$&Y6o{B`Sz1DqFtp-x>tzO@;K*2XMZqek?IL|XmFa4!UXYduIfG=d zumq1;Hk_D47q*XMH`ocDA{|4n_YkvW0Jl7io-y>eq$Z2KYBs^+sI6G^S}(te8*OW` zSKfO%6iSJ|fbhj}ab){7rzevv$Fs7Xni;05r!_cYww3*p8|+v62ZczzHasHt_E_oR zJeZAsqt?2pHmy-fAewHd=kq-dNlw`NC1Yo-AHx*~{FrIJI^vcKZwkUK^f^k7dS4y3 z@nWH}{#=bbK6a{>WgjF4?w`BU{nr&Ld=VNocL;bnRhKQq*77{5Wx)< z@lo-NR;H4jWS`W;b|XdGe;QO~LB2X4CgTrn@_oDK%lGXb-=Et(1x(-T4>1o0@)`k9+2RKfH1>&A#dx_rQSeVws^vcb6CRI*ZAj$ zV8G2EhoGU`Ol^`gdA|s3n`{5&=JOL3QHmnh!mc=_4kPrGSeh-mvytcRJ|9^?;@*&4 z;#%`L%E_l^bi&rs7{`B>msAbZwG2%>!Vua#G7#TX?ZQgg807A|wha^Mas6K2VpR@v@9vck5)@V5oF7 z+tu9OoHp#AEiN7Jd|JO!>`<+!S3DVt=hn7!@$_~%wOU##O|;pWw!fzRHWl)*FNBHk z6@5;`fM>WW(KjR_ujktpD?~$r_veCJu)%ajp9oHtc9CdAKidn@itgI?(4!#ekv;2* zj|iq~36$LooyUzo?%9R->Y8)i=-V$kfgLlybSRQ%!wX@s23D}U>#di}4Ut4-&z_S+ zj>4~;HTzJ2ck#^dR!l99(>+#?^Tgnt;YPj=vAP(BFkF{Qe7Bh z-Q{|@y>>aP_r}xjz@$3ih8LffaHEw-&zE8+`;aI5x-JUT?Kh9_VUE5>hRH_3&VGT3 zlUOim7GAqd!O2JPQh?|L%%J-{%~u)8+<7FqEeR4P0a-eh((sJ^TH+LVkihc)h!kzh zFlIj#p-PM-h0R8y$VPVatI{)Sbgb2c3Y3G67)K3dq+e{X&l02^;7n43B~+*a6sC>3m*P5!2Y@J~t*4=5!_ zGmihMl**G`IMq07>;c37E?jDv;`xM0R^8@8zt4OxXCnvm#tleR3o+~@eQfm}IiA7P(|i)QYDi&3NrCm)5M z_<_fCmif!_Hie!m2`KpS@x)y>Vh~GgT-T+*>0u7xaJ|54O|_5F2ah5w7k;ASw;Vt1 z{PonCx|a!7E=W<%{S`+(0lz^R1Dh&29)rtp{1hkw>ZUrg9WfkB3Nw=cjbSFVqpupR zk1L@UJE`nTAIwA;?GwM|ORzfsROZ$WG<|dbQW92%%>0iE_$hnI?802+FRWNJM$Yt# zR{+WC{qUUKXO&uC83E6NDkr+0YMAU4xigtkS3NDd*#5x11?P-|usqSxVtlM8>5bb8 zf_{~1aq*!DQQPql;^nHw^GrwQD``j@KJfOopo1wy$dO2Y)~tXJmi0m94GS%|)8>)` z@inNlt&8T79GsFH=rGmU!!+Ez@h0Yq<@p!%7(@V5{O&MgF=~5;UIIfqJVp*=wDbu! zc{l7<*~-&)Oqh*@=nUjRxpB=?KU#aZ>zs)z)5yps2~*P@Ct?}fr;8}G-gjr2cpU=X z_h*wsg)8WB+P#uE_v^D2IyXm~Z>PFhO5oh?Zfh_)c-`;1S-o$+P37Lot%kzmO~#8k z25aVAa|PyObu^wuhq^F^+W8d|`J#^R$#aAC&%fh@9rkD>T5mqg20$EvL~TalYK)=M zt4uK-?-4usn55MZ(X=8omTgvZab=iPdE3)B*qzh2AC4^bzd>DH!@e(Nq&{ArdE8;0icWwt09uHILt!DN{Uf`?%l7OID}>J(hAn4&ebv}j_* zdvEPqaT~T0Sd0jMx}OwBdD9Agj%T<5l3{WVWf^cT-SzsVW)&@x zgHs>Ni+#sWzU~rOoGP#)GWqNdl11zvpdh3fbve4KL55H-nz)uZ8&!3Q{J~Uo6cW;2 zumvBxb=O8!X_iEiyl)EN`2d$HlBoH?O6KuLq_bx=DamoyBIh^dHV4{%n#!5n0ZJyRO;rM4c`bf2mRU_f5 z!B!s}6zUOr+1?!K1W-s08r#gIKwFfZC)cA&=T{14+$J%`N{qP5ACx9#3l1saV_tS4Cp!giV|%l(B;l|wB`_ASuBhHA|j`kAbbIN&WtwIiDgtd96}U31zxZHyug z-PWxrc?Yyc)V1)HHzjJ|hw+}CdBb>o!yGUGG&DFA7~1JvgV9*8j;nmUPps7wLc9a^ z?ElO^0O(mj^Z*B`Q*;0T{%4=>;OJ^;Uu1tD@abVo8d44B`0`qSs-XPo+u~POeC6hzzGwLi}vWO~agPMaBxpyd=!qKApHp z7uN#>rpVPT+TO6qq*s^;e}!$zej*}KOp%lQR#~P^J|3-3?WJ9Rx69|30nk$fQYAMU zd=xp$maNV+Z{a^!4zf+QJcU(L;&H7)QHUXdRKj7!Z<=l-+E9yFu$hqHT`bgZimjtM z1z+W;rc#sPRbh435B>~E%;)ti7KdZ5#l$`Lc_9wuoCa!0ETdrHSJF1aZ= zI#;646@-j}t7~2}OvNke4FUc=!lO)sBuVclRylOb6QC46Soihwu6W+;95~OU6k&5M zQ=fnmS==s-m10)f1Vnzwo7}8av=nIv(})c_(hB~{Yn`{rk(h!5W?S?sL*+p;ie>SHdxb1FC{&?a)CdBM22c zm^TFK!Q4Kl{2K?sbt&Hv?xEjOSI-|Vk(f}*%cC|2@l_wFTNKY}(0vfHK=_0fi>0lW zvH==eRY{&{*aK?*Y^mDlY2!1t-Hev~kOry4!mUh1Jf60D(CV5OW9rsevr-3W-KPNKYBqRUE~rKn2;8)Uqjr51>GqL=I@ODd7=z%Nl;EBDGACQIx)%`Kn3Us>~b z?~JZA7k=Dn-wpttl-g!a6>!Wbqwmuc%L$N~iq~tde1tF98ozt<)KY_=yEyYSY)N8C zAa85j%S__g{=mmL(_EbyxqDx4i?^y_UM(pRpL&(P%p+$AJFiZTM|RJ5A^2ZfRt@Oy zu3aAZV=tjnI9iD#!+==R6|+wry|l5cxH;ud%;7Io>}cEYT@YL{unC|Q#8`Y2rNxOE zGY~1_WonYWLoL#|OEKK#yT3+6={je(R8DFdkN6@*DW0+Fe0o_>kem&=S%pyB+#qDy~ z%abnb#y2x2aCxF7X}VJDdzOEef7j&8dWhmceT1#NtG|^u;=^-C>Fw(D+xwO`Xv&YEa>cxxY!{G&LNx?BI%(I zi0SZ?c10xTpbKF*J>zu>B!e=}GsqzmQD`s&_Tc)&=M3w&9c17lHH;j|AXT0+b#Nj> zyzGkT(^MskMPKBXsHf#sCq~A$j>em<1$5cEpj(Y_^8V9!5Jqo;ffvDTFAiUEJGUuIeQyh2U-Ig zd!z3iBrwnSe>qt|H}Z%X0_J2P37-ev`F~hW++AIT(#S@vHqVkvir)`l5|^S@6Ejc0 z@kD=NHwmdFaX$KnlX1hNaA6Cy)Ph4Rn~8wz2{p(3mULjoj<9CdfNMF44JSPMg1?}H zv!@b_ps>l>2WN;p?|Wc#tJ0mX5=S5kG_K7K4QT?!Ynl)VGC5WVLZOS zI(2oX5_uaajSXemIy7&WQU#WF7HD^zrZvWcn_dMb-Xx%QfNx^K#}XS1sgL3T?+d4k zLiFrQDPc))T5h>+HeE#ZYl-b{0eQ>rwCidnY?@YWns>;&gVl-%luuOn>|P!`QA=X8 z-0~KLt$Y z=G`(c&kb;GCVE)(sz!Rg;mqQgAAu!Ebr)yRCz1%}I)G8|>7fO?yzer|^AlfII9%&s zhy0JvCRV-mGwnp(!F3h)_O8F4EK(=C3fnw$uf0F?WZ8$*o@MmThN|CL!3#6Xe}Z<@ z>pWJ26Jqz#qta@?b-D{fV@xBPJ27=XD!RYWjAdXQ_r%z*W4YY}=)nIRdgvygVkm*X zAOJg4;MJxFovD+9qm9-7y!$`C4FKfDXj%CGy4n+aog7s%os)=--bcftI_v&n4u&*_ z*qPGc-jiHI#kndq!okS}5pirte6~XWBvLb#e-I7{4>W2>*~$N-$*QYHH>OJ;OSOdv zi7SN6M;|9I_c$JNW;-iLYp&pEQcy^XLUe%wZrcx-E4>pWZ4)_F*3<5JS6-&B#S3b- zX2`v40(+LFD7II9zOu_-P4B~YU%J;bw(ObNH@jYe^SZWG3MTnBFc=zPts_lP=tb)) zyfciUB8a3f05@`~E?)L!O^+f!G$hhI<*auo&DDySd|ky+!4i&c_cBg+l{9pncib01`VICf}iyg1O{B}=kjC^qTCz%mq!ir z0$b~+kAXa)22N%E{Q}*eCjI%}zg(x2ll&Xt?^`_&0ZM^=@`F1*j};%^ZTO?Q0z9pG zbkpIn^51FTe^dd0Bj_K>|0OB>G0x*;;6F%=aKB0XBQ^Lj%Ht%+KPbMyBZyz7JVg1C z68RYA@j=xe6r$(M_dWP02qfp2R;;9&b@T26()}{R3b}@dMz`diSyF{{yS#C#wJe literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..db126a2e427c0e3115b97993d194c4f76e097471 GIT binary patch literal 15436 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 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ccb274e7a7696370de6231f733f7845a4b22095f GIT binary patch literal 15344 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
TB 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∋7ntPTIkJ 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 D@57KD literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f20b84a06cbcf349df37f9ecf7d502c9c309678e GIT binary patch literal 15321 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 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..49abd74cf4cc942f322910187473ee138df2d7e4 GIT binary patch literal 12378 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 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f12c84e58d95894593f397a8a16858689f304c81 GIT binary patch literal 13406 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 G)BgdLCc*vy literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a31818e0b6900d02754ce7efb4dddc6886523e22 GIT binary patch literal 10031 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 SB^>}ruOI1GZ{LXCe*GW0l29T5 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go index 868f814..ff48968 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 1, BaseBet: 10, }, @@ -141,55 +141,55 @@ func init() { CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } CashManiaFormation = []*structs.CashManiaFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 2, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -197,124 +197,124 @@ func init() { CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{ 1: { - Index: 1, + Index: 1, ItemID: 1, - Value: 10, - IsMid: false, + Value: 10, + IsMid: false, }, 2: { - Index: 2, + Index: 2, ItemID: 2, - Value: 5, - IsMid: false, + Value: 5, + IsMid: false, }, 3: { - Index: 3, + Index: 3, ItemID: 3, - Value: 1, - IsMid: false, + Value: 1, + IsMid: false, }, 4: { - Index: 4, + Index: 4, ItemID: 4, - Value: 0.5, - IsMid: false, + Value: 0.5, + IsMid: false, }, 5: { - Index: 5, + Index: 5, ItemID: 5, - Value: 0.1, - IsMid: false, + Value: 0.1, + IsMid: false, }, 6: { - Index: 6, + Index: 6, ItemID: 6, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 7: { - Index: 7, + Index: 7, ItemID: 7, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 8: { - Index: 8, + Index: 8, ItemID: 8, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 9: { - Index: 9, + Index: 9, ItemID: 9, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 10: { - Index: 10, + Index: 10, ItemID: 10, - Value: 2, - IsMid: true, + Value: 2, + IsMid: true, }, 11: { - Index: 11, + Index: 11, ItemID: 11, - Value: 3, - IsMid: true, + Value: 3, + IsMid: true, }, 12: { - Index: 12, + Index: 12, ItemID: 12, - Value: 5, - IsMid: true, + Value: 5, + IsMid: true, }, 13: { - Index: 13, + Index: 13, ItemID: 13, - Value: 10, - IsMid: true, + Value: 10, + IsMid: true, }, 14: { - Index: 14, + Index: 14, ItemID: 14, - Value: 15, - IsMid: true, + Value: 15, + IsMid: true, }, 15: { - Index: 15, + Index: 15, ItemID: 15, - Value: 20, - IsMid: true, + Value: 20, + IsMid: true, }, 16: { - Index: 16, + Index: 16, ItemID: 16, - Value: 30, - IsMid: true, + Value: 30, + IsMid: true, }, 17: { - Index: 17, + Index: 17, ItemID: 17, - Value: 40, - IsMid: true, + Value: 40, + IsMid: true, }, 18: { - Index: 18, + Index: 18, ItemID: 18, - Value: 50, - IsMid: true, + Value: 50, + IsMid: true, }, 19: { - Index: 19, + Index: 19, ItemID: 19, - Value: 100, - IsMid: true, + Value: 100, + IsMid: true, }, 200: { - Index: 200, + Index: 200, ItemID: 200, - Value: 0, - IsMid: true, + Value: 0, + IsMid: true, }, } @@ -323,164 +323,164 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{ 6: { - Index: 6, - ItemID: 6, - Multi: 1, + Index: 6, + ItemID: 6, + Multi: 1, FreeSpinCount: 5, }, 7: { - Index: 7, - ItemID: 7, - Multi: 1, + Index: 7, + ItemID: 7, + Multi: 1, FreeSpinCount: 10, }, 8: { - Index: 8, - ItemID: 8, - Multi: 1, + Index: 8, + ItemID: 8, + Multi: 1, FreeSpinCount: 20, }, 9: { - Index: 9, - ItemID: 9, - Multi: 1, + Index: 9, + ItemID: 9, + Multi: 1, FreeSpinCount: 0, }, 10: { - Index: 10, - ItemID: 10, - Multi: 2, + Index: 10, + ItemID: 10, + Multi: 2, FreeSpinCount: 0, }, 11: { - Index: 11, - ItemID: 11, - Multi: 3, + Index: 11, + ItemID: 11, + Multi: 3, FreeSpinCount: 0, }, 12: { - Index: 12, - ItemID: 12, - Multi: 5, + Index: 12, + ItemID: 12, + Multi: 5, FreeSpinCount: 0, }, 13: { - Index: 13, - ItemID: 13, - Multi: 10, + Index: 13, + ItemID: 13, + Multi: 10, FreeSpinCount: 0, }, 14: { - Index: 14, - ItemID: 14, - Multi: 15, + Index: 14, + ItemID: 14, + Multi: 15, FreeSpinCount: 0, }, 15: { - Index: 15, - ItemID: 15, - Multi: 20, + Index: 15, + ItemID: 15, + Multi: 20, FreeSpinCount: 0, }, 16: { - Index: 16, - ItemID: 16, - Multi: 30, + Index: 16, + ItemID: 16, + Multi: 30, FreeSpinCount: 0, }, 17: { - Index: 17, - ItemID: 17, - Multi: 40, + Index: 17, + ItemID: 17, + Multi: 40, FreeSpinCount: 0, }, 18: { - Index: 18, - ItemID: 18, - Multi: 50, + Index: 18, + ItemID: 18, + Multi: 50, FreeSpinCount: 0, }, 19: { - Index: 19, - ItemID: 19, - Multi: 100, + Index: 19, + ItemID: 19, + Multi: 100, FreeSpinCount: 0, }, } CashManiaOthers = []*structs.CashManiaOthers{ { - BaseWinPro: 0.15, - FreeWinPro: 0.15, - MaxWin: 2000, - WinNudgePro: 0.01, - WinRespinPro: 0.02, - NoWinNudgePro: 0.005, + BaseWinPro: 0.15, + FreeWinPro: 0.15, + MaxWin: 2000, + WinNudgePro: 0.01, + WinRespinPro: 0.02, + NoWinNudgePro: 0.005, NoWinRespinPro: 0.02, }, } CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 1, FreeWeight: 1, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 1, FreeWeight: 1, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 1, FreeWeight: 1, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 1, FreeWeight: 1, }, @@ -488,86 +488,86 @@ func init() { CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 12, FreeWeight: 12, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 4, FreeWeight: 4, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 33, FreeWeight: 33, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 50, FreeWeight: 50, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 50, FreeWeight: 50, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 50, FreeWeight: 50, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 50, FreeWeight: 50, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 50, FreeWeight: 50, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 50, FreeWeight: 50, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 50, FreeWeight: 50, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 50, FreeWeight: 50, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 50, FreeWeight: 50, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 50, FreeWeight: 50, }, @@ -591,184 +591,184 @@ func init() { CashManiaSymbol = map[int64]*structs.CashManiaSymbol{ 1: { - ID: 1, - Name: "10倍", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "10倍", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "5倍", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "5倍", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "1倍", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 10}, + ID: 3, + Name: "1倍", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 10}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "0.5倍", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 5}, + ID: 4, + Name: "0.5倍", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 5}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "0.1倍", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 1}, + ID: 5, + Name: "0.1倍", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 1}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "5FreeSpin", - IsWild: true, - Group: []int64{6}, - PayRate: []int64{0, 0, 0}, + ID: 6, + Name: "5FreeSpin", + IsWild: true, + Group: []int64{6}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "10FreeSpin", - IsWild: true, - Group: []int64{7}, - PayRate: []int64{0, 0, 0}, + ID: 7, + Name: "10FreeSpin", + IsWild: true, + Group: []int64{7}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "20FreeSpin", - IsWild: true, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "20FreeSpin", + IsWild: true, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "wildx1", - IsWild: true, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "wildx1", + IsWild: true, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "wildx2", - IsWild: true, - Group: []int64{10}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "wildx2", + IsWild: true, + Group: []int64{10}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 11: { - ID: 11, - Name: "wildx3", - IsWild: true, - Group: []int64{11}, - PayRate: []int64{0, 0, 0}, + ID: 11, + Name: "wildx3", + IsWild: true, + Group: []int64{11}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 12: { - ID: 12, - Name: "wildx5", - IsWild: true, - Group: []int64{12}, - PayRate: []int64{0, 0, 0}, + ID: 12, + Name: "wildx5", + IsWild: true, + Group: []int64{12}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 13: { - ID: 13, - Name: "wildx10", - IsWild: true, - Group: []int64{13}, - PayRate: []int64{0, 0, 0}, + ID: 13, + Name: "wildx10", + IsWild: true, + Group: []int64{13}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 14: { - ID: 14, - Name: "wildx15", - IsWild: true, - Group: []int64{14}, - PayRate: []int64{0, 0, 0}, + ID: 14, + Name: "wildx15", + IsWild: true, + Group: []int64{14}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 15: { - ID: 15, - Name: "wildx20", - IsWild: true, - Group: []int64{15}, - PayRate: []int64{0, 0, 0}, + ID: 15, + Name: "wildx20", + IsWild: true, + Group: []int64{15}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 16: { - ID: 16, - Name: "wildx30", - IsWild: true, - Group: []int64{16}, - PayRate: []int64{0, 0, 0}, + ID: 16, + Name: "wildx30", + IsWild: true, + Group: []int64{16}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 17: { - ID: 17, - Name: "wildx40", - IsWild: true, - Group: []int64{17}, - PayRate: []int64{0, 0, 0}, + ID: 17, + Name: "wildx40", + IsWild: true, + Group: []int64{17}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 18: { - ID: 18, - Name: "wildx50", - IsWild: true, - Group: []int64{18}, - PayRate: []int64{0, 0, 0}, + ID: 18, + Name: "wildx50", + IsWild: true, + Group: []int64{18}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 19: { - ID: 19, - Name: "wildx100", - IsWild: true, - Group: []int64{19}, - PayRate: []int64{0, 0, 0}, + ID: 19, + Name: "wildx100", + IsWild: true, + Group: []int64{19}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -780,32 +780,32 @@ func init() { CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 8, FreeWeight: 18, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 18, FreeWeight: 15, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 18, FreeWeight: 36, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 28, FreeWeight: 29, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 28, FreeWeight: 27, }, @@ -813,89 +813,89 @@ func init() { CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 48, FreeWeight: 4, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 24, FreeWeight: 0, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 6, FreeWeight: 0, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 322, FreeWeight: 56, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 800, FreeWeight: 30, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 300, FreeWeight: 15, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 200, FreeWeight: 10, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 10, FreeWeight: 1, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 10, FreeWeight: 1, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 1, FreeWeight: 5, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 1, FreeWeight: 2, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 1, FreeWeight: 2, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 0, FreeWeight: 2, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 0, FreeWeight: 2, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go index 7d7804e..457a7eb 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go @@ -9,170 +9,170 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{ { - WinRateMin: 0, - WinRateMax: 0.01, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0, + WinRateMax: 0.01, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{140, 10, 20, 10}, }, { - WinRateMin: 0.01, - WinRateMax: 1, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0.01, + WinRateMax: 1, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{1689, 98, 176, 100}, }, { - WinRateMin: 1, - WinRateMax: 3, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 1, + WinRateMax: 3, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{60, 8, 10, 2}, }, { - WinRateMin: 3, - WinRateMax: 10, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 3, + WinRateMax: 10, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2883, 100, 100, 250}, }, { - WinRateMin: 10, - WinRateMax: 20, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 10, + WinRateMax: 20, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{820, 1585, 100, 10}, }, { - WinRateMin: 20, - WinRateMax: 999999, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 20, + WinRateMax: 999999, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2884, 8, 10, 287}, }, } FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -180,81 +180,81 @@ func init() { FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneDragonFormation = []*structs.FortuneDragonFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 1, - NodeType: "SureWinBaseSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinBaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "SureWinBaseSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinBaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "SureWinFreeSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinFreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "SureWinFreeSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinFreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -278,11 +278,11 @@ func init() { FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{ { MultiplierCount: 2, - Weight: 3, + Weight: 3, }, { MultiplierCount: 3, - Weight: 1, + Weight: 1, }, } @@ -291,44 +291,44 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneDragonOthers = []*structs.FortuneDragonOthers{ { - FreespinTriggerPro: 0.005, - FreeSpinCount: 8, - MaxWin: 2500, + FreespinTriggerPro: 0.005, + FreeSpinCount: 8, + MaxWin: 2500, SureWinFreespinTriggerPro: 0.0273, - SureWinBetMultiplier: 5, + SureWinBetMultiplier: 5, }, } @@ -398,103 +398,103 @@ func init() { FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{ 1: { - ID: 1, - Name: "Wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "Wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "灯笼", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "灯笼", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "福炮", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "福炮", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "花结", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "花结", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "铜钱", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "铜钱", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "X2", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "X2", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "X5", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "X5", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "X10", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "X10", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -504,4 +504,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go index 91f5598..8a06843 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneMouseFormation = []*structs.FortuneMouseFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneMouseOthers = []*structs.FortuneMouseOthers{ { RespinTriggerPro: 0.0123, - MaxWin: 1000, - ExtraWin: 700, + MaxWin: 1000, + ExtraWin: 700, }, } @@ -273,37 +273,37 @@ func init() { FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 3, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 5, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 7, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 8, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 9, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 10, }, @@ -311,76 +311,76 @@ func init() { FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 300}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 300}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "倒福", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "倒福", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 30}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 30}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "爆竹", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 15}, + ID: 5, + Name: "爆竹", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 15}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "花生", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "花生", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -390,4 +390,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go index 0a51f61..82d9173 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 60000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 90000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 100000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 300000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 900000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 1000000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 3000000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 9000000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneOxFormation = []*structs.FortuneOxFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneOxOthers = []*structs.FortuneOxOthers{ { RespinTriggerPro: 0.0107, - Multiplier: 10, - MaxWin: 2000, + Multiplier: 10, + MaxWin: 2000, }, } @@ -273,37 +273,37 @@ func init() { FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 4, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 10, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 30, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 40, }, @@ -311,37 +311,37 @@ func init() { FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 2, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 3, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 4, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 5, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 6, }, @@ -349,85 +349,85 @@ func init() { FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "金锦盒", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "金锦盒", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 20}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 20}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 10}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 10}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "炮竹", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "炮竹", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack1", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack1", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "SuperStack2", - IsWild: false, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "SuperStack2", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -437,4 +437,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go index 48c8d7a..809fd22 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 60000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 90000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 100000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 300000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 900000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 1000000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 3000000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 9000000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,156 +141,156 @@ func init() { FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{ { - ID: 1, - PrizeValue: 0.5, - Weight: 150, + ID: 1, + PrizeValue: 0.5, + Weight: 150, NoWinWeight: 100, }, { - ID: 2, - PrizeValue: 1, - Weight: 25, + ID: 2, + PrizeValue: 1, + Weight: 25, NoWinWeight: 25, }, { - ID: 3, - PrizeValue: 2, - Weight: 9, + ID: 3, + PrizeValue: 2, + Weight: 9, NoWinWeight: 9, }, { - ID: 4, - PrizeValue: 5, - Weight: 55, + ID: 4, + PrizeValue: 5, + Weight: 55, NoWinWeight: 55, }, { - ID: 5, - PrizeValue: 10, - Weight: 6, + ID: 5, + PrizeValue: 10, + Weight: 6, NoWinWeight: 12, }, { - ID: 6, - PrizeValue: 20, - Weight: 3, + ID: 6, + PrizeValue: 20, + Weight: 3, NoWinWeight: 9, }, { - ID: 7, - PrizeValue: 30, - Weight: 0.6, + ID: 7, + PrizeValue: 30, + Weight: 0.6, NoWinWeight: 6, }, { - ID: 8, - PrizeValue: 50, - Weight: 1, + ID: 8, + PrizeValue: 50, + Weight: 1, NoWinWeight: 3, }, { - ID: 9, - PrizeValue: 100, - Weight: 0.39, + ID: 9, + PrizeValue: 100, + Weight: 0.39, NoWinWeight: 0.9, }, { - ID: 10, - PrizeValue: 500, - Weight: 0.01, + ID: 10, + PrizeValue: 500, + Weight: 0.01, NoWinWeight: 0.1, }, } FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{ { - ID: 1, - Count: 5, + ID: 1, + Count: 5, Weight: 80, }, { - ID: 2, - Count: 6, + ID: 2, + Count: 6, Weight: 15, }, { - ID: 3, - Count: 7, + ID: 3, + Count: 7, Weight: 5, }, { - ID: 4, - Count: 8, + ID: 4, + Count: 8, Weight: 0, }, { - ID: 5, - Count: 9, + ID: 5, + Count: 9, Weight: 0, }, { - ID: 6, - Count: 10, + ID: 6, + Count: 10, Weight: 0, }, { - ID: 7, - Count: 11, + ID: 7, + Count: 11, Weight: 0, }, } FortuneRabbitFormation = []*structs.FortuneRabbitFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -301,58 +301,58 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 2: { - ID: 2, + ID: 2, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 3: { - ID: 3, + ID: 3, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneRabbitOthers = []*structs.FortuneRabbitOthers{ { FreespinTriggerPro: 0.0106, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{ { FreespinTriggerPro: 0.01785, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{ { FreespinTriggerPro: 0.00577, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } @@ -390,85 +390,85 @@ func init() { FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "钱袋", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "钱袋", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "红包", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "红包", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "铜币", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "铜币", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "胡萝卜", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "胡萝卜", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "Cash", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "Cash", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -478,4 +478,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go index 464f49e..d483857 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneTigerFormation = []*structs.FortuneTigerFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 4, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 4, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneTigerOthers = []*structs.FortuneTigerOthers{ { RespinTriggerPro: 0.0104, - Multiplier: 10, - MaxWin: 2500, + Multiplier: 10, + MaxWin: 2500, }, } @@ -273,37 +273,37 @@ func init() { FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 0.66, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 3.34, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 11, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 20, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 50, }, @@ -311,85 +311,85 @@ func init() { FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 250}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 250}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "玉饰", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "玉饰", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "福袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "福袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 8}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 8}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "橘子", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "橘子", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -399,4 +399,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go b/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go new file mode 100644 index 0000000..8d88753 --- /dev/null +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go @@ -0,0 +1,1339 @@ +//go:build !debug +// +build !debug + +// +package base + +import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" + +func init() { + GatesOfOlympusBetBetChangeList = map[int64]*structs.GatesOfOlympusBetBetChangeList{ + 0: { + Index: 0, + BetChangeList: 0.2, + BetSizeIndex: 0, + BetLevelIndex: 0, + }, + 1: { + Index: 1, + BetChangeList: 0.4, + BetSizeIndex: 0, + BetLevelIndex: 1, + }, + 2: { + Index: 2, + BetChangeList: 0.6, + BetSizeIndex: 0, + BetLevelIndex: 2, + }, + 3: { + Index: 3, + BetChangeList: 0.8, + BetSizeIndex: 0, + BetLevelIndex: 3, + }, + 4: { + Index: 4, + BetChangeList: 1, + BetSizeIndex: 0, + BetLevelIndex: 4, + }, + 5: { + Index: 5, + BetChangeList: 1.2, + BetSizeIndex: 0, + BetLevelIndex: 5, + }, + 6: { + Index: 6, + BetChangeList: 1.4, + BetSizeIndex: 0, + BetLevelIndex: 6, + }, + 7: { + Index: 7, + BetChangeList: 1.6, + BetSizeIndex: 0, + BetLevelIndex: 7, + }, + 8: { + Index: 8, + BetChangeList: 1.8, + BetSizeIndex: 0, + BetLevelIndex: 8, + }, + 9: { + Index: 9, + BetChangeList: 2, + BetSizeIndex: 0, + BetLevelIndex: 9, + }, + 10: { + Index: 10, + BetChangeList: 4, + BetSizeIndex: 1, + BetLevelIndex: 1, + }, + 11: { + Index: 11, + BetChangeList: 6, + BetSizeIndex: 1, + BetLevelIndex: 2, + }, + 12: { + Index: 12, + BetChangeList: 8, + BetSizeIndex: 1, + BetLevelIndex: 3, + }, + 13: { + Index: 13, + BetChangeList: 10, + BetSizeIndex: 1, + BetLevelIndex: 4, + }, + 14: { + Index: 14, + BetChangeList: 12, + BetSizeIndex: 1, + BetLevelIndex: 5, + }, + 15: { + Index: 15, + BetChangeList: 14, + BetSizeIndex: 1, + BetLevelIndex: 6, + }, + 16: { + Index: 16, + BetChangeList: 15, + BetSizeIndex: 4, + BetLevelIndex: 0, + }, + 17: { + Index: 17, + BetChangeList: 16, + BetSizeIndex: 1, + BetLevelIndex: 7, + }, + 18: { + Index: 18, + BetChangeList: 18, + BetSizeIndex: 1, + BetLevelIndex: 8, + }, + 19: { + Index: 19, + BetChangeList: 20, + BetSizeIndex: 1, + BetLevelIndex: 9, + }, + 20: { + Index: 20, + BetChangeList: 24, + BetSizeIndex: 2, + BetLevelIndex: 5, + }, + 21: { + Index: 21, + BetChangeList: 28, + BetSizeIndex: 2, + BetLevelIndex: 6, + }, + 22: { + Index: 22, + BetChangeList: 30, + BetSizeIndex: 3, + BetLevelIndex: 2, + }, + 23: { + Index: 23, + BetChangeList: 32, + BetSizeIndex: 2, + BetLevelIndex: 7, + }, + 24: { + Index: 24, + BetChangeList: 36, + BetSizeIndex: 2, + BetLevelIndex: 8, + }, + 25: { + Index: 25, + BetChangeList: 40, + BetSizeIndex: 2, + BetLevelIndex: 9, + }, + 26: { + Index: 26, + BetChangeList: 45, + BetSizeIndex: 4, + BetLevelIndex: 2, + }, + 27: { + Index: 27, + BetChangeList: 50, + BetSizeIndex: 3, + BetLevelIndex: 4, + }, + 28: { + Index: 28, + BetChangeList: 60, + BetSizeIndex: 3, + BetLevelIndex: 5, + }, + 29: { + Index: 29, + BetChangeList: 70, + BetSizeIndex: 3, + BetLevelIndex: 6, + }, + 30: { + Index: 30, + BetChangeList: 75, + BetSizeIndex: 4, + BetLevelIndex: 4, + }, + 31: { + Index: 31, + BetChangeList: 80, + BetSizeIndex: 3, + BetLevelIndex: 7, + }, + 32: { + Index: 32, + BetChangeList: 90, + BetSizeIndex: 3, + BetLevelIndex: 8, + }, + 33: { + Index: 33, + BetChangeList: 100, + BetSizeIndex: 3, + BetLevelIndex: 9, + }, + 34: { + Index: 34, + BetChangeList: 105, + BetSizeIndex: 4, + BetLevelIndex: 6, + }, + 35: { + Index: 35, + BetChangeList: 120, + BetSizeIndex: 4, + BetLevelIndex: 7, + }, + 36: { + Index: 36, + BetChangeList: 135, + BetSizeIndex: 4, + BetLevelIndex: 8, + }, + 37: { + Index: 37, + BetChangeList: 150, + BetSizeIndex: 4, + BetLevelIndex: 9, + }, + 38: { + Index: 38, + BetChangeList: 160, + BetSizeIndex: 5, + BetLevelIndex: 3, + }, + 39: { + Index: 39, + BetChangeList: 200, + BetSizeIndex: 5, + BetLevelIndex: 4, + }, + 40: { + Index: 40, + BetChangeList: 240, + BetSizeIndex: 5, + BetLevelIndex: 5, + }, + 41: { + Index: 41, + BetChangeList: 280, + BetSizeIndex: 5, + BetLevelIndex: 6, + }, + 42: { + Index: 42, + BetChangeList: 320, + BetSizeIndex: 5, + BetLevelIndex: 7, + }, + 43: { + Index: 43, + BetChangeList: 360, + BetSizeIndex: 5, + BetLevelIndex: 8, + }, + 44: { + Index: 44, + BetChangeList: 400, + BetSizeIndex: 5, + BetLevelIndex: 9, + }, + 45: { + Index: 45, + BetChangeList: 3, + BetSizeIndex: 6, + BetLevelIndex: 0, + }, + 46: { + Index: 46, + BetChangeList: 5, + BetSizeIndex: 7, + BetLevelIndex: 0, + }, + 47: { + Index: 47, + BetChangeList: 25, + BetSizeIndex: 8, + BetLevelIndex: 0, + }, + 48: { + Index: 48, + BetChangeList: 300, + BetSizeIndex: 9, + BetLevelIndex: 0, + }, + } + + GatesOfOlympusBetBetLevel = map[int64]*structs.GatesOfOlympusBetBetLevel{ + 0: { + Index: 0, + BetLevel: 1, + }, + 1: { + Index: 1, + BetLevel: 2, + }, + 2: { + Index: 2, + BetLevel: 3, + }, + 3: { + Index: 3, + BetLevel: 4, + }, + 4: { + Index: 4, + BetLevel: 5, + }, + 5: { + Index: 5, + BetLevel: 6, + }, + 6: { + Index: 6, + BetLevel: 7, + }, + 7: { + Index: 7, + BetLevel: 8, + }, + 8: { + Index: 8, + BetLevel: 9, + }, + 9: { + Index: 9, + BetLevel: 10, + }, + } + + GatesOfOlympusBetBetLine = map[int64]*structs.GatesOfOlympusBetBetLine{ + 0: { + Index: 0, + BetLine: 20, + BaseBet: 1, + }, + } + + GatesOfOlympusBetBetSize = map[int64]*structs.GatesOfOlympusBetBetSize{ + 0: { + Index: 0, + BetSize: 100, + }, + 1: { + Index: 1, + BetSize: 1000, + }, + 2: { + Index: 2, + BetSize: 2000, + }, + 3: { + Index: 3, + BetSize: 5000, + }, + 4: { + Index: 4, + BetSize: 7500, + }, + 5: { + Index: 5, + BetSize: 20000, + }, + 6: { + Index: 6, + BetSize: 1500, + }, + 7: { + Index: 7, + BetSize: 2500, + }, + 8: { + Index: 8, + BetSize: 12500, + }, + 9: { + Index: 9, + BetSize: 150000, + }, + } + + GatesOfOlympusBetFirstBet = map[int64]*structs.GatesOfOlympusBetFirstBet{ + 1: { + Index: 1, + BetSizeIndex: 1, + BetLevelIndex: 1, + }, + } + + GatesOfOlympusFormation = []*structs.GatesOfOlympusFormation{ + { + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin1", + ID: 1, + SeqID: 1, + Reel: "BaseSpin1", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin2", + ID: 1, + SeqID: 1, + Reel: "BaseSpin2", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin3", + ID: 1, + SeqID: 1, + Reel: "BaseSpin3", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin7", + ID: 1, + SeqID: 1, + Reel: "BaseSpin7", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin8", + ID: 1, + SeqID: 1, + Reel: "BaseSpin8", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin4", + ID: 1, + SeqID: 1, + Reel: "FreeSpin4", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin5", + ID: 1, + SeqID: 1, + Reel: "FreeSpin5", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin1", + ID: 1, + SeqID: 1, + Reel: "BaseSpin1", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin2", + ID: 1, + SeqID: 1, + Reel: "BaseSpin2", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin3", + ID: 1, + SeqID: 1, + Reel: "BaseSpin3", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin7", + ID: 1, + SeqID: 1, + Reel: "BaseSpin7", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin8", + ID: 1, + SeqID: 1, + Reel: "BaseSpin8", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + } + + GatesOfOlympusMapRTPMode = map[int64]*structs.GatesOfOlympusMapRTPMode{ + 1: { + ID: 1, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "96", + Rtp: 0.96, + }, + 2: { + ID: 2, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "80", + Rtp: 0.8, + }, + 3: { + ID: 3, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "120", + Rtp: 1.2, + }, + } + + GatesOfOlympusMultiplier = []*structs.GatesOfOlympusMultiplier{ + { + Multiple: 2, + ID: 13, + Weights: []int64{3150, 3150, 3150}, + }, + { + Multiple: 3, + ID: 14, + Weights: []int64{2250, 2250, 2000}, + }, + { + Multiple: 4, + ID: 15, + Weights: []int64{1500, 1500, 1500}, + }, + { + Multiple: 5, + ID: 16, + Weights: []int64{1100, 1100, 1000}, + }, + { + Multiple: 6, + ID: 17, + Weights: []int64{300, 300, 600}, + }, + { + Multiple: 8, + ID: 18, + Weights: []int64{150, 150, 400}, + }, + { + Multiple: 10, + ID: 19, + Weights: []int64{80, 80, 200}, + }, + { + Multiple: 12, + ID: 20, + Weights: []int64{30, 30, 100}, + }, + { + Multiple: 15, + ID: 21, + Weights: []int64{10, 10, 50}, + }, + { + Multiple: 20, + ID: 22, + Weights: []int64{20, 20, 50}, + }, + { + Multiple: 25, + ID: 23, + Weights: []int64{10, 10, 50}, + }, + { + Multiple: 50, + ID: 24, + Weights: []int64{1, 1, 25}, + }, + { + Multiple: 100, + ID: 25, + Weights: []int64{1, 1, 25}, + }, + { + Multiple: 250, + ID: 26, + Weights: []int64{0, 0, 10}, + }, + { + Multiple: 500, + ID: 27, + Weights: []int64{0, 0, 10}, + }, + } + + GatesOfOlympusMultiplierKeyID = map[int64]*structs.GatesOfOlympusMultiplierKeyID{ + 13: { + Multiple: 2, + ID: 13, + Weights: []int64{3150, 3150, 3150}, + }, + 14: { + Multiple: 3, + ID: 14, + Weights: []int64{2250, 2250, 2000}, + }, + 15: { + Multiple: 4, + ID: 15, + Weights: []int64{1500, 1500, 1500}, + }, + 16: { + Multiple: 5, + ID: 16, + Weights: []int64{1100, 1100, 1000}, + }, + 17: { + Multiple: 6, + ID: 17, + Weights: []int64{300, 300, 600}, + }, + 18: { + Multiple: 8, + ID: 18, + Weights: []int64{150, 150, 400}, + }, + 19: { + Multiple: 10, + ID: 19, + Weights: []int64{80, 80, 200}, + }, + 20: { + Multiple: 12, + ID: 20, + Weights: []int64{30, 30, 100}, + }, + 21: { + Multiple: 15, + ID: 21, + Weights: []int64{10, 10, 50}, + }, + 22: { + Multiple: 20, + ID: 22, + Weights: []int64{20, 20, 50}, + }, + 23: { + Multiple: 25, + ID: 23, + Weights: []int64{10, 10, 50}, + }, + 24: { + Multiple: 50, + ID: 24, + Weights: []int64{1, 1, 25}, + }, + 25: { + Multiple: 100, + ID: 25, + Weights: []int64{1, 1, 25}, + }, + 26: { + Multiple: 250, + ID: 26, + Weights: []int64{0, 0, 10}, + }, + 27: { + Multiple: 500, + ID: 27, + Weights: []int64{0, 0, 10}, + }, + } + + GatesOfOlympusReelBaseSpinRange = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpinReel = [][]int64{ + {1, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 1, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {1, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {1, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {1, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpinWeight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin1Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin1Reel = [][]int64{ + {1, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 1, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {1, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {1, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {1, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpin1Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin2Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin2Reel = [][]int64{ + {1, 6, 6, 11, 8, 10, 11, 9, 7, 6, 6, 11, 8, 8, 9, 10, 7, 11, 11, 8, 6, 10, 9, 10, 8, 8, 3, 11, 11, 4, 4, 9, 11, 8, 7, 11, 11, 9, 10, 5, 5, 8, 10, 11, 6, 11, 10, 7, 11, 9, 10, 10, 4, 4, 3, 3, 7, 6, 11, 5, 5, 7, 10, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 4, 11, 9, 9, 10, 10, 11, 4, 10, 8, 9, 9, 7, 11, 8, 8, 10, 10, 5, 5, 7, 9, 10, 3, 6, 7, 8, 6, 11, 9, 7, 4, 4, 1, 3, 11, 11, 9, 5, 5, 10, 6, 7, 7, 10, 9, 6, 6, 11, 10, 8, 8, 11, 7, 11}, + {1, 5, 11, 5, 8, 8, 11, 7, 5, 10, 9, 7, 10, 6, 7, 1, 10, 3, 5, 10, 5, 7, 7, 8, 7, 9, 11, 11, 4, 4, 7, 10, 9, 11, 11, 10, 4, 4, 9, 3, 7, 10, 7, 4, 11, 9, 9, 10, 7, 8, 8, 11, 7, 8, 9, 8, 10, 7, 11, 11, 6, 6, 8, 7}, + {1, 4, 4, 11, 10, 5, 5, 11, 11, 9, 9, 6, 11, 10, 9, 4, 4, 9, 9, 4, 11, 10, 5, 8, 8, 8, 10, 10, 11, 11, 5, 5, 3, 11, 9, 9, 6, 8, 6, 10, 4, 4, 7, 9, 7, 11, 11, 6, 7, 6, 10, 9, 8, 7, 10, 3, 11, 3, 11, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 7, 4, 6, 8, 8, 1, 5, 9, 11, 6, 6, 8, 8, 10, 10, 11, 6, 11, 6, 11, 10, 7, 4, 4, 11, 9, 7, 6, 8, 9, 4, 5, 5, 7, 9, 7, 8, 8, 9, 10, 7, 7, 11, 11, 9, 3, 3, 11, 11, 8, 10, 10, 9, 9, 5, 5, 10, 11, 7}, + {1, 6, 7, 6, 4, 11, 9, 9, 10, 8, 3, 7, 11, 6, 9, 9, 8, 7, 10, 8, 5, 6, 11, 10, 11, 9, 9, 8, 8, 7, 10, 5, 5, 7, 7, 11, 9, 10, 11, 3, 7, 6, 10, 6, 11, 11, 9, 9, 9, 10, 8, 10, 4, 11, 4, 3, 3, 9, 9, 5, 5, 9, 8}, + } + + GatesOfOlympusReelBaseSpin2Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin3Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin3Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpin3Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin7Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin7Reel = [][]int64{ + {11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6}, + } + + GatesOfOlympusReelBaseSpin7Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin8Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin8Reel = [][]int64{ + {1, 6, 6, 11, 8, 10, 11, 9, 7, 6, 6, 11, 8, 8, 9, 10, 7, 11, 11, 8, 6, 10, 9, 4, 11, 11, 4, 4, 9, 11, 8, 7, 11, 1, 9, 10, 5, 5, 8, 10, 11, 6, 11, 10, 7, 11, 9, 10, 10, 4, 4, 3, 3, 7, 6, 11, 5, 5, 7, 10, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 4, 11, 9, 9, 10, 10, 11, 4, 10, 8, 9, 9, 7, 11, 8, 7, 5, 5, 7, 9, 10, 3, 6, 7, 8, 6, 11, 9, 7, 4, 4, 1, 3, 11, 11, 9, 5, 5, 10, 6, 7, 7, 10, 9, 6, 6, 11, 10, 8, 8, 11, 7, 11}, + {1, 5, 11, 5, 8, 8, 11, 7, 5, 10, 9, 7, 10, 6, 7, 1, 10, 3, 5, 10, 5, 7, 11, 11, 11, 4, 4, 7, 10, 9, 11, 11, 10, 4, 4, 9, 3, 7, 10, 7, 4, 11, 9, 9, 10, 7, 8, 8, 11, 7, 8, 9, 8, 10, 7, 11, 11, 6, 6, 8, 7}, + {1, 4, 4, 11, 10, 5, 5, 11, 11, 9, 9, 6, 11, 10, 9, 4, 4, 9, 9, 4, 8, 8, 10, 10, 11, 11, 5, 5, 3, 11, 9, 9, 1, 8, 6, 10, 4, 4, 7, 9, 7, 11, 11, 6, 7, 6, 10, 9, 8, 7, 10, 3, 11, 3, 11, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 7, 4, 6, 8, 8, 1, 5, 9, 11, 6, 6, 8, 8, 10, 10, 11, 10, 7, 4, 4, 11, 9, 7, 6, 8, 9, 4, 5, 5, 7, 9, 7, 8, 8, 9, 10, 7, 7, 11, 11, 9, 3, 3, 11, 11, 8, 10, 10, 9, 9, 5, 5, 10, 11, 7}, + {1, 6, 7, 6, 4, 11, 9, 9, 10, 8, 3, 7, 11, 6, 9, 9, 8, 7, 10, 8, 5, 6, 9, 9, 8, 8, 7, 10, 5, 5, 7, 7, 11, 9, 10, 11, 3, 7, 4, 10, 6, 11, 11, 9, 9, 9, 10, 8, 10, 4, 11, 4, 3, 3, 9, 9, 5, 5, 9, 8}, + } + + GatesOfOlympusReelBaseSpin8Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelChoose = []*structs.GatesOfOlympusReelChoose{ + { + ID: 1, + IsFreeSpin: false, + NodeType: "BaseSpin1", + Weights: []int64{40, 162, 0}, + }, + { + ID: 2, + IsFreeSpin: false, + NodeType: "BaseSpin2", + Weights: []int64{66, 0, 0}, + }, + { + ID: 3, + IsFreeSpin: false, + NodeType: "BaseSpin3", + Weights: []int64{20, 68, 0}, + }, + { + ID: 4, + IsFreeSpin: false, + NodeType: "BaseSpin7", + Weights: []int64{0, 0, 1}, + }, + { + ID: 5, + IsFreeSpin: false, + NodeType: "BaseSpin8", + Weights: []int64{1, 180, 0}, + }, + { + ID: 6, + IsFreeSpin: true, + NodeType: "FreeSpin4", + Weights: []int64{1, 1, 1}, + }, + { + ID: 7, + IsFreeSpin: true, + NodeType: "FreeSpin5", + Weights: []int64{2, 2, 2}, + }, + } + + GatesOfOlympusReelFreeSpinRange = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpinReel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 1, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 1, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 1, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 1, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 1, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 1, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpinWeight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelFreeSpin4Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpin4Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 1, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 1, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 1, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 1, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 1, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 1, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpin4Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelFreeSpin5Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpin5Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpin5Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusScatter = map[int64]*structs.GatesOfOlympusScatter{ + 1: { + ScatterCount: 1, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 0, + BasePayrate: 0, + FreePayrate: 0, + }, + 2: { + ScatterCount: 2, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 0, + BasePayrate: 0, + FreePayrate: 0, + }, + 3: { + ScatterCount: 3, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 5, + BasePayrate: 0, + FreePayrate: 0, + }, + 4: { + ScatterCount: 4, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 3, + FreePayrate: 3, + }, + 5: { + ScatterCount: 5, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 5, + FreePayrate: 5, + }, + 6: { + ScatterCount: 6, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 100, + FreePayrate: 100, + }, + } + + GatesOfOlympusSymbol = map[int64]*structs.GatesOfOlympusSymbol{ + 1: { + ID: 1, + Name: "Scatter", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 2: { + ID: 2, + Name: "无", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 3: { + ID: 3, + Name: "皇冠", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 200, 200, 500, 500, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000}, + ClientOrder: 1, + ClientDsc: "", + }, + 4: { + ID: 4, + Name: "沙漏", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 50, 50, 200, 200, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}, + ClientOrder: 2, + ClientDsc: "", + }, + 5: { + ID: 5, + Name: "戒指", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 40, 40, 100, 100, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300}, + ClientOrder: 3, + ClientDsc: "", + }, + 6: { + ID: 6, + Name: "酒杯", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 30, 30, 40, 40, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240}, + ClientOrder: 4, + ClientDsc: "", + }, + 7: { + ID: 7, + Name: "红宝石", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 20, 20, 30, 30, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200}, + ClientOrder: 5, + ClientDsc: "", + }, + 8: { + ID: 8, + Name: "紫宝石", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 16, 16, 24, 24, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160}, + ClientOrder: 6, + ClientDsc: "", + }, + 9: { + ID: 9, + Name: "黄宝石", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 10, 10, 20, 20, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100}, + ClientOrder: 7, + ClientDsc: "", + }, + 10: { + ID: 10, + Name: "绿宝石", + IsWild: false, + Group: []int64{10}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 8, 8, 18, 18, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}, + ClientOrder: 8, + ClientDsc: "", + }, + 11: { + ID: 11, + Name: "蓝宝石", + IsWild: false, + Group: []int64{11}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 5, 5, 15, 15, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, + ClientOrder: 9, + ClientDsc: "", + }, + 12: { + ID: 12, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 13: { + ID: 13, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 14: { + ID: 14, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 15: { + ID: 15, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 16: { + ID: 16, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 17: { + ID: 17, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 18: { + ID: 18, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 19: { + ID: 19, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 20: { + ID: 20, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 21: { + ID: 21, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 22: { + ID: 22, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 23: { + ID: 23, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 24: { + ID: 24, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 25: { + ID: 25, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 26: { + ID: 26, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 27: { + ID: 27, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + } + + GatesOfOlympusSymbolBetRatio = []*structs.GatesOfOlympusSymbolBetRatio{ + { + BetRatio: 1, + }, + } + +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go index 7c5f3de..c80afb9 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go @@ -9,8 +9,8 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -22,8 +22,8 @@ func init() { MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{ { - Type: "FeatureForm19X1TypeA", - LinkType: 2, + Type: "FeatureForm19X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -35,8 +35,8 @@ func init() { MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{ { - Type: "FeatureForm20X1TypeA", - LinkType: 2, + Type: "FeatureForm20X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -48,8 +48,8 @@ func init() { MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{ { - Type: "FeatureForm25X1TypeA", - LinkType: 2, + Type: "FeatureForm25X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -61,8 +61,8 @@ func init() { MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{ { - Type: "FeatureForm30X1TypeA", - LinkType: 2, + Type: "FeatureForm30X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -74,8 +74,8 @@ func init() { MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{ { - Type: "FeatureForm35X1TypeA", - LinkType: 2, + Type: "FeatureForm35X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -87,8 +87,8 @@ func init() { MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -100,8 +100,8 @@ func init() { MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -113,8 +113,8 @@ func init() { MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -126,8 +126,8 @@ func init() { MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{ { - Type: "Line100Form12X5TypeA", - LinkType: 0, + Type: "Line100Form12X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -238,8 +238,8 @@ func init() { MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{ { - Type: "Line100Form6X5TypeA", - LinkType: 0, + Type: "Line100Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -350,8 +350,8 @@ func init() { MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{ { - Type: "Line10Form343TypeA", - LinkType: 0, + Type: "Line10Form343TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -372,8 +372,8 @@ func init() { MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{ { - Type: "Line10Form3X5TypeA", - LinkType: 0, + Type: "Line10Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -394,8 +394,8 @@ func init() { MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{ { - Type: "Line1Form3X3TypeA", - LinkType: 0, + Type: "Line1Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -407,8 +407,8 @@ func init() { MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{ { - Type: "Line1Form3X3TypeB", - LinkType: 0, + Type: "Line1Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -420,8 +420,8 @@ func init() { MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{ { - Type: "Line1Form5X5TypeA", - LinkType: 0, + Type: "Line1Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -433,8 +433,8 @@ func init() { MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{ { - Type: "Line20Form3X5TypeA", - LinkType: 0, + Type: "Line20Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -465,8 +465,8 @@ func init() { MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{ { - Type: "Line25Form36666TypeA", - LinkType: 0, + Type: "Line25Form36666TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -502,8 +502,8 @@ func init() { MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{ { - Type: "Line25Form3X5TypeA", - LinkType: 0, + Type: "Line25Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -539,8 +539,8 @@ func init() { MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{ { - Type: "Line25Form3X5TypeB", - LinkType: 0, + Type: "Line25Form3X5TypeB", + LinkType: 0, Direction: 2, LineCount: 25, Lines: [][]int64{ @@ -576,8 +576,8 @@ func init() { MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{ { - Type: "Line25Form3X5TypeC", - LinkType: 0, + Type: "Line25Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -613,8 +613,8 @@ func init() { MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{ { - Type: "Line25Form3X5TypeD", - LinkType: 0, + Type: "Line25Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -650,8 +650,8 @@ func init() { MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{ { - Type: "Line25Form3X5TypeE", - LinkType: 0, + Type: "Line25Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -687,8 +687,8 @@ func init() { MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{ { - Type: "Line30Form3X5TypeA", - LinkType: 0, + Type: "Line30Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -729,8 +729,8 @@ func init() { MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{ { - Type: "Line30Form3X5TypeB", - LinkType: 0, + Type: "Line30Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -771,8 +771,8 @@ func init() { MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{ { - Type: "Line30Form3X5TypeC", - LinkType: 0, + Type: "Line30Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -813,8 +813,8 @@ func init() { MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{ { - Type: "Line30Form3X5TypeD", - LinkType: 0, + Type: "Line30Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -855,8 +855,8 @@ func init() { MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{ { - Type: "Line30Form3X5TypeE", - LinkType: 0, + Type: "Line30Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -897,8 +897,8 @@ func init() { MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{ { - Type: "Line30Form3X6TypeA", - LinkType: 0, + Type: "Line30Form3X6TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -939,8 +939,8 @@ func init() { MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{ { - Type: "Line30Form4X5TypeA", - LinkType: 0, + Type: "Line30Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -981,8 +981,8 @@ func init() { MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{ { - Type: "Line30Form4X5TypeB", - LinkType: 0, + Type: "Line30Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -1023,8 +1023,8 @@ func init() { MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{ { - Type: "Line3Form3X3TypeA", - LinkType: 0, + Type: "Line3Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 3, Lines: [][]int64{ @@ -1038,8 +1038,8 @@ func init() { MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{ { - Type: "Line40Form34543TypeA", - LinkType: 0, + Type: "Line40Form34543TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1090,8 +1090,8 @@ func init() { MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{ { - Type: "Line40Form3X5TypeA", - LinkType: 0, + Type: "Line40Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1142,8 +1142,8 @@ func init() { MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{ { - Type: "Line40Form3X5TypeB", - LinkType: 0, + Type: "Line40Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1194,8 +1194,8 @@ func init() { MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{ { - Type: "Line40Form3X5TypeC", - LinkType: 0, + Type: "Line40Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1246,8 +1246,8 @@ func init() { MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{ { - Type: "Line40Form3X5TypeD", - LinkType: 0, + Type: "Line40Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1298,8 +1298,8 @@ func init() { MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1350,8 +1350,8 @@ func init() { MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1402,8 +1402,8 @@ func init() { MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{ { - Type: "Line40Form4X5TypeC", - LinkType: 0, + Type: "Line40Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1454,8 +1454,8 @@ func init() { MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{ { - Type: "Line40Form4X6TypeA", - LinkType: 0, + Type: "Line40Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1506,8 +1506,8 @@ func init() { MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{ { - Type: "Line50Form3X5TypeA", - LinkType: 0, + Type: "Line50Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1568,8 +1568,8 @@ func init() { MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{ { - Type: "Line50Form3X5TypeB", - LinkType: 0, + Type: "Line50Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1630,8 +1630,8 @@ func init() { MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{ { - Type: "Line50Form3X5TypeC", - LinkType: 0, + Type: "Line50Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1692,8 +1692,8 @@ func init() { MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{ { - Type: "Line50Form3X5TypeD", - LinkType: 0, + Type: "Line50Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1754,8 +1754,8 @@ func init() { MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{ { - Type: "Line50Form3X5TypeE", - LinkType: 0, + Type: "Line50Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1816,8 +1816,8 @@ func init() { MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{ { - Type: "Line50Form3X5TypeF", - LinkType: 0, + Type: "Line50Form3X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1878,8 +1878,8 @@ func init() { MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{ { - Type: "Line50Form3X5TypeG", - LinkType: 0, + Type: "Line50Form3X5TypeG", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1940,8 +1940,8 @@ func init() { MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{ { - Type: "Line50Form3X5TypeH", - LinkType: 0, + Type: "Line50Form3X5TypeH", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2002,8 +2002,8 @@ func init() { MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{ { - Type: "Line50Form45454TypeA", - LinkType: 0, + Type: "Line50Form45454TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2064,8 +2064,8 @@ func init() { MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{ { - Type: "Line50Form4X5TypeA", - LinkType: 0, + Type: "Line50Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2126,8 +2126,8 @@ func init() { MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{ { - Type: "Line50Form4X5TypeB", - LinkType: 0, + Type: "Line50Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2188,8 +2188,8 @@ func init() { MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{ { - Type: "Line50Form4X5TypeC", - LinkType: 0, + Type: "Line50Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2250,8 +2250,8 @@ func init() { MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{ { - Type: "Line50Form4X5TypeD", - LinkType: 0, + Type: "Line50Form4X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2312,8 +2312,8 @@ func init() { MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{ { - Type: "Line50Form4X5TypeE", - LinkType: 0, + Type: "Line50Form4X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2374,8 +2374,8 @@ func init() { MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{ { - Type: "Line50Form4X5TypeF", - LinkType: 0, + Type: "Line50Form4X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2436,8 +2436,8 @@ func init() { MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{ { - Type: "Line50Form4X6TypeA", - LinkType: 0, + Type: "Line50Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2498,8 +2498,8 @@ func init() { MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{ { - Type: "Line50Form5X5TypeA", - LinkType: 0, + Type: "Line50Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2560,8 +2560,8 @@ func init() { MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{ { - Type: "Line50Form5X5TypeB", - LinkType: 0, + Type: "Line50Form5X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2622,8 +2622,8 @@ func init() { MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{ { - Type: "Line50Form5X5TypeC", - LinkType: 0, + Type: "Line50Form5X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2684,8 +2684,8 @@ func init() { MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{ { - Type: "Line50Form6X5TypeA", - LinkType: 0, + Type: "Line50Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2746,8 +2746,8 @@ func init() { MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{ { - Type: "Line5Form3X3TypeA", - LinkType: 0, + Type: "Line5Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2763,8 +2763,8 @@ func init() { MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{ { - Type: "Line5Form3X3TypeB", - LinkType: 0, + Type: "Line5Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2780,8 +2780,8 @@ func init() { MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{ { - Type: "Line60Form33633TypeA", - LinkType: 0, + Type: "Line60Form33633TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2852,8 +2852,8 @@ func init() { MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{ { - Type: "Line60Form8X5TypeA", - LinkType: 0, + Type: "Line60Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2924,8 +2924,8 @@ func init() { MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{ { - Type: "Line65Form6X5TypeA", - LinkType: 0, + Type: "Line65Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 65, Lines: [][]int64{ @@ -3001,8 +3001,8 @@ func init() { MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{ { - Type: "Line70Form9X5TypeA", - LinkType: 0, + Type: "Line70Form9X5TypeA", + LinkType: 0, Direction: 0, LineCount: 70, Lines: [][]int64{ @@ -3083,8 +3083,8 @@ func init() { MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{ { - Type: "Line75Form5X6TypeA", - LinkType: 0, + Type: "Line75Form5X6TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3170,8 +3170,8 @@ func init() { MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{ { - Type: "Line75Form6X5TypeA", - LinkType: 0, + Type: "Line75Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3257,8 +3257,8 @@ func init() { MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{ { - Type: "Line80Form10X5TypeA", - LinkType: 0, + Type: "Line80Form10X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3349,8 +3349,8 @@ func init() { MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{ { - Type: "Line80Form3X5TypeA", - LinkType: 0, + Type: "Line80Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3441,8 +3441,8 @@ func init() { MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{ { - Type: "Line80Form4X6TypeA", - LinkType: 0, + Type: "Line80Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3533,8 +3533,8 @@ func init() { MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{ { - Type: "Line80Form7X5TypeA", - LinkType: 0, + Type: "Line80Form7X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3625,8 +3625,8 @@ func init() { MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{ { - Type: "Line90Form11X5TypeA", - LinkType: 0, + Type: "Line90Form11X5TypeA", + LinkType: 0, Direction: 0, LineCount: 90, Lines: [][]int64{ @@ -3727,8 +3727,8 @@ func init() { MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{ { - Type: "Line95Form8X5TypeA", - LinkType: 0, + Type: "Line95Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 95, Lines: [][]int64{ @@ -3834,8 +3834,8 @@ func init() { MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{ { - Type: "MatchForm7X7", - LinkType: 4, + Type: "MatchForm7X7", + LinkType: 4, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3847,8 +3847,8 @@ func init() { MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{ { - Type: "SameForm5X6", - LinkType: 3, + Type: "SameForm5X6", + LinkType: 3, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3860,8 +3860,8 @@ func init() { MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{ { - Type: "SameForm5X6TypeB", - LinkType: 3, + Type: "SameForm5X6TypeB", + LinkType: 3, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -3873,8 +3873,8 @@ func init() { MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{ { - Type: "WaysForm333331", - LinkType: 1, + Type: "WaysForm333331", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3886,8 +3886,8 @@ func init() { MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{ { - Type: "WaysForm33555", - LinkType: 1, + Type: "WaysForm33555", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3899,8 +3899,8 @@ func init() { MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{ { - Type: "WaysForm344444", - LinkType: 1, + Type: "WaysForm344444", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3912,8 +3912,8 @@ func init() { MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{ { - Type: "WaysForm3X5TypeA", - LinkType: 1, + Type: "WaysForm3X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3925,8 +3925,8 @@ func init() { MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{ { - Type: "WaysForm44668", - LinkType: 1, + Type: "WaysForm44668", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3938,8 +3938,8 @@ func init() { MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{ { - Type: "WaysForm4X5TypeA", - LinkType: 1, + Type: "WaysForm4X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3951,8 +3951,8 @@ func init() { MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{ { - Type: "WaysForm4X5TypeB", - LinkType: 1, + Type: "WaysForm4X5TypeB", + LinkType: 1, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -3962,4 +3962,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go b/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go index 2fedcfe..35875e9 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go @@ -9,14 +9,14 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { OptGroup = []*structs.OptGroup{ { - ID: 1, - Batch: 1, + ID: 1, + Batch: 1, IsNewPlayer: true, - StartTime: "2023-4-26", - EndTime: "2050-11-27", - Affect: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - Weight: []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + StartTime: "2023-4-26", + EndTime: "2050-11-27", + Affect: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + Weight: []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go b/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go index b13f286..b6152cf 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go @@ -9,20 +9,20 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{ 1: { - ID: 1, - AniType: "big_win", + ID: 1, + AniType: "big_win", MinMultiple: 10, MaxMultiple: 25, }, 2: { - ID: 2, - AniType: "mega_win", + ID: 2, + AniType: "mega_win", MinMultiple: 25, MaxMultiple: 50, }, 3: { - ID: 3, - AniType: "epic_win", + ID: 3, + AniType: "epic_win", MinMultiple: 50, MaxMultiple: -1, }, @@ -30,29 +30,29 @@ func init() { PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{ 1: { - ID: 1, - AniType: "big_win", + ID: 1, + AniType: "big_win", MinMultiple: 15, MaxMultiple: 30, }, 2: { - ID: 2, - AniType: "mega_win", + ID: 2, + AniType: "mega_win", MinMultiple: 30, MaxMultiple: 45, }, 3: { - ID: 3, - AniType: "epic_win", + ID: 3, + AniType: "epic_win", MinMultiple: 45, MaxMultiple: 60, }, 4: { - ID: 4, - AniType: "epic_win", + ID: 4, + AniType: "epic_win", MinMultiple: 60, MaxMultiple: -1, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go b/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go index 49d75bc..6dd159b 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go @@ -10,162 +10,162 @@ func init() { SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{ { Level: 1, - Min: 0, - Max: 3, + Min: 0, + Max: 3, }, { Level: 2, - Min: 3, - Max: 6, + Min: 3, + Max: 6, }, { Level: 3, - Min: 6, - Max: 9, + Min: 6, + Max: 9, }, { Level: 4, - Min: 9, - Max: 12, + Min: 9, + Max: 12, }, { Level: 5, - Min: 12, - Max: 18, + Min: 12, + Max: 18, }, { Level: 6, - Min: 18, - Max: 20, + Min: 18, + Max: 20, }, { Level: 7, - Min: 20, - Max: 30, + Min: 20, + Max: 30, }, { Level: 8, - Min: 30, - Max: 50, + Min: 30, + Max: 50, }, { Level: 9, - Min: 50, - Max: 100, + Min: 50, + Max: 100, }, { Level: 10, - Min: 100, - Max: 500, + Min: 100, + Max: 500, }, { Level: 11, - Min: 500, - Max: 1000, + Min: 500, + Max: 1000, }, { Level: 12, - Min: 1000, - Max: -1, + Min: 1000, + Max: -1, }, } SimulatorMultiLevel = []*structs.SimulatorMultiLevel{ { Level: 1, - Min: 0, - Max: 1, + Min: 0, + Max: 1, }, { Level: 2, - Min: 1, - Max: 2, + Min: 1, + Max: 2, }, { Level: 3, - Min: 2, - Max: 3, + Min: 2, + Max: 3, }, { Level: 4, - Min: 3, - Max: 4, + Min: 3, + Max: 4, }, { Level: 5, - Min: 4, - Max: 5, + Min: 4, + Max: 5, }, { Level: 6, - Min: 5, - Max: 6, + Min: 5, + Max: 6, }, { Level: 7, - Min: 6, - Max: 8, + Min: 6, + Max: 8, }, { Level: 8, - Min: 8, - Max: 10, + Min: 8, + Max: 10, }, { Level: 9, - Min: 10, - Max: 12, + Min: 10, + Max: 12, }, { Level: 10, - Min: 12, - Max: 15, + Min: 12, + Max: 15, }, { Level: 11, - Min: 15, - Max: 18, + Min: 15, + Max: 18, }, { Level: 12, - Min: 18, - Max: 20, + Min: 18, + Max: 20, }, { Level: 13, - Min: 20, - Max: 25, + Min: 20, + Max: 25, }, { Level: 14, - Min: 25, - Max: 30, + Min: 25, + Max: 30, }, { Level: 15, - Min: 30, - Max: 50, + Min: 30, + Max: 50, }, { Level: 16, - Min: 50, - Max: 100, + Min: 50, + Max: 100, }, { Level: 17, - Min: 100, - Max: 500, + Min: 100, + Max: 500, }, { Level: 18, - Min: 500, - Max: 1000, + Min: 500, + Max: 1000, }, { Level: 19, - Min: 1000, - Max: -1, + Min: 1000, + Max: -1, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/test.go b/gamesrv/slotspkg/internal/exported/excel2go/base/test.go index 620b087..1964a45 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/test.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/test.go @@ -9,173 +9,173 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } TestBetBetLevel = map[int64]*structs.TestBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } TestBetBetLine = map[int64]*structs.TestBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, }, } TestBetBetSize = map[int64]*structs.TestBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } TestBetFirstBet = map[int64]*structs.TestBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } TestFormation = []*structs.TestFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form3X3TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form3X3TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -186,5041 +186,5041 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } TestRandomWeight = []*structs.TestRandomWeight{ { - ID: 1, - Time: 0, + ID: 1, + Time: 0, Weight: 0.043017, }, { - ID: 2, - Time: 0.1, + ID: 2, + Time: 0.1, Weight: 0.00795, }, { - ID: 3, - Time: 0.2, + ID: 3, + Time: 0.2, Weight: 0.007884, }, { - ID: 4, - Time: 0.3, + ID: 4, + Time: 0.3, Weight: 0.007819, }, { - ID: 5, - Time: 0.4, + ID: 5, + Time: 0.4, Weight: 0.007754, }, { - ID: 6, - Time: 0.5, + ID: 6, + Time: 0.5, Weight: 0.007689, }, { - ID: 7, - Time: 0.6, + ID: 7, + Time: 0.6, Weight: 0.007625, }, { - ID: 8, - Time: 0.7, + ID: 8, + Time: 0.7, Weight: 0.007562, }, { - ID: 9, - Time: 0.8, + ID: 9, + Time: 0.8, Weight: 0.007499, }, { - ID: 10, - Time: 0.9, + ID: 10, + Time: 0.9, Weight: 0.007437, }, { - ID: 11, - Time: 1, + ID: 11, + Time: 1, Weight: 0.007375, }, { - ID: 12, - Time: 1.1, + ID: 12, + Time: 1.1, Weight: 0.007314, }, { - ID: 13, - Time: 1.2, + ID: 13, + Time: 1.2, Weight: 0.007253, }, { - ID: 14, - Time: 1.3, + ID: 14, + Time: 1.3, Weight: 0.007193, }, { - ID: 15, - Time: 1.4, + ID: 15, + Time: 1.4, Weight: 0.007133, }, { - ID: 16, - Time: 1.5, + ID: 16, + Time: 1.5, Weight: 0.007074, }, { - ID: 17, - Time: 1.6, + ID: 17, + Time: 1.6, Weight: 0.007015, }, { - ID: 18, - Time: 1.7, + ID: 18, + Time: 1.7, Weight: 0.006957, }, { - ID: 19, - Time: 1.8, + ID: 19, + Time: 1.8, Weight: 0.006899, }, { - ID: 20, - Time: 1.9, + ID: 20, + Time: 1.9, Weight: 0.006842, }, { - ID: 21, - Time: 2, + ID: 21, + Time: 2, Weight: 0.006785, }, { - ID: 22, - Time: 2.1, + ID: 22, + Time: 2.1, Weight: 0.006728, }, { - ID: 23, - Time: 2.2, + ID: 23, + Time: 2.2, Weight: 0.006673, }, { - ID: 24, - Time: 2.3, + ID: 24, + Time: 2.3, Weight: 0.006617, }, { - ID: 25, - Time: 2.4, + ID: 25, + Time: 2.4, Weight: 0.006562, }, { - ID: 26, - Time: 2.5, + ID: 26, + Time: 2.5, Weight: 0.006508, }, { - ID: 27, - Time: 2.6, + ID: 27, + Time: 2.6, Weight: 0.006454, }, { - ID: 28, - Time: 2.7, + ID: 28, + Time: 2.7, Weight: 0.0064, }, { - ID: 29, - Time: 2.8, + ID: 29, + Time: 2.8, Weight: 0.006347, }, { - ID: 30, - Time: 2.9, + ID: 30, + Time: 2.9, Weight: 0.006294, }, { - ID: 31, - Time: 3, + ID: 31, + Time: 3, Weight: 0.006242, }, { - ID: 32, - Time: 3.1, + ID: 32, + Time: 3.1, Weight: 0.00619, }, { - ID: 33, - Time: 3.2, + ID: 33, + Time: 3.2, Weight: 0.006138, }, { - ID: 34, - Time: 3.3, + ID: 34, + Time: 3.3, Weight: 0.006087, }, { - ID: 35, - Time: 3.4, + ID: 35, + Time: 3.4, Weight: 0.006037, }, { - ID: 36, - Time: 3.5, + ID: 36, + Time: 3.5, Weight: 0.005987, }, { - ID: 37, - Time: 3.6, + ID: 37, + Time: 3.6, Weight: 0.005937, }, { - ID: 38, - Time: 3.7, + ID: 38, + Time: 3.7, Weight: 0.005888, }, { - ID: 39, - Time: 3.8, + ID: 39, + Time: 3.8, Weight: 0.005839, }, { - ID: 40, - Time: 3.9, + ID: 40, + Time: 3.9, Weight: 0.00579, }, { - ID: 41, - Time: 4, + ID: 41, + Time: 4, Weight: 0.005742, }, { - ID: 42, - Time: 4.1, + ID: 42, + Time: 4.1, Weight: 0.005694, }, { - ID: 43, - Time: 4.2, + ID: 43, + Time: 4.2, Weight: 0.005647, }, { - ID: 44, - Time: 4.3, + ID: 44, + Time: 4.3, Weight: 0.0056, }, { - ID: 45, - Time: 4.4, + ID: 45, + Time: 4.4, Weight: 0.005554, }, { - ID: 46, - Time: 4.5, + ID: 46, + Time: 4.5, Weight: 0.005508, }, { - ID: 47, - Time: 4.6, + ID: 47, + Time: 4.6, Weight: 0.005462, }, { - ID: 48, - Time: 4.7, + ID: 48, + Time: 4.7, Weight: 0.005416, }, { - ID: 49, - Time: 4.8, + ID: 49, + Time: 4.8, Weight: 0.005371, }, { - ID: 50, - Time: 4.9, + ID: 50, + Time: 4.9, Weight: 0.005327, }, { - ID: 51, - Time: 5, + ID: 51, + Time: 5, Weight: 0.005283, }, { - ID: 52, - Time: 5.1, + ID: 52, + Time: 5.1, Weight: 0.005239, }, { - ID: 53, - Time: 5.2, + ID: 53, + Time: 5.2, Weight: 0.005195, }, { - ID: 54, - Time: 5.3, + ID: 54, + Time: 5.3, Weight: 0.005152, }, { - ID: 55, - Time: 5.4, + ID: 55, + Time: 5.4, Weight: 0.005109, }, { - ID: 56, - Time: 5.5, + ID: 56, + Time: 5.5, Weight: 0.005067, }, { - ID: 57, - Time: 5.6, + ID: 57, + Time: 5.6, Weight: 0.005025, }, { - ID: 58, - Time: 5.7, + ID: 58, + Time: 5.7, Weight: 0.004983, }, { - ID: 59, - Time: 5.8, + ID: 59, + Time: 5.8, Weight: 0.004942, }, { - ID: 60, - Time: 5.9, + ID: 60, + Time: 5.9, Weight: 0.004901, }, { - ID: 61, - Time: 6, + ID: 61, + Time: 6, Weight: 0.00486, }, { - ID: 62, - Time: 6.1, + ID: 62, + Time: 6.1, Weight: 0.004819, }, { - ID: 63, - Time: 6.2, + ID: 63, + Time: 6.2, Weight: 0.004779, }, { - ID: 64, - Time: 6.3, + ID: 64, + Time: 6.3, Weight: 0.00474, }, { - ID: 65, - Time: 6.4, + ID: 65, + Time: 6.4, Weight: 0.0047, }, { - ID: 66, - Time: 6.5, + ID: 66, + Time: 6.5, Weight: 0.004661, }, { - ID: 67, - Time: 6.6, + ID: 67, + Time: 6.6, Weight: 0.004623, }, { - ID: 68, - Time: 6.7, + ID: 68, + Time: 6.7, Weight: 0.004584, }, { - ID: 69, - Time: 6.8, + ID: 69, + Time: 6.8, Weight: 0.004546, }, { - ID: 70, - Time: 6.9, + ID: 70, + Time: 6.9, Weight: 0.004508, }, { - ID: 71, - Time: 7, + ID: 71, + Time: 7, Weight: 0.004471, }, { - ID: 72, - Time: 7.1, + ID: 72, + Time: 7.1, Weight: 0.004434, }, { - ID: 73, - Time: 7.2, + ID: 73, + Time: 7.2, Weight: 0.004397, }, { - ID: 74, - Time: 7.3, + ID: 74, + Time: 7.3, Weight: 0.00436, }, { - ID: 75, - Time: 7.4, + ID: 75, + Time: 7.4, Weight: 0.004324, }, { - ID: 76, - Time: 7.5, + ID: 76, + Time: 7.5, Weight: 0.004288, }, { - ID: 77, - Time: 7.6, + ID: 77, + Time: 7.6, Weight: 0.004253, }, { - ID: 78, - Time: 7.7, + ID: 78, + Time: 7.7, Weight: 0.004217, }, { - ID: 79, - Time: 7.8, + ID: 79, + Time: 7.8, Weight: 0.004182, }, { - ID: 80, - Time: 7.9, + ID: 80, + Time: 7.9, Weight: 0.004147, }, { - ID: 81, - Time: 8, + ID: 81, + Time: 8, Weight: 0.004113, }, { - ID: 82, - Time: 8.1, + ID: 82, + Time: 8.1, Weight: 0.004079, }, { - ID: 83, - Time: 8.2, + ID: 83, + Time: 8.2, Weight: 0.004045, }, { - ID: 84, - Time: 8.3, + ID: 84, + Time: 8.3, Weight: 0.004011, }, { - ID: 85, - Time: 8.4, + ID: 85, + Time: 8.4, Weight: 0.003978, }, { - ID: 86, - Time: 8.5, + ID: 86, + Time: 8.5, Weight: 0.003945, }, { - ID: 87, - Time: 8.6, + ID: 87, + Time: 8.6, Weight: 0.003912, }, { - ID: 88, - Time: 8.7, + ID: 88, + Time: 8.7, Weight: 0.00388, }, { - ID: 89, - Time: 8.8, + ID: 89, + Time: 8.8, Weight: 0.003847, }, { - ID: 90, - Time: 8.9, + ID: 90, + Time: 8.9, Weight: 0.003816, }, { - ID: 91, - Time: 9, + ID: 91, + Time: 9, Weight: 0.003784, }, { - ID: 92, - Time: 9.1, + ID: 92, + Time: 9.1, Weight: 0.003752, }, { - ID: 93, - Time: 9.2, + ID: 93, + Time: 9.2, Weight: 0.003721, }, { - ID: 94, - Time: 9.3, + ID: 94, + Time: 9.3, Weight: 0.00369, }, { - ID: 95, - Time: 9.4, + ID: 95, + Time: 9.4, Weight: 0.00366, }, { - ID: 96, - Time: 9.5, + ID: 96, + Time: 9.5, Weight: 0.003629, }, { - ID: 97, - Time: 9.6, + ID: 97, + Time: 9.6, Weight: 0.003599, }, { - ID: 98, - Time: 9.7, + ID: 98, + Time: 9.7, Weight: 0.003569, }, { - ID: 99, - Time: 9.8, + ID: 99, + Time: 9.8, Weight: 0.00354, }, { - ID: 100, - Time: 9.9, + ID: 100, + Time: 9.9, Weight: 0.00351, }, { - ID: 101, - Time: 10, + ID: 101, + Time: 10, Weight: 0.003481, }, { - ID: 102, - Time: 10.1, + ID: 102, + Time: 10.1, Weight: 0.003452, }, { - ID: 103, - Time: 10.2, + ID: 103, + Time: 10.2, Weight: 0.003423, }, { - ID: 104, - Time: 10.3, + ID: 104, + Time: 10.3, Weight: 0.003395, }, { - ID: 105, - Time: 10.4, + ID: 105, + Time: 10.4, Weight: 0.003367, }, { - ID: 106, - Time: 10.5, + ID: 106, + Time: 10.5, Weight: 0.003339, }, { - ID: 107, - Time: 10.6, + ID: 107, + Time: 10.6, Weight: 0.003311, }, { - ID: 108, - Time: 10.7, + ID: 108, + Time: 10.7, Weight: 0.003284, }, { - ID: 109, - Time: 10.8, + ID: 109, + Time: 10.8, Weight: 0.003256, }, { - ID: 110, - Time: 10.9, + ID: 110, + Time: 10.9, Weight: 0.003229, }, { - ID: 111, - Time: 11, + ID: 111, + Time: 11, Weight: 0.003202, }, { - ID: 112, - Time: 11.1, + ID: 112, + Time: 11.1, Weight: 0.003176, }, { - ID: 113, - Time: 11.2, + ID: 113, + Time: 11.2, Weight: 0.003149, }, { - ID: 114, - Time: 11.3, + ID: 114, + Time: 11.3, Weight: 0.003123, }, { - ID: 115, - Time: 11.4, + ID: 115, + Time: 11.4, Weight: 0.003097, }, { - ID: 116, - Time: 11.5, + ID: 116, + Time: 11.5, Weight: 0.003072, }, { - ID: 117, - Time: 11.6, + ID: 117, + Time: 11.6, Weight: 0.003046, }, { - ID: 118, - Time: 11.7, + ID: 118, + Time: 11.7, Weight: 0.003021, }, { - ID: 119, - Time: 11.8, + ID: 119, + Time: 11.8, Weight: 0.002996, }, { - ID: 120, - Time: 11.9, + ID: 120, + Time: 11.9, Weight: 0.002971, }, { - ID: 121, - Time: 12, + ID: 121, + Time: 12, Weight: 0.002946, }, { - ID: 122, - Time: 12.1, + ID: 122, + Time: 12.1, Weight: 0.002922, }, { - ID: 123, - Time: 12.2, + ID: 123, + Time: 12.2, Weight: 0.002897, }, { - ID: 124, - Time: 12.3, + ID: 124, + Time: 12.3, Weight: 0.002873, }, { - ID: 125, - Time: 12.4, + ID: 125, + Time: 12.4, Weight: 0.002849, }, { - ID: 126, - Time: 12.5, + ID: 126, + Time: 12.5, Weight: 0.002826, }, { - ID: 127, - Time: 12.6, + ID: 127, + Time: 12.6, Weight: 0.002802, }, { - ID: 128, - Time: 12.7, + ID: 128, + Time: 12.7, Weight: 0.002779, }, { - ID: 129, - Time: 12.8, + ID: 129, + Time: 12.8, Weight: 0.002756, }, { - ID: 130, - Time: 12.9, + ID: 130, + Time: 12.9, Weight: 0.002733, }, { - ID: 131, - Time: 13, + ID: 131, + Time: 13, Weight: 0.00271, }, { - ID: 132, - Time: 13.1, + ID: 132, + Time: 13.1, Weight: 0.002688, }, { - ID: 133, - Time: 13.2, + ID: 133, + Time: 13.2, Weight: 0.002665, }, { - ID: 134, - Time: 13.3, + ID: 134, + Time: 13.3, Weight: 0.002643, }, { - ID: 135, - Time: 13.4, + ID: 135, + Time: 13.4, Weight: 0.002621, }, { - ID: 136, - Time: 13.5, + ID: 136, + Time: 13.5, Weight: 0.0026, }, { - ID: 137, - Time: 13.6, + ID: 137, + Time: 13.6, Weight: 0.002578, }, { - ID: 138, - Time: 13.7, + ID: 138, + Time: 13.7, Weight: 0.002557, }, { - ID: 139, - Time: 13.8, + ID: 139, + Time: 13.8, Weight: 0.002535, }, { - ID: 140, - Time: 13.9, + ID: 140, + Time: 13.9, Weight: 0.002514, }, { - ID: 141, - Time: 14, + ID: 141, + Time: 14, Weight: 0.002493, }, { - ID: 142, - Time: 14.1, + ID: 142, + Time: 14.1, Weight: 0.002473, }, { - ID: 143, - Time: 14.2, + ID: 143, + Time: 14.2, Weight: 0.002452, }, { - ID: 144, - Time: 14.3, + ID: 144, + Time: 14.3, Weight: 0.002432, }, { - ID: 145, - Time: 14.4, + ID: 145, + Time: 14.4, Weight: 0.002412, }, { - ID: 146, - Time: 14.5, + ID: 146, + Time: 14.5, Weight: 0.002391, }, { - ID: 147, - Time: 14.6, + ID: 147, + Time: 14.6, Weight: 0.002372, }, { - ID: 148, - Time: 14.7, + ID: 148, + Time: 14.7, Weight: 0.002352, }, { - ID: 149, - Time: 14.8, + ID: 149, + Time: 14.8, Weight: 0.002332, }, { - ID: 150, - Time: 14.9, + ID: 150, + Time: 14.9, Weight: 0.002313, }, { - ID: 151, - Time: 15, + ID: 151, + Time: 15, Weight: 0.002294, }, { - ID: 152, - Time: 15.1, + ID: 152, + Time: 15.1, Weight: 0.002275, }, { - ID: 153, - Time: 15.2, + ID: 153, + Time: 15.2, Weight: 0.002256, }, { - ID: 154, - Time: 15.3, + ID: 154, + Time: 15.3, Weight: 0.002237, }, { - ID: 155, - Time: 15.4, + ID: 155, + Time: 15.4, Weight: 0.002219, }, { - ID: 156, - Time: 15.5, + ID: 156, + Time: 15.5, Weight: 0.0022, }, { - ID: 157, - Time: 15.6, + ID: 157, + Time: 15.6, Weight: 0.002182, }, { - ID: 158, - Time: 15.7, + ID: 158, + Time: 15.7, Weight: 0.002164, }, { - ID: 159, - Time: 15.8, + ID: 159, + Time: 15.8, Weight: 0.002146, }, { - ID: 160, - Time: 15.9, + ID: 160, + Time: 15.9, Weight: 0.002128, }, { - ID: 161, - Time: 16, + ID: 161, + Time: 16, Weight: 0.00211, }, { - ID: 162, - Time: 16.1, + ID: 162, + Time: 16.1, Weight: 0.002093, }, { - ID: 163, - Time: 16.2, + ID: 163, + Time: 16.2, Weight: 0.002075, }, { - ID: 164, - Time: 16.3, + ID: 164, + Time: 16.3, Weight: 0.002058, }, { - ID: 165, - Time: 16.4, + ID: 165, + Time: 16.4, Weight: 0.002041, }, { - ID: 166, - Time: 16.5, + ID: 166, + Time: 16.5, Weight: 0.002024, }, { - ID: 167, - Time: 16.6, + ID: 167, + Time: 16.6, Weight: 0.002007, }, { - ID: 168, - Time: 16.7, + ID: 168, + Time: 16.7, Weight: 0.001991, }, { - ID: 169, - Time: 16.8, + ID: 169, + Time: 16.8, Weight: 0.001974, }, { - ID: 170, - Time: 16.9, + ID: 170, + Time: 16.9, Weight: 0.001958, }, { - ID: 171, - Time: 17, + ID: 171, + Time: 17, Weight: 0.001941, }, { - ID: 172, - Time: 17.1, + ID: 172, + Time: 17.1, Weight: 0.001925, }, { - ID: 173, - Time: 17.2, + ID: 173, + Time: 17.2, Weight: 0.001909, }, { - ID: 174, - Time: 17.3, + ID: 174, + Time: 17.3, Weight: 0.001893, }, { - ID: 175, - Time: 17.4, + ID: 175, + Time: 17.4, Weight: 0.001878, }, { - ID: 176, - Time: 17.5, + ID: 176, + Time: 17.5, Weight: 0.001862, }, { - ID: 177, - Time: 17.6, + ID: 177, + Time: 17.6, Weight: 0.001847, }, { - ID: 178, - Time: 17.7, + ID: 178, + Time: 17.7, Weight: 0.001831, }, { - ID: 179, - Time: 17.8, + ID: 179, + Time: 17.8, Weight: 0.001816, }, { - ID: 180, - Time: 17.9, + ID: 180, + Time: 17.9, Weight: 0.001801, }, { - ID: 181, - Time: 18, + ID: 181, + Time: 18, Weight: 0.001786, }, { - ID: 182, - Time: 18.1, + ID: 182, + Time: 18.1, Weight: 0.001771, }, { - ID: 183, - Time: 18.2, + ID: 183, + Time: 18.2, Weight: 0.001756, }, { - ID: 184, - Time: 18.3, + ID: 184, + Time: 18.3, Weight: 0.001742, }, { - ID: 185, - Time: 18.4, + ID: 185, + Time: 18.4, Weight: 0.001727, }, { - ID: 186, - Time: 18.5, + ID: 186, + Time: 18.5, Weight: 0.001713, }, { - ID: 187, - Time: 18.6, + ID: 187, + Time: 18.6, Weight: 0.001699, }, { - ID: 188, - Time: 18.7, + ID: 188, + Time: 18.7, Weight: 0.001685, }, { - ID: 189, - Time: 18.8, + ID: 189, + Time: 18.8, Weight: 0.001671, }, { - ID: 190, - Time: 18.9, + ID: 190, + Time: 18.9, Weight: 0.001657, }, { - ID: 191, - Time: 19, + ID: 191, + Time: 19, Weight: 0.001643, }, { - ID: 192, - Time: 19.1, + ID: 192, + Time: 19.1, Weight: 0.001629, }, { - ID: 193, - Time: 19.2, + ID: 193, + Time: 19.2, Weight: 0.001616, }, { - ID: 194, - Time: 19.3, + ID: 194, + Time: 19.3, Weight: 0.001602, }, { - ID: 195, - Time: 19.4, + ID: 195, + Time: 19.4, Weight: 0.001589, }, { - ID: 196, - Time: 19.5, + ID: 196, + Time: 19.5, Weight: 0.001576, }, { - ID: 197, - Time: 19.6, + ID: 197, + Time: 19.6, Weight: 0.001563, }, { - ID: 198, - Time: 19.7, + ID: 198, + Time: 19.7, Weight: 0.00155, }, { - ID: 199, - Time: 19.8, + ID: 199, + Time: 19.8, Weight: 0.001537, }, { - ID: 200, - Time: 19.9, + ID: 200, + Time: 19.9, Weight: 0.001524, }, { - ID: 201, - Time: 20, + ID: 201, + Time: 20, Weight: 0.001511, }, { - ID: 202, - Time: 20.1, + ID: 202, + Time: 20.1, Weight: 0.001499, }, { - ID: 203, - Time: 20.2, + ID: 203, + Time: 20.2, Weight: 0.001486, }, { - ID: 204, - Time: 20.3, + ID: 204, + Time: 20.3, Weight: 0.001474, }, { - ID: 205, - Time: 20.4, + ID: 205, + Time: 20.4, Weight: 0.001462, }, { - ID: 206, - Time: 20.5, + ID: 206, + Time: 20.5, Weight: 0.00145, }, { - ID: 207, - Time: 20.6, + ID: 207, + Time: 20.6, Weight: 0.001438, }, { - ID: 208, - Time: 20.7, + ID: 208, + Time: 20.7, Weight: 0.001426, }, { - ID: 209, - Time: 20.8, + ID: 209, + Time: 20.8, Weight: 0.001414, }, { - ID: 210, - Time: 20.9, + ID: 210, + Time: 20.9, Weight: 0.001402, }, { - ID: 211, - Time: 21, + ID: 211, + Time: 21, Weight: 0.001391, }, { - ID: 212, - Time: 21.1, + ID: 212, + Time: 21.1, Weight: 0.001379, }, { - ID: 213, - Time: 21.2, + ID: 213, + Time: 21.2, Weight: 0.001368, }, { - ID: 214, - Time: 21.3, + ID: 214, + Time: 21.3, Weight: 0.001356, }, { - ID: 215, - Time: 21.4, + ID: 215, + Time: 21.4, Weight: 0.001345, }, { - ID: 216, - Time: 21.5, + ID: 216, + Time: 21.5, Weight: 0.001334, }, { - ID: 217, - Time: 21.6, + ID: 217, + Time: 21.6, Weight: 0.001323, }, { - ID: 218, - Time: 21.7, + ID: 218, + Time: 21.7, Weight: 0.001312, }, { - ID: 219, - Time: 21.8, + ID: 219, + Time: 21.8, Weight: 0.001301, }, { - ID: 220, - Time: 21.9, + ID: 220, + Time: 21.9, Weight: 0.00129, }, { - ID: 221, - Time: 22, + ID: 221, + Time: 22, Weight: 0.001279, }, { - ID: 222, - Time: 22.1, + ID: 222, + Time: 22.1, Weight: 0.001269, }, { - ID: 223, - Time: 22.2, + ID: 223, + Time: 22.2, Weight: 0.001258, }, { - ID: 224, - Time: 22.3, + ID: 224, + Time: 22.3, Weight: 0.001248, }, { - ID: 225, - Time: 22.4, + ID: 225, + Time: 22.4, Weight: 0.001237, }, { - ID: 226, - Time: 22.5, + ID: 226, + Time: 22.5, Weight: 0.001227, }, { - ID: 227, - Time: 22.6, + ID: 227, + Time: 22.6, Weight: 0.001217, }, { - ID: 228, - Time: 22.7, + ID: 228, + Time: 22.7, Weight: 0.001207, }, { - ID: 229, - Time: 22.8, + ID: 229, + Time: 22.8, Weight: 0.001197, }, { - ID: 230, - Time: 22.9, + ID: 230, + Time: 22.9, Weight: 0.001187, }, { - ID: 231, - Time: 23, + ID: 231, + Time: 23, Weight: 0.001177, }, { - ID: 232, - Time: 23.1, + ID: 232, + Time: 23.1, Weight: 0.001167, }, { - ID: 233, - Time: 23.2, + ID: 233, + Time: 23.2, Weight: 0.001157, }, { - ID: 234, - Time: 23.3, + ID: 234, + Time: 23.3, Weight: 0.001148, }, { - ID: 235, - Time: 23.4, + ID: 235, + Time: 23.4, Weight: 0.001138, }, { - ID: 236, - Time: 23.5, + ID: 236, + Time: 23.5, Weight: 0.001129, }, { - ID: 237, - Time: 23.6, + ID: 237, + Time: 23.6, Weight: 0.001119, }, { - ID: 238, - Time: 23.7, + ID: 238, + Time: 23.7, Weight: 0.00111, }, { - ID: 239, - Time: 23.8, + ID: 239, + Time: 23.8, Weight: 0.001101, }, { - ID: 240, - Time: 23.9, + ID: 240, + Time: 23.9, Weight: 0.001092, }, { - ID: 241, - Time: 24, + ID: 241, + Time: 24, Weight: 0.001083, }, { - ID: 242, - Time: 24.1, + ID: 242, + Time: 24.1, Weight: 0.001074, }, { - ID: 243, - Time: 24.2, + ID: 243, + Time: 24.2, Weight: 0.001065, }, { - ID: 244, - Time: 24.3, + ID: 244, + Time: 24.3, Weight: 0.001056, }, { - ID: 245, - Time: 24.4, + ID: 245, + Time: 24.4, Weight: 0.001047, }, { - ID: 246, - Time: 24.5, + ID: 246, + Time: 24.5, Weight: 0.001038, }, { - ID: 247, - Time: 24.6, + ID: 247, + Time: 24.6, Weight: 0.00103, }, { - ID: 248, - Time: 24.7, + ID: 248, + Time: 24.7, Weight: 0.001021, }, { - ID: 249, - Time: 24.8, + ID: 249, + Time: 24.8, Weight: 0.001013, }, { - ID: 250, - Time: 24.9, + ID: 250, + Time: 24.9, Weight: 0.001004, }, { - ID: 251, - Time: 25, + ID: 251, + Time: 25, Weight: 0.000996, }, { - ID: 252, - Time: 25.1, + ID: 252, + Time: 25.1, Weight: 0.000988, }, { - ID: 253, - Time: 25.2, + ID: 253, + Time: 25.2, Weight: 0.00098, }, { - ID: 254, - Time: 25.3, + ID: 254, + Time: 25.3, Weight: 0.000971, }, { - ID: 255, - Time: 25.4, + ID: 255, + Time: 25.4, Weight: 0.000963, }, { - ID: 256, - Time: 25.5, + ID: 256, + Time: 25.5, Weight: 0.000955, }, { - ID: 257, - Time: 25.6, + ID: 257, + Time: 25.6, Weight: 0.000947, }, { - ID: 258, - Time: 25.7, + ID: 258, + Time: 25.7, Weight: 0.000939, }, { - ID: 259, - Time: 25.8, + ID: 259, + Time: 25.8, Weight: 0.000932, }, { - ID: 260, - Time: 25.9, + ID: 260, + Time: 25.9, Weight: 0.000924, }, { - ID: 261, - Time: 26, + ID: 261, + Time: 26, Weight: 0.000916, }, { - ID: 262, - Time: 26.1, + ID: 262, + Time: 26.1, Weight: 0.000909, }, { - ID: 263, - Time: 26.2, + ID: 263, + Time: 26.2, Weight: 0.000901, }, { - ID: 264, - Time: 26.3, + ID: 264, + Time: 26.3, Weight: 0.000894, }, { - ID: 265, - Time: 26.4, + ID: 265, + Time: 26.4, Weight: 0.000886, }, { - ID: 266, - Time: 26.5, + ID: 266, + Time: 26.5, Weight: 0.000879, }, { - ID: 267, - Time: 26.6, + ID: 267, + Time: 26.6, Weight: 0.000872, }, { - ID: 268, - Time: 26.7, + ID: 268, + Time: 26.7, Weight: 0.000864, }, { - ID: 269, - Time: 26.8, + ID: 269, + Time: 26.8, Weight: 0.000857, }, { - ID: 270, - Time: 26.9, + ID: 270, + Time: 26.9, Weight: 0.00085, }, { - ID: 271, - Time: 27, + ID: 271, + Time: 27, Weight: 0.000843, }, { - ID: 272, - Time: 27.1, + ID: 272, + Time: 27.1, Weight: 0.000836, }, { - ID: 273, - Time: 27.2, + ID: 273, + Time: 27.2, Weight: 0.000829, }, { - ID: 274, - Time: 27.3, + ID: 274, + Time: 27.3, Weight: 0.000822, }, { - ID: 275, - Time: 27.4, + ID: 275, + Time: 27.4, Weight: 0.000815, }, { - ID: 276, - Time: 27.5, + ID: 276, + Time: 27.5, Weight: 0.000809, }, { - ID: 277, - Time: 27.6, + ID: 277, + Time: 27.6, Weight: 0.000802, }, { - ID: 278, - Time: 27.7, + ID: 278, + Time: 27.7, Weight: 0.000795, }, { - ID: 279, - Time: 27.8, + ID: 279, + Time: 27.8, Weight: 0.000789, }, { - ID: 280, - Time: 27.9, + ID: 280, + Time: 27.9, Weight: 0.000782, }, { - ID: 281, - Time: 28, + ID: 281, + Time: 28, Weight: 0.000775, }, { - ID: 282, - Time: 28.1, + ID: 282, + Time: 28.1, Weight: 0.000769, }, { - ID: 283, - Time: 28.2, + ID: 283, + Time: 28.2, Weight: 0.000763, }, { - ID: 284, - Time: 28.3, + ID: 284, + Time: 28.3, Weight: 0.000756, }, { - ID: 285, - Time: 28.4, + ID: 285, + Time: 28.4, Weight: 0.00075, }, { - ID: 286, - Time: 28.5, + ID: 286, + Time: 28.5, Weight: 0.000744, }, { - ID: 287, - Time: 28.6, + ID: 287, + Time: 28.6, Weight: 0.000738, }, { - ID: 288, - Time: 28.7, + ID: 288, + Time: 28.7, Weight: 0.000731, }, { - ID: 289, - Time: 28.8, + ID: 289, + Time: 28.8, Weight: 0.000725, }, { - ID: 290, - Time: 28.9, + ID: 290, + Time: 28.9, Weight: 0.000719, }, { - ID: 291, - Time: 29, + ID: 291, + Time: 29, Weight: 0.000713, }, { - ID: 292, - Time: 29.1, + ID: 292, + Time: 29.1, Weight: 0.000707, }, { - ID: 293, - Time: 29.2, + ID: 293, + Time: 29.2, Weight: 0.000702, }, { - ID: 294, - Time: 29.3, + ID: 294, + Time: 29.3, Weight: 0.000696, }, { - ID: 295, - Time: 29.4, + ID: 295, + Time: 29.4, Weight: 0.00069, }, { - ID: 296, - Time: 29.5, + ID: 296, + Time: 29.5, Weight: 0.000684, }, { - ID: 297, - Time: 29.6, + ID: 297, + Time: 29.6, Weight: 0.000679, }, { - ID: 298, - Time: 29.7, + ID: 298, + Time: 29.7, Weight: 0.000673, }, { - ID: 299, - Time: 29.8, + ID: 299, + Time: 29.8, Weight: 0.000667, }, { - ID: 300, - Time: 29.9, + ID: 300, + Time: 29.9, Weight: 0.000662, }, { - ID: 301, - Time: 30, + ID: 301, + Time: 30, Weight: 0.000656, }, { - ID: 302, - Time: 30.1, + ID: 302, + Time: 30.1, Weight: 0.000651, }, { - ID: 303, - Time: 30.2, + ID: 303, + Time: 30.2, Weight: 0.000645, }, { - ID: 304, - Time: 30.3, + ID: 304, + Time: 30.3, Weight: 0.00064, }, { - ID: 305, - Time: 30.4, + ID: 305, + Time: 30.4, Weight: 0.000635, }, { - ID: 306, - Time: 30.5, + ID: 306, + Time: 30.5, Weight: 0.000629, }, { - ID: 307, - Time: 30.6, + ID: 307, + Time: 30.6, Weight: 0.000624, }, { - ID: 308, - Time: 30.7, + ID: 308, + Time: 30.7, Weight: 0.000619, }, { - ID: 309, - Time: 30.8, + ID: 309, + Time: 30.8, Weight: 0.000614, }, { - ID: 310, - Time: 30.9, + ID: 310, + Time: 30.9, Weight: 0.000609, }, { - ID: 311, - Time: 31, + ID: 311, + Time: 31, Weight: 0.000604, }, { - ID: 312, - Time: 31.1, + ID: 312, + Time: 31.1, Weight: 0.000599, }, { - ID: 313, - Time: 31.2, + ID: 313, + Time: 31.2, Weight: 0.000594, }, { - ID: 314, - Time: 31.3, + ID: 314, + Time: 31.3, Weight: 0.000589, }, { - ID: 315, - Time: 31.4, + ID: 315, + Time: 31.4, Weight: 0.000584, }, { - ID: 316, - Time: 31.5, + ID: 316, + Time: 31.5, Weight: 0.000579, }, { - ID: 317, - Time: 31.6, + ID: 317, + Time: 31.6, Weight: 0.000574, }, { - ID: 318, - Time: 31.7, + ID: 318, + Time: 31.7, Weight: 0.00057, }, { - ID: 319, - Time: 31.8, + ID: 319, + Time: 31.8, Weight: 0.000565, }, { - ID: 320, - Time: 31.9, + ID: 320, + Time: 31.9, Weight: 0.00056, }, { - ID: 321, - Time: 32, + ID: 321, + Time: 32, Weight: 0.000555, }, { - ID: 322, - Time: 32.1, + ID: 322, + Time: 32.1, Weight: 0.000551, }, { - ID: 323, - Time: 32.2, + ID: 323, + Time: 32.2, Weight: 0.000546, }, { - ID: 324, - Time: 32.3, + ID: 324, + Time: 32.3, Weight: 0.000542, }, { - ID: 325, - Time: 32.4, + ID: 325, + Time: 32.4, Weight: 0.000537, }, { - ID: 326, - Time: 32.5, + ID: 326, + Time: 32.5, Weight: 0.000533, }, { - ID: 327, - Time: 32.6, + ID: 327, + Time: 32.6, Weight: 0.000528, }, { - ID: 328, - Time: 32.7, + ID: 328, + Time: 32.7, Weight: 0.000524, }, { - ID: 329, - Time: 32.8, + ID: 329, + Time: 32.8, Weight: 0.00052, }, { - ID: 330, - Time: 32.9, + ID: 330, + Time: 32.9, Weight: 0.000515, }, { - ID: 331, - Time: 33, + ID: 331, + Time: 33, Weight: 0.000511, }, { - ID: 332, - Time: 33.1, + ID: 332, + Time: 33.1, Weight: 0.000507, }, { - ID: 333, - Time: 33.2, + ID: 333, + Time: 33.2, Weight: 0.000503, }, { - ID: 334, - Time: 33.3, + ID: 334, + Time: 33.3, Weight: 0.000498, }, { - ID: 335, - Time: 33.4, + ID: 335, + Time: 33.4, Weight: 0.000494, }, { - ID: 336, - Time: 33.5, + ID: 336, + Time: 33.5, Weight: 0.00049, }, { - ID: 337, - Time: 33.6, + ID: 337, + Time: 33.6, Weight: 0.000486, }, { - ID: 338, - Time: 33.7, + ID: 338, + Time: 33.7, Weight: 0.000482, }, { - ID: 339, - Time: 33.8, + ID: 339, + Time: 33.8, Weight: 0.000478, }, { - ID: 340, - Time: 33.9, + ID: 340, + Time: 33.9, Weight: 0.000474, }, { - ID: 341, - Time: 34, + ID: 341, + Time: 34, Weight: 0.00047, }, { - ID: 342, - Time: 34.1, + ID: 342, + Time: 34.1, Weight: 0.000466, }, { - ID: 343, - Time: 34.2, + ID: 343, + Time: 34.2, Weight: 0.000462, }, { - ID: 344, - Time: 34.3, + ID: 344, + Time: 34.3, Weight: 0.000458, }, { - ID: 345, - Time: 34.4, + ID: 345, + Time: 34.4, Weight: 0.000455, }, { - ID: 346, - Time: 34.5, + ID: 346, + Time: 34.5, Weight: 0.000451, }, { - ID: 347, - Time: 34.6, + ID: 347, + Time: 34.6, Weight: 0.000447, }, { - ID: 348, - Time: 34.7, + ID: 348, + Time: 34.7, Weight: 0.000443, }, { - ID: 349, - Time: 34.8, + ID: 349, + Time: 34.8, Weight: 0.00044, }, { - ID: 350, - Time: 34.9, + ID: 350, + Time: 34.9, Weight: 0.000436, }, { - ID: 351, - Time: 35, + ID: 351, + Time: 35, Weight: 0.000432, }, { - ID: 352, - Time: 35.1, + ID: 352, + Time: 35.1, Weight: 0.000429, }, { - ID: 353, - Time: 35.2, + ID: 353, + Time: 35.2, Weight: 0.000425, }, { - ID: 354, - Time: 35.3, + ID: 354, + Time: 35.3, Weight: 0.000422, }, { - ID: 355, - Time: 35.4, + ID: 355, + Time: 35.4, Weight: 0.000418, }, { - ID: 356, - Time: 35.5, + ID: 356, + Time: 35.5, Weight: 0.000415, }, { - ID: 357, - Time: 35.6, + ID: 357, + Time: 35.6, Weight: 0.000411, }, { - ID: 358, - Time: 35.7, + ID: 358, + Time: 35.7, Weight: 0.000408, }, { - ID: 359, - Time: 35.8, + ID: 359, + Time: 35.8, Weight: 0.000405, }, { - ID: 360, - Time: 35.9, + ID: 360, + Time: 35.9, Weight: 0.000401, }, { - ID: 361, - Time: 36, + ID: 361, + Time: 36, Weight: 0.000398, }, { - ID: 362, - Time: 36.1, + ID: 362, + Time: 36.1, Weight: 0.000395, }, { - ID: 363, - Time: 36.2, + ID: 363, + Time: 36.2, Weight: 0.000391, }, { - ID: 364, - Time: 36.3, + ID: 364, + Time: 36.3, Weight: 0.000388, }, { - ID: 365, - Time: 36.4, + ID: 365, + Time: 36.4, Weight: 0.000385, }, { - ID: 366, - Time: 36.5, + ID: 366, + Time: 36.5, Weight: 0.000382, }, { - ID: 367, - Time: 36.6, + ID: 367, + Time: 36.6, Weight: 0.000378, }, { - ID: 368, - Time: 36.7, + ID: 368, + Time: 36.7, Weight: 0.000375, }, { - ID: 369, - Time: 36.8, + ID: 369, + Time: 36.8, Weight: 0.000372, }, { - ID: 370, - Time: 36.9, + ID: 370, + Time: 36.9, Weight: 0.000369, }, { - ID: 371, - Time: 37, + ID: 371, + Time: 37, Weight: 0.000366, }, { - ID: 372, - Time: 37.1, + ID: 372, + Time: 37.1, Weight: 0.000363, }, { - ID: 373, - Time: 37.2, + ID: 373, + Time: 37.2, Weight: 0.00036, }, { - ID: 374, - Time: 37.3, + ID: 374, + Time: 37.3, Weight: 0.000357, }, { - ID: 375, - Time: 37.4, + ID: 375, + Time: 37.4, Weight: 0.000354, }, { - ID: 376, - Time: 37.5, + ID: 376, + Time: 37.5, Weight: 0.000351, }, { - ID: 377, - Time: 37.6, + ID: 377, + Time: 37.6, Weight: 0.000348, }, { - ID: 378, - Time: 37.7, + ID: 378, + Time: 37.7, Weight: 0.000345, }, { - ID: 379, - Time: 37.8, + ID: 379, + Time: 37.8, Weight: 0.000342, }, { - ID: 380, - Time: 37.9, + ID: 380, + Time: 37.9, Weight: 0.00034, }, { - ID: 381, - Time: 38, + ID: 381, + Time: 38, Weight: 0.000337, }, { - ID: 382, - Time: 38.1, + ID: 382, + Time: 38.1, Weight: 0.000334, }, { - ID: 383, - Time: 38.2, + ID: 383, + Time: 38.2, Weight: 0.000331, }, { - ID: 384, - Time: 38.3, + ID: 384, + Time: 38.3, Weight: 0.000328, }, { - ID: 385, - Time: 38.4, + ID: 385, + Time: 38.4, Weight: 0.000326, }, { - ID: 386, - Time: 38.5, + ID: 386, + Time: 38.5, Weight: 0.000323, }, { - ID: 387, - Time: 38.6, + ID: 387, + Time: 38.6, Weight: 0.00032, }, { - ID: 388, - Time: 38.7, + ID: 388, + Time: 38.7, Weight: 0.000318, }, { - ID: 389, - Time: 38.8, + ID: 389, + Time: 38.8, Weight: 0.000315, }, { - ID: 390, - Time: 38.9, + ID: 390, + Time: 38.9, Weight: 0.000312, }, { - ID: 391, - Time: 39, + ID: 391, + Time: 39, Weight: 0.00031, }, { - ID: 392, - Time: 39.1, + ID: 392, + Time: 39.1, Weight: 0.000307, }, { - ID: 393, - Time: 39.2, + ID: 393, + Time: 39.2, Weight: 0.000305, }, { - ID: 394, - Time: 39.3, + ID: 394, + Time: 39.3, Weight: 0.000302, }, { - ID: 395, - Time: 39.4, + ID: 395, + Time: 39.4, Weight: 0.0003, }, { - ID: 396, - Time: 39.5, + ID: 396, + Time: 39.5, Weight: 0.000297, }, { - ID: 397, - Time: 39.6, + ID: 397, + Time: 39.6, Weight: 0.000295, }, { - ID: 398, - Time: 39.7, + ID: 398, + Time: 39.7, Weight: 0.000292, }, { - ID: 399, - Time: 39.8, + ID: 399, + Time: 39.8, Weight: 0.00029, }, { - ID: 400, - Time: 39.9, + ID: 400, + Time: 39.9, Weight: 0.000287, }, { - ID: 401, - Time: 40, + ID: 401, + Time: 40, Weight: 0.000285, }, { - ID: 402, - Time: 40.1, + ID: 402, + Time: 40.1, Weight: 0.000283, }, { - ID: 403, - Time: 40.2, + ID: 403, + Time: 40.2, Weight: 0.00028, }, { - ID: 404, - Time: 40.3, + ID: 404, + Time: 40.3, Weight: 0.000278, }, { - ID: 405, - Time: 40.4, + ID: 405, + Time: 40.4, Weight: 0.000276, }, { - ID: 406, - Time: 40.5, + ID: 406, + Time: 40.5, Weight: 0.000273, }, { - ID: 407, - Time: 40.6, + ID: 407, + Time: 40.6, Weight: 0.000271, }, { - ID: 408, - Time: 40.7, + ID: 408, + Time: 40.7, Weight: 0.000269, }, { - ID: 409, - Time: 40.8, + ID: 409, + Time: 40.8, Weight: 0.000267, }, { - ID: 410, - Time: 40.9, + ID: 410, + Time: 40.9, Weight: 0.000264, }, { - ID: 411, - Time: 41, + ID: 411, + Time: 41, Weight: 0.000262, }, { - ID: 412, - Time: 41.1, + ID: 412, + Time: 41.1, Weight: 0.00026, }, { - ID: 413, - Time: 41.2, + ID: 413, + Time: 41.2, Weight: 0.000258, }, { - ID: 414, - Time: 41.3, + ID: 414, + Time: 41.3, Weight: 0.000256, }, { - ID: 415, - Time: 41.4, + ID: 415, + Time: 41.4, Weight: 0.000254, }, { - ID: 416, - Time: 41.5, + ID: 416, + Time: 41.5, Weight: 0.000251, }, { - ID: 417, - Time: 41.6, + ID: 417, + Time: 41.6, Weight: 0.000249, }, { - ID: 418, - Time: 41.7, + ID: 418, + Time: 41.7, Weight: 0.000247, }, { - ID: 419, - Time: 41.8, + ID: 419, + Time: 41.8, Weight: 0.000245, }, { - ID: 420, - Time: 41.9, + ID: 420, + Time: 41.9, Weight: 0.000243, }, { - ID: 421, - Time: 42, + ID: 421, + Time: 42, Weight: 0.000241, }, { - ID: 422, - Time: 42.1, + ID: 422, + Time: 42.1, Weight: 0.000239, }, { - ID: 423, - Time: 42.2, + ID: 423, + Time: 42.2, Weight: 0.000237, }, { - ID: 424, - Time: 42.3, + ID: 424, + Time: 42.3, Weight: 0.000235, }, { - ID: 425, - Time: 42.4, + ID: 425, + Time: 42.4, Weight: 0.000233, }, { - ID: 426, - Time: 42.5, + ID: 426, + Time: 42.5, Weight: 0.000231, }, { - ID: 427, - Time: 42.6, + ID: 427, + Time: 42.6, Weight: 0.000229, }, { - ID: 428, - Time: 42.7, + ID: 428, + Time: 42.7, Weight: 0.000228, }, { - ID: 429, - Time: 42.8, + ID: 429, + Time: 42.8, Weight: 0.000226, }, { - ID: 430, - Time: 42.9, + ID: 430, + Time: 42.9, Weight: 0.000224, }, { - ID: 431, - Time: 43, + ID: 431, + Time: 43, Weight: 0.000222, }, { - ID: 432, - Time: 43.1, + ID: 432, + Time: 43.1, Weight: 0.00022, }, { - ID: 433, - Time: 43.2, + ID: 433, + Time: 43.2, Weight: 0.000218, }, { - ID: 434, - Time: 43.3, + ID: 434, + Time: 43.3, Weight: 0.000216, }, { - ID: 435, - Time: 43.4, + ID: 435, + Time: 43.4, Weight: 0.000215, }, { - ID: 436, - Time: 43.5, + ID: 436, + Time: 43.5, Weight: 0.000213, }, { - ID: 437, - Time: 43.6, + ID: 437, + Time: 43.6, Weight: 0.000211, }, { - ID: 438, - Time: 43.7, + ID: 438, + Time: 43.7, Weight: 0.000209, }, { - ID: 439, - Time: 43.8, + ID: 439, + Time: 43.8, Weight: 0.000208, }, { - ID: 440, - Time: 43.9, + ID: 440, + Time: 43.9, Weight: 0.000206, }, { - ID: 441, - Time: 44, + ID: 441, + Time: 44, Weight: 0.000204, }, { - ID: 442, - Time: 44.1, + ID: 442, + Time: 44.1, Weight: 0.000202, }, { - ID: 443, - Time: 44.2, + ID: 443, + Time: 44.2, Weight: 0.000201, }, { - ID: 444, - Time: 44.3, + ID: 444, + Time: 44.3, Weight: 0.000199, }, { - ID: 445, - Time: 44.4, + ID: 445, + Time: 44.4, Weight: 0.000197, }, { - ID: 446, - Time: 44.5, + ID: 446, + Time: 44.5, Weight: 0.000196, }, { - ID: 447, - Time: 44.6, + ID: 447, + Time: 44.6, Weight: 0.000194, }, { - ID: 448, - Time: 44.7, + ID: 448, + Time: 44.7, Weight: 0.000193, }, { - ID: 449, - Time: 44.8, + ID: 449, + Time: 44.8, Weight: 0.000191, }, { - ID: 450, - Time: 44.9, + ID: 450, + Time: 44.9, Weight: 0.000189, }, { - ID: 451, - Time: 45, + ID: 451, + Time: 45, Weight: 0.000188, }, { - ID: 452, - Time: 45.1, + ID: 452, + Time: 45.1, Weight: 0.000186, }, { - ID: 453, - Time: 45.2, + ID: 453, + Time: 45.2, Weight: 0.000185, }, { - ID: 454, - Time: 45.3, + ID: 454, + Time: 45.3, Weight: 0.000183, }, { - ID: 455, - Time: 45.4, + ID: 455, + Time: 45.4, Weight: 0.000182, }, { - ID: 456, - Time: 45.5, + ID: 456, + Time: 45.5, Weight: 0.00018, }, { - ID: 457, - Time: 45.6, + ID: 457, + Time: 45.6, Weight: 0.000179, }, { - ID: 458, - Time: 45.7, + ID: 458, + Time: 45.7, Weight: 0.000177, }, { - ID: 459, - Time: 45.8, + ID: 459, + Time: 45.8, Weight: 0.000176, }, { - ID: 460, - Time: 45.9, + ID: 460, + Time: 45.9, Weight: 0.000174, }, { - ID: 461, - Time: 46, + ID: 461, + Time: 46, Weight: 0.000173, }, { - ID: 462, - Time: 46.1, + ID: 462, + Time: 46.1, Weight: 0.000171, }, { - ID: 463, - Time: 46.2, + ID: 463, + Time: 46.2, Weight: 0.00017, }, { - ID: 464, - Time: 46.3, + ID: 464, + Time: 46.3, Weight: 0.000168, }, { - ID: 465, - Time: 46.4, + ID: 465, + Time: 46.4, Weight: 0.000167, }, { - ID: 466, - Time: 46.5, + ID: 466, + Time: 46.5, Weight: 0.000166, }, { - ID: 467, - Time: 46.6, + ID: 467, + Time: 46.6, Weight: 0.000164, }, { - ID: 468, - Time: 46.7, + ID: 468, + Time: 46.7, Weight: 0.000163, }, { - ID: 469, - Time: 46.8, + ID: 469, + Time: 46.8, Weight: 0.000162, }, { - ID: 470, - Time: 46.9, + ID: 470, + Time: 46.9, Weight: 0.00016, }, { - ID: 471, - Time: 47, + ID: 471, + Time: 47, Weight: 0.000159, }, { - ID: 472, - Time: 47.1, + ID: 472, + Time: 47.1, Weight: 0.000158, }, { - ID: 473, - Time: 47.2, + ID: 473, + Time: 47.2, Weight: 0.000156, }, { - ID: 474, - Time: 47.3, + ID: 474, + Time: 47.3, Weight: 0.000155, }, { - ID: 475, - Time: 47.4, + ID: 475, + Time: 47.4, Weight: 0.000154, }, { - ID: 476, - Time: 47.5, + ID: 476, + Time: 47.5, Weight: 0.000152, }, { - ID: 477, - Time: 47.6, + ID: 477, + Time: 47.6, Weight: 0.000151, }, { - ID: 478, - Time: 47.7, + ID: 478, + Time: 47.7, Weight: 0.00015, }, { - ID: 479, - Time: 47.8, + ID: 479, + Time: 47.8, Weight: 0.000149, }, { - ID: 480, - Time: 47.9, + ID: 480, + Time: 47.9, Weight: 0.000147, }, { - ID: 481, - Time: 48, + ID: 481, + Time: 48, Weight: 0.000146, }, { - ID: 482, - Time: 48.1, + ID: 482, + Time: 48.1, Weight: 0.000145, }, { - ID: 483, - Time: 48.2, + ID: 483, + Time: 48.2, Weight: 0.000144, }, { - ID: 484, - Time: 48.3, + ID: 484, + Time: 48.3, Weight: 0.000143, }, { - ID: 485, - Time: 48.4, + ID: 485, + Time: 48.4, Weight: 0.000141, }, { - ID: 486, - Time: 48.5, + ID: 486, + Time: 48.5, Weight: 0.00014, }, { - ID: 487, - Time: 48.6, + ID: 487, + Time: 48.6, Weight: 0.000139, }, { - ID: 488, - Time: 48.7, + ID: 488, + Time: 48.7, Weight: 0.000138, }, { - ID: 489, - Time: 48.8, + ID: 489, + Time: 48.8, Weight: 0.000137, }, { - ID: 490, - Time: 48.9, + ID: 490, + Time: 48.9, Weight: 0.000136, }, { - ID: 491, - Time: 49, + ID: 491, + Time: 49, Weight: 0.000135, }, { - ID: 492, - Time: 49.1, + ID: 492, + Time: 49.1, Weight: 0.000133, }, { - ID: 493, - Time: 49.2, + ID: 493, + Time: 49.2, Weight: 0.000132, }, { - ID: 494, - Time: 49.3, + ID: 494, + Time: 49.3, Weight: 0.000131, }, { - ID: 495, - Time: 49.4, + ID: 495, + Time: 49.4, Weight: 0.00013, }, { - ID: 496, - Time: 49.5, + ID: 496, + Time: 49.5, Weight: 0.000129, }, { - ID: 497, - Time: 49.6, + ID: 497, + Time: 49.6, Weight: 0.000128, }, { - ID: 498, - Time: 49.7, + ID: 498, + Time: 49.7, Weight: 0.000127, }, { - ID: 499, - Time: 49.8, + ID: 499, + Time: 49.8, Weight: 0.000126, }, { - ID: 500, - Time: 49.9, + ID: 500, + Time: 49.9, Weight: 0.000125, }, { - ID: 501, - Time: 50, + ID: 501, + Time: 50, Weight: 0.000124, }, { - ID: 502, - Time: 50.1, + ID: 502, + Time: 50.1, Weight: 0.000123, }, { - ID: 503, - Time: 50.2, + ID: 503, + Time: 50.2, Weight: 0.000122, }, { - ID: 504, - Time: 50.3, + ID: 504, + Time: 50.3, Weight: 0.000121, }, { - ID: 505, - Time: 50.4, + ID: 505, + Time: 50.4, Weight: 0.00012, }, { - ID: 506, - Time: 50.5, + ID: 506, + Time: 50.5, Weight: 0.000119, }, { - ID: 507, - Time: 50.6, + ID: 507, + Time: 50.6, Weight: 0.000118, }, { - ID: 508, - Time: 50.7, + ID: 508, + Time: 50.7, Weight: 0.000117, }, { - ID: 509, - Time: 50.8, + ID: 509, + Time: 50.8, Weight: 0.000116, }, { - ID: 510, - Time: 50.9, + ID: 510, + Time: 50.9, Weight: 0.000115, }, { - ID: 511, - Time: 51, + ID: 511, + Time: 51, Weight: 0.000114, }, { - ID: 512, - Time: 51.1, + ID: 512, + Time: 51.1, Weight: 0.000113, }, { - ID: 513, - Time: 51.2, + ID: 513, + Time: 51.2, Weight: 0.000112, }, { - ID: 514, - Time: 51.3, + ID: 514, + Time: 51.3, Weight: 0.000111, }, { - ID: 515, - Time: 51.4, + ID: 515, + Time: 51.4, Weight: 0.00011, }, { - ID: 516, - Time: 51.5, + ID: 516, + Time: 51.5, Weight: 0.000109, }, { - ID: 517, - Time: 51.6, + ID: 517, + Time: 51.6, Weight: 0.000108, }, { - ID: 518, - Time: 51.7, + ID: 518, + Time: 51.7, Weight: 0.000107, }, { - ID: 519, - Time: 51.8, + ID: 519, + Time: 51.8, Weight: 0.000106, }, { - ID: 520, - Time: 51.9, + ID: 520, + Time: 51.9, Weight: 0.000106, }, { - ID: 521, - Time: 52, + ID: 521, + Time: 52, Weight: 0.000105, }, { - ID: 522, - Time: 52.1, + ID: 522, + Time: 52.1, Weight: 0.000104, }, { - ID: 523, - Time: 52.2, + ID: 523, + Time: 52.2, Weight: 0.000103, }, { - ID: 524, - Time: 52.3, + ID: 524, + Time: 52.3, Weight: 0.000102, }, { - ID: 525, - Time: 52.4, + ID: 525, + Time: 52.4, Weight: 0.000101, }, { - ID: 526, - Time: 52.5, + ID: 526, + Time: 52.5, Weight: 0.0001, }, { - ID: 527, - Time: 52.6, + ID: 527, + Time: 52.6, Weight: 0.0001, }, { - ID: 528, - Time: 52.7, + ID: 528, + Time: 52.7, Weight: 0.000099, }, { - ID: 529, - Time: 52.8, + ID: 529, + Time: 52.8, Weight: 0.000098, }, { - ID: 530, - Time: 52.9, + ID: 530, + Time: 52.9, Weight: 0.000097, }, { - ID: 531, - Time: 53, + ID: 531, + Time: 53, Weight: 0.000096, }, { - ID: 532, - Time: 53.1, + ID: 532, + Time: 53.1, Weight: 0.000096, }, { - ID: 533, - Time: 53.2, + ID: 533, + Time: 53.2, Weight: 0.000095, }, { - ID: 534, - Time: 53.3, + ID: 534, + Time: 53.3, Weight: 0.000094, }, { - ID: 535, - Time: 53.4, + ID: 535, + Time: 53.4, Weight: 0.000093, }, { - ID: 536, - Time: 53.5, + ID: 536, + Time: 53.5, Weight: 0.000092, }, { - ID: 537, - Time: 53.6, + ID: 537, + Time: 53.6, Weight: 0.000092, }, { - ID: 538, - Time: 53.7, + ID: 538, + Time: 53.7, Weight: 0.000091, }, { - ID: 539, - Time: 53.8, + ID: 539, + Time: 53.8, Weight: 0.00009, }, { - ID: 540, - Time: 53.9, + ID: 540, + Time: 53.9, Weight: 0.000089, }, { - ID: 541, - Time: 54, + ID: 541, + Time: 54, Weight: 0.000089, }, { - ID: 542, - Time: 54.1, + ID: 542, + Time: 54.1, Weight: 0.000088, }, { - ID: 543, - Time: 54.2, + ID: 543, + Time: 54.2, Weight: 0.000087, }, { - ID: 544, - Time: 54.3, + ID: 544, + Time: 54.3, Weight: 0.000086, }, { - ID: 545, - Time: 54.4, + ID: 545, + Time: 54.4, Weight: 0.000086, }, { - ID: 546, - Time: 54.5, + ID: 546, + Time: 54.5, Weight: 0.000085, }, { - ID: 547, - Time: 54.6, + ID: 547, + Time: 54.6, Weight: 0.000084, }, { - ID: 548, - Time: 54.7, + ID: 548, + Time: 54.7, Weight: 0.000084, }, { - ID: 549, - Time: 54.8, + ID: 549, + Time: 54.8, Weight: 0.000083, }, { - ID: 550, - Time: 54.9, + ID: 550, + Time: 54.9, Weight: 0.000082, }, { - ID: 551, - Time: 55, + ID: 551, + Time: 55, Weight: 0.000082, }, { - ID: 552, - Time: 55.1, + ID: 552, + Time: 55.1, Weight: 0.000081, }, { - ID: 553, - Time: 55.2, + ID: 553, + Time: 55.2, Weight: 0.00008, }, { - ID: 554, - Time: 55.3, + ID: 554, + Time: 55.3, Weight: 0.00008, }, { - ID: 555, - Time: 55.4, + ID: 555, + Time: 55.4, Weight: 0.000079, }, { - ID: 556, - Time: 55.5, + ID: 556, + Time: 55.5, Weight: 0.000078, }, { - ID: 557, - Time: 55.6, + ID: 557, + Time: 55.6, Weight: 0.000078, }, { - ID: 558, - Time: 55.7, + ID: 558, + Time: 55.7, Weight: 0.000077, }, { - ID: 559, - Time: 55.8, + ID: 559, + Time: 55.8, Weight: 0.000076, }, { - ID: 560, - Time: 55.9, + ID: 560, + Time: 55.9, Weight: 0.000076, }, { - ID: 561, - Time: 56, + ID: 561, + Time: 56, Weight: 0.000075, }, { - ID: 562, - Time: 56.1, + ID: 562, + Time: 56.1, Weight: 0.000074, }, { - ID: 563, - Time: 56.2, + ID: 563, + Time: 56.2, Weight: 0.000074, }, { - ID: 564, - Time: 56.3, + ID: 564, + Time: 56.3, Weight: 0.000073, }, { - ID: 565, - Time: 56.4, + ID: 565, + Time: 56.4, Weight: 0.000073, }, { - ID: 566, - Time: 56.5, + ID: 566, + Time: 56.5, Weight: 0.000072, }, { - ID: 567, - Time: 56.6, + ID: 567, + Time: 56.6, Weight: 0.000071, }, { - ID: 568, - Time: 56.7, + ID: 568, + Time: 56.7, Weight: 0.000071, }, { - ID: 569, - Time: 56.8, + ID: 569, + Time: 56.8, Weight: 0.00007, }, { - ID: 570, - Time: 56.9, + ID: 570, + Time: 56.9, Weight: 0.00007, }, { - ID: 571, - Time: 57, + ID: 571, + Time: 57, Weight: 0.000069, }, { - ID: 572, - Time: 57.1, + ID: 572, + Time: 57.1, Weight: 0.000068, }, { - ID: 573, - Time: 57.2, + ID: 573, + Time: 57.2, Weight: 0.000068, }, { - ID: 574, - Time: 57.3, + ID: 574, + Time: 57.3, Weight: 0.000067, }, { - ID: 575, - Time: 57.4, + ID: 575, + Time: 57.4, Weight: 0.000067, }, { - ID: 576, - Time: 57.5, + ID: 576, + Time: 57.5, Weight: 0.000066, }, { - ID: 577, - Time: 57.6, + ID: 577, + Time: 57.6, Weight: 0.000066, }, { - ID: 578, - Time: 57.7, + ID: 578, + Time: 57.7, Weight: 0.000065, }, { - ID: 579, - Time: 57.8, + ID: 579, + Time: 57.8, Weight: 0.000065, }, { - ID: 580, - Time: 57.9, + ID: 580, + Time: 57.9, Weight: 0.000064, }, { - ID: 581, - Time: 58, + ID: 581, + Time: 58, Weight: 0.000063, }, { - ID: 582, - Time: 58.1, + ID: 582, + Time: 58.1, Weight: 0.000063, }, { - ID: 583, - Time: 58.2, + ID: 583, + Time: 58.2, Weight: 0.000062, }, { - ID: 584, - Time: 58.3, + ID: 584, + Time: 58.3, Weight: 0.000062, }, { - ID: 585, - Time: 58.4, + ID: 585, + Time: 58.4, Weight: 0.000061, }, { - ID: 586, - Time: 58.5, + ID: 586, + Time: 58.5, Weight: 0.000061, }, { - ID: 587, - Time: 58.6, + ID: 587, + Time: 58.6, Weight: 0.00006, }, { - ID: 588, - Time: 58.7, + ID: 588, + Time: 58.7, Weight: 0.00006, }, { - ID: 589, - Time: 58.8, + ID: 589, + Time: 58.8, Weight: 0.000059, }, { - ID: 590, - Time: 58.9, + ID: 590, + Time: 58.9, Weight: 0.000059, }, { - ID: 591, - Time: 59, + ID: 591, + Time: 59, Weight: 0.000058, }, { - ID: 592, - Time: 59.1, + ID: 592, + Time: 59.1, Weight: 0.000058, }, { - ID: 593, - Time: 59.2, + ID: 593, + Time: 59.2, Weight: 0.000057, }, { - ID: 594, - Time: 59.3, + ID: 594, + Time: 59.3, Weight: 0.000057, }, { - ID: 595, - Time: 59.4, + ID: 595, + Time: 59.4, Weight: 0.000056, }, { - ID: 596, - Time: 59.5, + ID: 596, + Time: 59.5, Weight: 0.000056, }, { - ID: 597, - Time: 59.6, + ID: 597, + Time: 59.6, Weight: 0.000056, }, { - ID: 598, - Time: 59.7, + ID: 598, + Time: 59.7, Weight: 0.000055, }, { - ID: 599, - Time: 59.8, + ID: 599, + Time: 59.8, Weight: 0.000055, }, { - ID: 600, - Time: 59.9, + ID: 600, + Time: 59.9, Weight: 0.000054, }, { - ID: 601, - Time: 60, + ID: 601, + Time: 60, Weight: 0.000054, }, { - ID: 602, - Time: 60.1, + ID: 602, + Time: 60.1, Weight: 0.000053, }, { - ID: 603, - Time: 60.2, + ID: 603, + Time: 60.2, Weight: 0.000053, }, { - ID: 604, - Time: 60.3, + ID: 604, + Time: 60.3, Weight: 0.000052, }, { - ID: 605, - Time: 60.4, + ID: 605, + Time: 60.4, Weight: 0.000052, }, { - ID: 606, - Time: 60.5, + ID: 606, + Time: 60.5, Weight: 0.000052, }, { - ID: 607, - Time: 60.6, + ID: 607, + Time: 60.6, Weight: 0.000051, }, { - ID: 608, - Time: 60.7, + ID: 608, + Time: 60.7, Weight: 0.000051, }, { - ID: 609, - Time: 60.8, + ID: 609, + Time: 60.8, Weight: 0.00005, }, { - ID: 610, - Time: 60.9, + ID: 610, + Time: 60.9, Weight: 0.00005, }, { - ID: 611, - Time: 61, + ID: 611, + Time: 61, Weight: 0.000049, }, { - ID: 612, - Time: 61.1, + ID: 612, + Time: 61.1, Weight: 0.000049, }, { - ID: 613, - Time: 61.2, + ID: 613, + Time: 61.2, Weight: 0.000049, }, { - ID: 614, - Time: 61.3, + ID: 614, + Time: 61.3, Weight: 0.000048, }, { - ID: 615, - Time: 61.4, + ID: 615, + Time: 61.4, Weight: 0.000048, }, { - ID: 616, - Time: 61.5, + ID: 616, + Time: 61.5, Weight: 0.000047, }, { - ID: 617, - Time: 61.6, + ID: 617, + Time: 61.6, Weight: 0.000047, }, { - ID: 618, - Time: 61.7, + ID: 618, + Time: 61.7, Weight: 0.000047, }, { - ID: 619, - Time: 61.8, + ID: 619, + Time: 61.8, Weight: 0.000046, }, { - ID: 620, - Time: 61.9, + ID: 620, + Time: 61.9, Weight: 0.000046, }, { - ID: 621, - Time: 62, + ID: 621, + Time: 62, Weight: 0.000045, }, { - ID: 622, - Time: 62.1, + ID: 622, + Time: 62.1, Weight: 0.000045, }, { - ID: 623, - Time: 62.2, + ID: 623, + Time: 62.2, Weight: 0.000045, }, { - ID: 624, - Time: 62.3, + ID: 624, + Time: 62.3, Weight: 0.000044, }, { - ID: 625, - Time: 62.4, + ID: 625, + Time: 62.4, Weight: 0.000044, }, { - ID: 626, - Time: 62.5, + ID: 626, + Time: 62.5, Weight: 0.000044, }, { - ID: 627, - Time: 62.6, + ID: 627, + Time: 62.6, Weight: 0.000043, }, { - ID: 628, - Time: 62.7, + ID: 628, + Time: 62.7, Weight: 0.000043, }, { - ID: 629, - Time: 62.8, + ID: 629, + Time: 62.8, Weight: 0.000043, }, { - ID: 630, - Time: 62.9, + ID: 630, + Time: 62.9, Weight: 0.000042, }, { - ID: 631, - Time: 63, + ID: 631, + Time: 63, Weight: 0.000042, }, { - ID: 632, - Time: 63.1, + ID: 632, + Time: 63.1, Weight: 0.000041, }, { - ID: 633, - Time: 63.2, + ID: 633, + Time: 63.2, Weight: 0.000041, }, { - ID: 634, - Time: 63.3, + ID: 634, + Time: 63.3, Weight: 0.000041, }, { - ID: 635, - Time: 63.4, + ID: 635, + Time: 63.4, Weight: 0.00004, }, { - ID: 636, - Time: 63.5, + ID: 636, + Time: 63.5, Weight: 0.00004, }, { - ID: 637, - Time: 63.6, + ID: 637, + Time: 63.6, Weight: 0.00004, }, { - ID: 638, - Time: 63.7, + ID: 638, + Time: 63.7, Weight: 0.000039, }, { - ID: 639, - Time: 63.8, + ID: 639, + Time: 63.8, Weight: 0.000039, }, { - ID: 640, - Time: 63.9, + ID: 640, + Time: 63.9, Weight: 0.000039, }, { - ID: 641, - Time: 64, + ID: 641, + Time: 64, Weight: 0.000038, }, { - ID: 642, - Time: 64.1, + ID: 642, + Time: 64.1, Weight: 0.000038, }, { - ID: 643, - Time: 64.2, + ID: 643, + Time: 64.2, Weight: 0.000038, }, { - ID: 644, - Time: 64.3, + ID: 644, + Time: 64.3, Weight: 0.000038, }, { - ID: 645, - Time: 64.4, + ID: 645, + Time: 64.4, Weight: 0.000037, }, { - ID: 646, - Time: 64.5, + ID: 646, + Time: 64.5, Weight: 0.000037, }, { - ID: 647, - Time: 64.6, + ID: 647, + Time: 64.6, Weight: 0.000037, }, { - ID: 648, - Time: 64.7, + ID: 648, + Time: 64.7, Weight: 0.000036, }, { - ID: 649, - Time: 64.8, + ID: 649, + Time: 64.8, Weight: 0.000036, }, { - ID: 650, - Time: 64.9, + ID: 650, + Time: 64.9, Weight: 0.000036, }, { - ID: 651, - Time: 65, + ID: 651, + Time: 65, Weight: 0.000035, }, { - ID: 652, - Time: 65.1, + ID: 652, + Time: 65.1, Weight: 0.000035, }, { - ID: 653, - Time: 65.2, + ID: 653, + Time: 65.2, Weight: 0.000035, }, { - ID: 654, - Time: 65.3, + ID: 654, + Time: 65.3, Weight: 0.000035, }, { - ID: 655, - Time: 65.4, + ID: 655, + Time: 65.4, Weight: 0.000034, }, { - ID: 656, - Time: 65.5, + ID: 656, + Time: 65.5, Weight: 0.000034, }, { - ID: 657, - Time: 65.6, + ID: 657, + Time: 65.6, Weight: 0.000034, }, { - ID: 658, - Time: 65.7, + ID: 658, + Time: 65.7, Weight: 0.000033, }, { - ID: 659, - Time: 65.8, + ID: 659, + Time: 65.8, Weight: 0.000033, }, { - ID: 660, - Time: 65.9, + ID: 660, + Time: 65.9, Weight: 0.000033, }, { - ID: 661, - Time: 66, + ID: 661, + Time: 66, Weight: 0.000033, }, { - ID: 662, - Time: 66.1, + ID: 662, + Time: 66.1, Weight: 0.000032, }, { - ID: 663, - Time: 66.2, + ID: 663, + Time: 66.2, Weight: 0.000032, }, { - ID: 664, - Time: 66.3, + ID: 664, + Time: 66.3, Weight: 0.000032, }, { - ID: 665, - Time: 66.4, + ID: 665, + Time: 66.4, Weight: 0.000032, }, { - ID: 666, - Time: 66.5, + ID: 666, + Time: 66.5, Weight: 0.000031, }, { - ID: 667, - Time: 66.6, + ID: 667, + Time: 66.6, Weight: 0.000031, }, { - ID: 668, - Time: 66.7, + ID: 668, + Time: 66.7, Weight: 0.000031, }, { - ID: 669, - Time: 66.8, + ID: 669, + Time: 66.8, Weight: 0.00003, }, { - ID: 670, - Time: 66.9, + ID: 670, + Time: 66.9, Weight: 0.00003, }, { - ID: 671, - Time: 67, + ID: 671, + Time: 67, Weight: 0.00003, }, { - ID: 672, - Time: 67.1, + ID: 672, + Time: 67.1, Weight: 0.00003, }, { - ID: 673, - Time: 67.2, + ID: 673, + Time: 67.2, Weight: 0.000029, }, { - ID: 674, - Time: 67.3, + ID: 674, + Time: 67.3, Weight: 0.000029, }, { - ID: 675, - Time: 67.4, + ID: 675, + Time: 67.4, Weight: 0.000029, }, { - ID: 676, - Time: 67.5, + ID: 676, + Time: 67.5, Weight: 0.000029, }, { - ID: 677, - Time: 67.6, + ID: 677, + Time: 67.6, Weight: 0.000029, }, { - ID: 678, - Time: 67.7, + ID: 678, + Time: 67.7, Weight: 0.000028, }, { - ID: 679, - Time: 67.8, + ID: 679, + Time: 67.8, Weight: 0.000028, }, { - ID: 680, - Time: 67.9, + ID: 680, + Time: 67.9, Weight: 0.000028, }, { - ID: 681, - Time: 68, + ID: 681, + Time: 68, Weight: 0.000028, }, { - ID: 682, - Time: 68.1, + ID: 682, + Time: 68.1, Weight: 0.000027, }, { - ID: 683, - Time: 68.2, + ID: 683, + Time: 68.2, Weight: 0.000027, }, { - ID: 684, - Time: 68.3, + ID: 684, + Time: 68.3, Weight: 0.000027, }, { - ID: 685, - Time: 68.4, + ID: 685, + Time: 68.4, Weight: 0.000027, }, { - ID: 686, - Time: 68.5, + ID: 686, + Time: 68.5, Weight: 0.000026, }, { - ID: 687, - Time: 68.6, + ID: 687, + Time: 68.6, Weight: 0.000026, }, { - ID: 688, - Time: 68.7, + ID: 688, + Time: 68.7, Weight: 0.000026, }, { - ID: 689, - Time: 68.8, + ID: 689, + Time: 68.8, Weight: 0.000026, }, { - ID: 690, - Time: 68.9, + ID: 690, + Time: 68.9, Weight: 0.000026, }, { - ID: 691, - Time: 69, + ID: 691, + Time: 69, Weight: 0.000025, }, { - ID: 692, - Time: 69.1, + ID: 692, + Time: 69.1, Weight: 0.000025, }, { - ID: 693, - Time: 69.2, + ID: 693, + Time: 69.2, Weight: 0.000025, }, { - ID: 694, - Time: 69.3, + ID: 694, + Time: 69.3, Weight: 0.000025, }, { - ID: 695, - Time: 69.4, + ID: 695, + Time: 69.4, Weight: 0.000025, }, { - ID: 696, - Time: 69.5, + ID: 696, + Time: 69.5, Weight: 0.000024, }, { - ID: 697, - Time: 69.6, + ID: 697, + Time: 69.6, Weight: 0.000024, }, { - ID: 698, - Time: 69.7, + ID: 698, + Time: 69.7, Weight: 0.000024, }, { - ID: 699, - Time: 69.8, + ID: 699, + Time: 69.8, Weight: 0.000024, }, { - ID: 700, - Time: 69.9, + ID: 700, + Time: 69.9, Weight: 0.000024, }, { - ID: 701, - Time: 70, + ID: 701, + Time: 70, Weight: 0.000023, }, { - ID: 702, - Time: 70.1, + ID: 702, + Time: 70.1, Weight: 0.000023, }, { - ID: 703, - Time: 70.2, + ID: 703, + Time: 70.2, Weight: 0.000023, }, { - ID: 704, - Time: 70.3, + ID: 704, + Time: 70.3, Weight: 0.000023, }, { - ID: 705, - Time: 70.4, + ID: 705, + Time: 70.4, Weight: 0.000023, }, { - ID: 706, - Time: 70.5, + ID: 706, + Time: 70.5, Weight: 0.000022, }, { - ID: 707, - Time: 70.6, + ID: 707, + Time: 70.6, Weight: 0.000022, }, { - ID: 708, - Time: 70.7, + ID: 708, + Time: 70.7, Weight: 0.000022, }, { - ID: 709, - Time: 70.8, + ID: 709, + Time: 70.8, Weight: 0.000022, }, { - ID: 710, - Time: 70.9, + ID: 710, + Time: 70.9, Weight: 0.000022, }, { - ID: 711, - Time: 71, + ID: 711, + Time: 71, Weight: 0.000021, }, { - ID: 712, - Time: 71.1, + ID: 712, + Time: 71.1, Weight: 0.000021, }, { - ID: 713, - Time: 71.2, + ID: 713, + Time: 71.2, Weight: 0.000021, }, { - ID: 714, - Time: 71.3, + ID: 714, + Time: 71.3, Weight: 0.000021, }, { - ID: 715, - Time: 71.4, + ID: 715, + Time: 71.4, Weight: 0.000021, }, { - ID: 716, - Time: 71.5, + ID: 716, + Time: 71.5, Weight: 0.000021, }, { - ID: 717, - Time: 71.6, + ID: 717, + Time: 71.6, Weight: 0.00002, }, { - ID: 718, - Time: 71.7, + ID: 718, + Time: 71.7, Weight: 0.00002, }, { - ID: 719, - Time: 71.8, + ID: 719, + Time: 71.8, Weight: 0.00002, }, { - ID: 720, - Time: 71.9, + ID: 720, + Time: 71.9, Weight: 0.00002, }, { - ID: 721, - Time: 72, + ID: 721, + Time: 72, Weight: 0.00002, }, { - ID: 722, - Time: 72.1, + ID: 722, + Time: 72.1, Weight: 0.00002, }, { - ID: 723, - Time: 72.2, + ID: 723, + Time: 72.2, Weight: 0.000019, }, { - ID: 724, - Time: 72.3, + ID: 724, + Time: 72.3, Weight: 0.000019, }, { - ID: 725, - Time: 72.4, + ID: 725, + Time: 72.4, Weight: 0.000019, }, { - ID: 726, - Time: 72.5, + ID: 726, + Time: 72.5, Weight: 0.000019, }, { - ID: 727, - Time: 72.6, + ID: 727, + Time: 72.6, Weight: 0.000019, }, { - ID: 728, - Time: 72.7, + ID: 728, + Time: 72.7, Weight: 0.000019, }, { - ID: 729, - Time: 72.8, + ID: 729, + Time: 72.8, Weight: 0.000018, }, { - ID: 730, - Time: 72.9, + ID: 730, + Time: 72.9, Weight: 0.000018, }, { - ID: 731, - Time: 73, + ID: 731, + Time: 73, Weight: 0.000018, }, { - ID: 732, - Time: 73.1, + ID: 732, + Time: 73.1, Weight: 0.000018, }, { - ID: 733, - Time: 73.2, + ID: 733, + Time: 73.2, Weight: 0.000018, }, { - ID: 734, - Time: 73.3, + ID: 734, + Time: 73.3, Weight: 0.000018, }, { - ID: 735, - Time: 73.4, + ID: 735, + Time: 73.4, Weight: 0.000018, }, { - ID: 736, - Time: 73.5, + ID: 736, + Time: 73.5, Weight: 0.000017, }, { - ID: 737, - Time: 73.6, + ID: 737, + Time: 73.6, Weight: 0.000017, }, { - ID: 738, - Time: 73.7, + ID: 738, + Time: 73.7, Weight: 0.000017, }, { - ID: 739, - Time: 73.8, + ID: 739, + Time: 73.8, Weight: 0.000017, }, { - ID: 740, - Time: 73.9, + ID: 740, + Time: 73.9, Weight: 0.000017, }, { - ID: 741, - Time: 74, + ID: 741, + Time: 74, Weight: 0.000017, }, { - ID: 742, - Time: 74.1, + ID: 742, + Time: 74.1, Weight: 0.000017, }, { - ID: 743, - Time: 74.2, + ID: 743, + Time: 74.2, Weight: 0.000016, }, { - ID: 744, - Time: 74.3, + ID: 744, + Time: 74.3, Weight: 0.000016, }, { - ID: 745, - Time: 74.4, + ID: 745, + Time: 74.4, Weight: 0.000016, }, { - ID: 746, - Time: 74.5, + ID: 746, + Time: 74.5, Weight: 0.000016, }, { - ID: 747, - Time: 74.6, + ID: 747, + Time: 74.6, Weight: 0.000016, }, { - ID: 748, - Time: 74.7, + ID: 748, + Time: 74.7, Weight: 0.000016, }, { - ID: 749, - Time: 74.8, + ID: 749, + Time: 74.8, Weight: 0.000016, }, { - ID: 750, - Time: 74.9, + ID: 750, + Time: 74.9, Weight: 0.000016, }, { - ID: 751, - Time: 75, + ID: 751, + Time: 75, Weight: 0.000015, }, { - ID: 752, - Time: 75.1, + ID: 752, + Time: 75.1, Weight: 0.000015, }, { - ID: 753, - Time: 75.2, + ID: 753, + Time: 75.2, Weight: 0.000015, }, { - ID: 754, - Time: 75.3, + ID: 754, + Time: 75.3, Weight: 0.000015, }, { - ID: 755, - Time: 75.4, + ID: 755, + Time: 75.4, Weight: 0.000015, }, { - ID: 756, - Time: 75.5, + ID: 756, + Time: 75.5, Weight: 0.000015, }, { - ID: 757, - Time: 75.6, + ID: 757, + Time: 75.6, Weight: 0.000015, }, { - ID: 758, - Time: 75.7, + ID: 758, + Time: 75.7, Weight: 0.000015, }, { - ID: 759, - Time: 75.8, + ID: 759, + Time: 75.8, Weight: 0.000014, }, { - ID: 760, - Time: 75.9, + ID: 760, + Time: 75.9, Weight: 0.000014, }, { - ID: 761, - Time: 76, + ID: 761, + Time: 76, Weight: 0.000014, }, { - ID: 762, - Time: 76.1, + ID: 762, + Time: 76.1, Weight: 0.000014, }, { - ID: 763, - Time: 76.2, + ID: 763, + Time: 76.2, Weight: 0.000014, }, { - ID: 764, - Time: 76.3, + ID: 764, + Time: 76.3, Weight: 0.000014, }, { - ID: 765, - Time: 76.4, + ID: 765, + Time: 76.4, Weight: 0.000014, }, { - ID: 766, - Time: 76.5, + ID: 766, + Time: 76.5, Weight: 0.000014, }, { - ID: 767, - Time: 76.6, + ID: 767, + Time: 76.6, Weight: 0.000013, }, { - ID: 768, - Time: 76.7, + ID: 768, + Time: 76.7, Weight: 0.000013, }, { - ID: 769, - Time: 76.8, + ID: 769, + Time: 76.8, Weight: 0.000013, }, { - ID: 770, - Time: 76.9, + ID: 770, + Time: 76.9, Weight: 0.000013, }, { - ID: 771, - Time: 77, + ID: 771, + Time: 77, Weight: 0.000013, }, { - ID: 772, - Time: 77.1, + ID: 772, + Time: 77.1, Weight: 0.000013, }, { - ID: 773, - Time: 77.2, + ID: 773, + Time: 77.2, Weight: 0.000013, }, { - ID: 774, - Time: 77.3, + ID: 774, + Time: 77.3, Weight: 0.000013, }, { - ID: 775, - Time: 77.4, + ID: 775, + Time: 77.4, Weight: 0.000013, }, { - ID: 776, - Time: 77.5, + ID: 776, + Time: 77.5, Weight: 0.000012, }, { - ID: 777, - Time: 77.6, + ID: 777, + Time: 77.6, Weight: 0.000012, }, { - ID: 778, - Time: 77.7, + ID: 778, + Time: 77.7, Weight: 0.000012, }, { - ID: 779, - Time: 77.8, + ID: 779, + Time: 77.8, Weight: 0.000012, }, { - ID: 780, - Time: 77.9, + ID: 780, + Time: 77.9, Weight: 0.000012, }, { - ID: 781, - Time: 78, + ID: 781, + Time: 78, Weight: 0.000012, }, { - ID: 782, - Time: 78.1, + ID: 782, + Time: 78.1, Weight: 0.000012, }, { - ID: 783, - Time: 78.2, + ID: 783, + Time: 78.2, Weight: 0.000012, }, { - ID: 784, - Time: 78.3, + ID: 784, + Time: 78.3, Weight: 0.000012, }, { - ID: 785, - Time: 78.4, + ID: 785, + Time: 78.4, Weight: 0.000012, }, { - ID: 786, - Time: 78.5, + ID: 786, + Time: 78.5, Weight: 0.000011, }, { - ID: 787, - Time: 78.6, + ID: 787, + Time: 78.6, Weight: 0.000011, }, { - ID: 788, - Time: 78.7, + ID: 788, + Time: 78.7, Weight: 0.000011, }, { - ID: 789, - Time: 78.8, + ID: 789, + Time: 78.8, Weight: 0.000011, }, { - ID: 790, - Time: 78.9, + ID: 790, + Time: 78.9, Weight: 0.000011, }, { - ID: 791, - Time: 79, + ID: 791, + Time: 79, Weight: 0.000011, }, { - ID: 792, - Time: 79.1, + ID: 792, + Time: 79.1, Weight: 0.000011, }, { - ID: 793, - Time: 79.2, + ID: 793, + Time: 79.2, Weight: 0.000011, }, { - ID: 794, - Time: 79.3, + ID: 794, + Time: 79.3, Weight: 0.000011, }, { - ID: 795, - Time: 79.4, + ID: 795, + Time: 79.4, Weight: 0.000011, }, { - ID: 796, - Time: 79.5, + ID: 796, + Time: 79.5, Weight: 0.000011, }, { - ID: 797, - Time: 79.6, + ID: 797, + Time: 79.6, Weight: 0.00001, }, { - ID: 798, - Time: 79.7, + ID: 798, + Time: 79.7, Weight: 0.00001, }, { - ID: 799, - Time: 79.8, + ID: 799, + Time: 79.8, Weight: 0.00001, }, { - ID: 800, - Time: 79.9, + ID: 800, + Time: 79.9, Weight: 0.00001, }, { - ID: 801, - Time: 80, + ID: 801, + Time: 80, Weight: 0.00001, }, { - ID: 802, - Time: 80.1, + ID: 802, + Time: 80.1, Weight: 0.00001, }, { - ID: 803, - Time: 80.2, + ID: 803, + Time: 80.2, Weight: 0.00001, }, { - ID: 804, - Time: 80.3, + ID: 804, + Time: 80.3, Weight: 0.00001, }, { - ID: 805, - Time: 80.4, + ID: 805, + Time: 80.4, Weight: 0.00001, }, { - ID: 806, - Time: 80.5, + ID: 806, + Time: 80.5, Weight: 0.00001, }, { - ID: 807, - Time: 80.6, + ID: 807, + Time: 80.6, Weight: 0.00001, }, { - ID: 808, - Time: 80.7, + ID: 808, + Time: 80.7, Weight: 0.00001, }, { - ID: 809, - Time: 80.8, + ID: 809, + Time: 80.8, Weight: 0.000009, }, { - ID: 810, - Time: 80.9, + ID: 810, + Time: 80.9, Weight: 0.000009, }, { - ID: 811, - Time: 81, + ID: 811, + Time: 81, Weight: 0.000009, }, { - ID: 812, - Time: 81.1, + ID: 812, + Time: 81.1, Weight: 0.000009, }, { - ID: 813, - Time: 81.2, + ID: 813, + Time: 81.2, Weight: 0.000009, }, { - ID: 814, - Time: 81.3, + ID: 814, + Time: 81.3, Weight: 0.000009, }, { - ID: 815, - Time: 81.4, + ID: 815, + Time: 81.4, Weight: 0.000009, }, { - ID: 816, - Time: 81.5, + ID: 816, + Time: 81.5, Weight: 0.000009, }, { - ID: 817, - Time: 81.6, + ID: 817, + Time: 81.6, Weight: 0.000009, }, { - ID: 818, - Time: 81.7, + ID: 818, + Time: 81.7, Weight: 0.000009, }, { - ID: 819, - Time: 81.8, + ID: 819, + Time: 81.8, Weight: 0.000009, }, { - ID: 820, - Time: 81.9, + ID: 820, + Time: 81.9, Weight: 0.000009, }, { - ID: 821, - Time: 82, + ID: 821, + Time: 82, Weight: 0.000009, }, { - ID: 822, - Time: 82.1, + ID: 822, + Time: 82.1, Weight: 0.000009, }, { - ID: 823, - Time: 82.2, + ID: 823, + Time: 82.2, Weight: 0.000008, }, { - ID: 824, - Time: 82.3, + ID: 824, + Time: 82.3, Weight: 0.000008, }, { - ID: 825, - Time: 82.4, + ID: 825, + Time: 82.4, Weight: 0.000008, }, { - ID: 826, - Time: 82.5, + ID: 826, + Time: 82.5, Weight: 0.000008, }, { - ID: 827, - Time: 82.6, + ID: 827, + Time: 82.6, Weight: 0.000008, }, { - ID: 828, - Time: 82.7, + ID: 828, + Time: 82.7, Weight: 0.000008, }, { - ID: 829, - Time: 82.8, + ID: 829, + Time: 82.8, Weight: 0.000008, }, { - ID: 830, - Time: 82.9, + ID: 830, + Time: 82.9, Weight: 0.000008, }, { - ID: 831, - Time: 83, + ID: 831, + Time: 83, Weight: 0.000008, }, { - ID: 832, - Time: 83.1, + ID: 832, + Time: 83.1, Weight: 0.000008, }, { - ID: 833, - Time: 83.2, + ID: 833, + Time: 83.2, Weight: 0.000008, }, { - ID: 834, - Time: 83.3, + ID: 834, + Time: 83.3, Weight: 0.000008, }, { - ID: 835, - Time: 83.4, + ID: 835, + Time: 83.4, Weight: 0.000008, }, { - ID: 836, - Time: 83.5, + ID: 836, + Time: 83.5, Weight: 0.000008, }, { - ID: 837, - Time: 83.6, + ID: 837, + Time: 83.6, Weight: 0.000008, }, { - ID: 838, - Time: 83.7, + ID: 838, + Time: 83.7, Weight: 0.000007, }, { - ID: 839, - Time: 83.8, + ID: 839, + Time: 83.8, Weight: 0.000007, }, { - ID: 840, - Time: 83.9, + ID: 840, + Time: 83.9, Weight: 0.000007, }, { - ID: 841, - Time: 84, + ID: 841, + Time: 84, Weight: 0.000007, }, { - ID: 842, - Time: 84.1, + ID: 842, + Time: 84.1, Weight: 0.000007, }, { - ID: 843, - Time: 84.2, + ID: 843, + Time: 84.2, Weight: 0.000007, }, { - ID: 844, - Time: 84.3, + ID: 844, + Time: 84.3, Weight: 0.000007, }, { - ID: 845, - Time: 84.4, + ID: 845, + Time: 84.4, Weight: 0.000007, }, { - ID: 846, - Time: 84.5, + ID: 846, + Time: 84.5, Weight: 0.000007, }, { - ID: 847, - Time: 84.6, + ID: 847, + Time: 84.6, Weight: 0.000007, }, { - ID: 848, - Time: 84.7, + ID: 848, + Time: 84.7, Weight: 0.000007, }, { - ID: 849, - Time: 84.8, + ID: 849, + Time: 84.8, Weight: 0.000007, }, { - ID: 850, - Time: 84.9, + ID: 850, + Time: 84.9, Weight: 0.000007, }, { - ID: 851, - Time: 85, + ID: 851, + Time: 85, Weight: 0.000007, }, { - ID: 852, - Time: 85.1, + ID: 852, + Time: 85.1, Weight: 0.000007, }, { - ID: 853, - Time: 85.2, + ID: 853, + Time: 85.2, Weight: 0.000007, }, { - ID: 854, - Time: 85.3, + ID: 854, + Time: 85.3, Weight: 0.000007, }, { - ID: 855, - Time: 85.4, + ID: 855, + Time: 85.4, Weight: 0.000006, }, { - ID: 856, - Time: 85.5, + ID: 856, + Time: 85.5, Weight: 0.000006, }, { - ID: 857, - Time: 85.6, + ID: 857, + Time: 85.6, Weight: 0.000006, }, { - ID: 858, - Time: 85.7, + ID: 858, + Time: 85.7, Weight: 0.000006, }, { - ID: 859, - Time: 85.8, + ID: 859, + Time: 85.8, Weight: 0.000006, }, { - ID: 860, - Time: 85.9, + ID: 860, + Time: 85.9, Weight: 0.000006, }, { - ID: 861, - Time: 86, + ID: 861, + Time: 86, Weight: 0.000006, }, { - ID: 862, - Time: 86.1, + ID: 862, + Time: 86.1, Weight: 0.000006, }, { - ID: 863, - Time: 86.2, + ID: 863, + Time: 86.2, Weight: 0.000006, }, { - ID: 864, - Time: 86.3, + ID: 864, + Time: 86.3, Weight: 0.000006, }, { - ID: 865, - Time: 86.4, + ID: 865, + Time: 86.4, Weight: 0.000006, }, { - ID: 866, - Time: 86.5, + ID: 866, + Time: 86.5, Weight: 0.000006, }, { - ID: 867, - Time: 86.6, + ID: 867, + Time: 86.6, Weight: 0.000006, }, { - ID: 868, - Time: 86.7, + ID: 868, + Time: 86.7, Weight: 0.000006, }, { - ID: 869, - Time: 86.8, + ID: 869, + Time: 86.8, Weight: 0.000006, }, { - ID: 870, - Time: 86.9, + ID: 870, + Time: 86.9, Weight: 0.000006, }, { - ID: 871, - Time: 87, + ID: 871, + Time: 87, Weight: 0.000006, }, { - ID: 872, - Time: 87.1, + ID: 872, + Time: 87.1, Weight: 0.000006, }, { - ID: 873, - Time: 87.2, + ID: 873, + Time: 87.2, Weight: 0.000006, }, { - ID: 874, - Time: 87.3, + ID: 874, + Time: 87.3, Weight: 0.000006, }, { - ID: 875, - Time: 87.4, + ID: 875, + Time: 87.4, Weight: 0.000005, }, { - ID: 876, - Time: 87.5, + ID: 876, + Time: 87.5, Weight: 0.000005, }, { - ID: 877, - Time: 87.6, + ID: 877, + Time: 87.6, Weight: 0.000005, }, { - ID: 878, - Time: 87.7, + ID: 878, + Time: 87.7, Weight: 0.000005, }, { - ID: 879, - Time: 87.8, + ID: 879, + Time: 87.8, Weight: 0.000005, }, { - ID: 880, - Time: 87.9, + ID: 880, + Time: 87.9, Weight: 0.000005, }, { - ID: 881, - Time: 88, + ID: 881, + Time: 88, Weight: 0.000005, }, { - ID: 882, - Time: 88.1, + ID: 882, + Time: 88.1, Weight: 0.000005, }, { - ID: 883, - Time: 88.2, + ID: 883, + Time: 88.2, Weight: 0.000005, }, { - ID: 884, - Time: 88.3, + ID: 884, + Time: 88.3, Weight: 0.000005, }, { - ID: 885, - Time: 88.4, + ID: 885, + Time: 88.4, Weight: 0.000005, }, { - ID: 886, - Time: 88.5, + ID: 886, + Time: 88.5, Weight: 0.000005, }, { - ID: 887, - Time: 88.6, + ID: 887, + Time: 88.6, Weight: 0.000005, }, { - ID: 888, - Time: 88.7, + ID: 888, + Time: 88.7, Weight: 0.000005, }, { - ID: 889, - Time: 88.8, + ID: 889, + Time: 88.8, Weight: 0.000005, }, { - ID: 890, - Time: 88.9, + ID: 890, + Time: 88.9, Weight: 0.000005, }, { - ID: 891, - Time: 89, + ID: 891, + Time: 89, Weight: 0.000005, }, { - ID: 892, - Time: 89.1, + ID: 892, + Time: 89.1, Weight: 0.000005, }, { - ID: 893, - Time: 89.2, + ID: 893, + Time: 89.2, Weight: 0.000005, }, { - ID: 894, - Time: 89.3, + ID: 894, + Time: 89.3, Weight: 0.000005, }, { - ID: 895, - Time: 89.4, + ID: 895, + Time: 89.4, Weight: 0.000005, }, { - ID: 896, - Time: 89.5, + ID: 896, + Time: 89.5, Weight: 0.000005, }, { - ID: 897, - Time: 89.6, + ID: 897, + Time: 89.6, Weight: 0.000005, }, { - ID: 898, - Time: 89.7, + ID: 898, + Time: 89.7, Weight: 0.000005, }, { - ID: 899, - Time: 89.8, + ID: 899, + Time: 89.8, Weight: 0.000004, }, { - ID: 900, - Time: 89.9, + ID: 900, + Time: 89.9, Weight: 0.000004, }, { - ID: 901, - Time: 90, + ID: 901, + Time: 90, Weight: 0.000004, }, { - ID: 902, - Time: 90.1, + ID: 902, + Time: 90.1, Weight: 0.000004, }, { - ID: 903, - Time: 90.2, + ID: 903, + Time: 90.2, Weight: 0.000004, }, { - ID: 904, - Time: 90.3, + ID: 904, + Time: 90.3, Weight: 0.000004, }, { - ID: 905, - Time: 90.4, + ID: 905, + Time: 90.4, Weight: 0.000004, }, { - ID: 906, - Time: 90.5, + ID: 906, + Time: 90.5, Weight: 0.000004, }, { - ID: 907, - Time: 90.6, + ID: 907, + Time: 90.6, Weight: 0.000004, }, { - ID: 908, - Time: 90.7, + ID: 908, + Time: 90.7, Weight: 0.000004, }, { - ID: 909, - Time: 90.8, + ID: 909, + Time: 90.8, Weight: 0.000004, }, { - ID: 910, - Time: 90.9, + ID: 910, + Time: 90.9, Weight: 0.000004, }, { - ID: 911, - Time: 91, + ID: 911, + Time: 91, Weight: 0.000004, }, { - ID: 912, - Time: 91.1, + ID: 912, + Time: 91.1, Weight: 0.000004, }, { - ID: 913, - Time: 91.2, + ID: 913, + Time: 91.2, Weight: 0.000004, }, { - ID: 914, - Time: 91.3, + ID: 914, + Time: 91.3, Weight: 0.000004, }, { - ID: 915, - Time: 91.4, + ID: 915, + Time: 91.4, Weight: 0.000004, }, { - ID: 916, - Time: 91.5, + ID: 916, + Time: 91.5, Weight: 0.000004, }, { - ID: 917, - Time: 91.6, + ID: 917, + Time: 91.6, Weight: 0.000004, }, { - ID: 918, - Time: 91.7, + ID: 918, + Time: 91.7, Weight: 0.000004, }, { - ID: 919, - Time: 91.8, + ID: 919, + Time: 91.8, Weight: 0.000004, }, { - ID: 920, - Time: 91.9, + ID: 920, + Time: 91.9, Weight: 0.000004, }, { - ID: 921, - Time: 92, + ID: 921, + Time: 92, Weight: 0.000004, }, { - ID: 922, - Time: 92.1, + ID: 922, + Time: 92.1, Weight: 0.000004, }, { - ID: 923, - Time: 92.2, + ID: 923, + Time: 92.2, Weight: 0.000004, }, { - ID: 924, - Time: 92.3, + ID: 924, + Time: 92.3, Weight: 0.000004, }, { - ID: 925, - Time: 92.4, + ID: 925, + Time: 92.4, Weight: 0.000004, }, { - ID: 926, - Time: 92.5, + ID: 926, + Time: 92.5, Weight: 0.000004, }, { - ID: 927, - Time: 92.6, + ID: 927, + Time: 92.6, Weight: 0.000004, }, { - ID: 928, - Time: 92.7, + ID: 928, + Time: 92.7, Weight: 0.000004, }, { - ID: 929, - Time: 92.8, + ID: 929, + Time: 92.8, Weight: 0.000003, }, { - ID: 930, - Time: 92.9, + ID: 930, + Time: 92.9, Weight: 0.000003, }, { - ID: 931, - Time: 93, + ID: 931, + Time: 93, Weight: 0.000003, }, { - ID: 932, - Time: 93.1, + ID: 932, + Time: 93.1, Weight: 0.000003, }, { - ID: 933, - Time: 93.2, + ID: 933, + Time: 93.2, Weight: 0.000003, }, { - ID: 934, - Time: 93.3, + ID: 934, + Time: 93.3, Weight: 0.000003, }, { - ID: 935, - Time: 93.4, + ID: 935, + Time: 93.4, Weight: 0.000003, }, { - ID: 936, - Time: 93.5, + ID: 936, + Time: 93.5, Weight: 0.000003, }, { - ID: 937, - Time: 93.6, + ID: 937, + Time: 93.6, Weight: 0.000003, }, { - ID: 938, - Time: 93.7, + ID: 938, + Time: 93.7, Weight: 0.000003, }, { - ID: 939, - Time: 93.8, + ID: 939, + Time: 93.8, Weight: 0.000003, }, { - ID: 940, - Time: 93.9, + ID: 940, + Time: 93.9, Weight: 0.000003, }, { - ID: 941, - Time: 94, + ID: 941, + Time: 94, Weight: 0.000003, }, { - ID: 942, - Time: 94.1, + ID: 942, + Time: 94.1, Weight: 0.000003, }, { - ID: 943, - Time: 94.2, + ID: 943, + Time: 94.2, Weight: 0.000003, }, { - ID: 944, - Time: 94.3, + ID: 944, + Time: 94.3, Weight: 0.000003, }, { - ID: 945, - Time: 94.4, + ID: 945, + Time: 94.4, Weight: 0.000003, }, { - ID: 946, - Time: 94.5, + ID: 946, + Time: 94.5, Weight: 0.000003, }, { - ID: 947, - Time: 94.6, + ID: 947, + Time: 94.6, Weight: 0.000003, }, { - ID: 948, - Time: 94.7, + ID: 948, + Time: 94.7, Weight: 0.000003, }, { - ID: 949, - Time: 94.8, + ID: 949, + Time: 94.8, Weight: 0.000003, }, { - ID: 950, - Time: 94.9, + ID: 950, + Time: 94.9, Weight: 0.000003, }, { - ID: 951, - Time: 95, + ID: 951, + Time: 95, Weight: 0.000003, }, { - ID: 952, - Time: 95.1, + ID: 952, + Time: 95.1, Weight: 0.000003, }, { - ID: 953, - Time: 95.2, + ID: 953, + Time: 95.2, Weight: 0.000003, }, { - ID: 954, - Time: 95.3, + ID: 954, + Time: 95.3, Weight: 0.000003, }, { - ID: 955, - Time: 95.4, + ID: 955, + Time: 95.4, Weight: 0.000003, }, { - ID: 956, - Time: 95.5, + ID: 956, + Time: 95.5, Weight: 0.000003, }, { - ID: 957, - Time: 95.6, + ID: 957, + Time: 95.6, Weight: 0.000003, }, { - ID: 958, - Time: 95.7, + ID: 958, + Time: 95.7, Weight: 0.000003, }, { - ID: 959, - Time: 95.8, + ID: 959, + Time: 95.8, Weight: 0.000003, }, { - ID: 960, - Time: 95.9, + ID: 960, + Time: 95.9, Weight: 0.000003, }, { - ID: 961, - Time: 96, + ID: 961, + Time: 96, Weight: 0.000003, }, { - ID: 962, - Time: 96.1, + ID: 962, + Time: 96.1, Weight: 0.000003, }, { - ID: 963, - Time: 96.2, + ID: 963, + Time: 96.2, Weight: 0.000003, }, { - ID: 964, - Time: 96.3, + ID: 964, + Time: 96.3, Weight: 0.000003, }, { - ID: 965, - Time: 96.4, + ID: 965, + Time: 96.4, Weight: 0.000003, }, { - ID: 966, - Time: 96.5, + ID: 966, + Time: 96.5, Weight: 0.000003, }, { - ID: 967, - Time: 96.6, + ID: 967, + Time: 96.6, Weight: 0.000003, }, { - ID: 968, - Time: 96.7, + ID: 968, + Time: 96.7, Weight: 0.000003, }, { - ID: 969, - Time: 96.8, + ID: 969, + Time: 96.8, Weight: 0.000002, }, { - ID: 970, - Time: 96.9, + ID: 970, + Time: 96.9, Weight: 0.000002, }, { - ID: 971, - Time: 97, + ID: 971, + Time: 97, Weight: 0.000002, }, { - ID: 972, - Time: 97.1, + ID: 972, + Time: 97.1, Weight: 0.000002, }, { - ID: 973, - Time: 97.2, + ID: 973, + Time: 97.2, Weight: 0.000002, }, { - ID: 974, - Time: 97.3, + ID: 974, + Time: 97.3, Weight: 0.000002, }, { - ID: 975, - Time: 97.4, + ID: 975, + Time: 97.4, Weight: 0.000002, }, { - ID: 976, - Time: 97.5, + ID: 976, + Time: 97.5, Weight: 0.000002, }, { - ID: 977, - Time: 97.6, + ID: 977, + Time: 97.6, Weight: 0.000002, }, { - ID: 978, - Time: 97.7, + ID: 978, + Time: 97.7, Weight: 0.000002, }, { - ID: 979, - Time: 97.8, + ID: 979, + Time: 97.8, Weight: 0.000002, }, { - ID: 980, - Time: 97.9, + ID: 980, + Time: 97.9, Weight: 0.000002, }, { - ID: 981, - Time: 98, + ID: 981, + Time: 98, Weight: 0.000002, }, { - ID: 982, - Time: 98.1, + ID: 982, + Time: 98.1, Weight: 0.000002, }, { - ID: 983, - Time: 98.2, + ID: 983, + Time: 98.2, Weight: 0.000002, }, { - ID: 984, - Time: 98.3, + ID: 984, + Time: 98.3, Weight: 0.000002, }, { - ID: 985, - Time: 98.4, + ID: 985, + Time: 98.4, Weight: 0.000002, }, { - ID: 986, - Time: 98.5, + ID: 986, + Time: 98.5, Weight: 0.000002, }, { - ID: 987, - Time: 98.6, + ID: 987, + Time: 98.6, Weight: 0.000002, }, { - ID: 988, - Time: 98.7, + ID: 988, + Time: 98.7, Weight: 0.000002, }, { - ID: 989, - Time: 98.8, + ID: 989, + Time: 98.8, Weight: 0.000002, }, { - ID: 990, - Time: 98.9, + ID: 990, + Time: 98.9, Weight: 0.000002, }, { - ID: 991, - Time: 99, + ID: 991, + Time: 99, Weight: 0.000002, }, { - ID: 992, - Time: 99.1, + ID: 992, + Time: 99.1, Weight: 0.000002, }, { - ID: 993, - Time: 99.2, + ID: 993, + Time: 99.2, Weight: 0.000002, }, { - ID: 994, - Time: 99.3, + ID: 994, + Time: 99.3, Weight: 0.000002, }, { - ID: 995, - Time: 99.4, + ID: 995, + Time: 99.4, Weight: 0.000002, }, { - ID: 996, - Time: 99.5, + ID: 996, + Time: 99.5, Weight: 0.000002, }, { - ID: 997, - Time: 99.6, + ID: 997, + Time: 99.6, Weight: 0.000002, }, { - ID: 998, - Time: 99.7, + ID: 998, + Time: 99.7, Weight: 0.000002, }, { - ID: 999, - Time: 99.8, + ID: 999, + Time: 99.8, Weight: 0.000002, }, { - ID: 1000, - Time: 99.9, + ID: 1000, + Time: 99.9, Weight: 0.000002, }, { - ID: 1001, - Time: 100, + ID: 1001, + Time: 100, Weight: 0.00023, }, } @@ -5243,13 +5243,13 @@ func init() { TestSymbol = map[int64]*structs.TestSymbol{ 1: { - ID: 1, - Name: "xx", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 0}, + ID: 1, + Name: "xx", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 0}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, } @@ -5259,4 +5259,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/var.go b/gamesrv/slotspkg/internal/exported/excel2go/base/var.go index a846c37..9e1fb21 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/var.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/var.go @@ -4,223 +4,263 @@ package base import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" var ( - CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{} - CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{} - CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{} - CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} - CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} - CashManiaFormation = []*structs.CashManiaFormation{} - CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{} - CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} - CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} - CashManiaOthers = []*structs.CashManiaOthers{} - CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{} - CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{} - CashManiaReelBaseSpinRange = [][]int64{} - CashManiaReelBaseSpinReel = [][]int64{} - CashManiaReelBaseSpinWeight = [][]float64{} - CashManiaSymbolBetRatio = []*structs.CashManiaSymbolBetRatio{} - CashManiaSymbol = map[int64]*structs.CashManiaSymbol{} - CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{} - CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{} - FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{} - FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{} - FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{} - FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{} - FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{} - FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{} - FortuneDragonFormation = []*structs.FortuneDragonFormation{} - FortuneDragonFreeMultiplier = []*structs.FortuneDragonFreeMultiplier{} - FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{} - FortuneDragonMapRTPMode = map[int64]*structs.FortuneDragonMapRTPMode{} - FortuneDragonOthers = []*structs.FortuneDragonOthers{} - FortuneDragonReelBaseSpinRange = [][]int64{} - FortuneDragonReelBaseSpinReel = [][]int64{} - FortuneDragonReelBaseSpinWeight = [][]float64{} - FortuneDragonReelFreeSpinRange = [][]int64{} - FortuneDragonReelFreeSpinReel = [][]int64{} - FortuneDragonReelFreeSpinWeight = [][]float64{} - FortuneDragonReelSureWinBaseSpinRange = [][]int64{} - FortuneDragonReelSureWinBaseSpinReel = [][]int64{} + CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{} + CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{} + CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{} + CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} + CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} + CashManiaFormation = []*structs.CashManiaFormation{} + CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{} + CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} + CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} + CashManiaOthers = []*structs.CashManiaOthers{} + CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{} + CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{} + CashManiaReelBaseSpinRange = [][]int64{} + CashManiaReelBaseSpinReel = [][]int64{} + CashManiaReelBaseSpinWeight = [][]float64{} + CashManiaSymbolBetRatio = []*structs.CashManiaSymbolBetRatio{} + CashManiaSymbol = map[int64]*structs.CashManiaSymbol{} + CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{} + CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{} + FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{} + FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{} + FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{} + FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{} + FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{} + FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{} + FortuneDragonFormation = []*structs.FortuneDragonFormation{} + FortuneDragonFreeMultiplier = []*structs.FortuneDragonFreeMultiplier{} + FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{} + FortuneDragonMapRTPMode = map[int64]*structs.FortuneDragonMapRTPMode{} + FortuneDragonOthers = []*structs.FortuneDragonOthers{} + FortuneDragonReelBaseSpinRange = [][]int64{} + FortuneDragonReelBaseSpinReel = [][]int64{} + FortuneDragonReelBaseSpinWeight = [][]float64{} + FortuneDragonReelFreeSpinRange = [][]int64{} + FortuneDragonReelFreeSpinReel = [][]int64{} + FortuneDragonReelFreeSpinWeight = [][]float64{} + FortuneDragonReelSureWinBaseSpinRange = [][]int64{} + FortuneDragonReelSureWinBaseSpinReel = [][]int64{} FortuneDragonReelSureWinBaseSpinWeight = [][]float64{} - FortuneDragonReelSureWinFreeSpinRange = [][]int64{} - FortuneDragonReelSureWinFreeSpinReel = [][]int64{} + FortuneDragonReelSureWinFreeSpinRange = [][]int64{} + FortuneDragonReelSureWinFreeSpinReel = [][]int64{} FortuneDragonReelSureWinFreeSpinWeight = [][]float64{} - FortuneDragonSymbolBetRatio = []*structs.FortuneDragonSymbolBetRatio{} - FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{} - FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{} - FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{} - FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{} - FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{} - FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{} - FortuneMouseFormation = []*structs.FortuneMouseFormation{} - FortuneMouseMapRTPMode = map[int64]*structs.FortuneMouseMapRTPMode{} - FortuneMouseOthers = []*structs.FortuneMouseOthers{} - FortuneMouseReelBaseSpinRange = [][]int64{} - FortuneMouseReelBaseSpinReel = [][]int64{} - FortuneMouseReelBaseSpinWeight = [][]float64{} - FortuneMouseReelReSpinRange = [][]int64{} - FortuneMouseReelReSpinReel = [][]int64{} - FortuneMouseReelReSpinWeight = [][]float64{} - FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{} - FortuneMouseSymbolBetRatio = []*structs.FortuneMouseSymbolBetRatio{} - FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{} - FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{} - FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{} - FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{} - FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{} - FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{} - FortuneOxFormation = []*structs.FortuneOxFormation{} - FortuneOxMapRTPMode = map[int64]*structs.FortuneOxMapRTPMode{} - FortuneOxOthers = []*structs.FortuneOxOthers{} - FortuneOxReelBaseSpinRange = [][]int64{} - FortuneOxReelBaseSpinReel = [][]int64{} - FortuneOxReelBaseSpinWeight = [][]float64{} - FortuneOxReelReSpinRange = [][]int64{} - FortuneOxReelReSpinReel = [][]int64{} - FortuneOxReelReSpinWeight = [][]float64{} - FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{} - FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{} - FortuneOxSymbolBetRatio = []*structs.FortuneOxSymbolBetRatio{} - FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{} - FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{} - FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{} - FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{} - FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{} - FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{} - FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{} - FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{} - FortuneRabbitFormation = []*structs.FortuneRabbitFormation{} - FortuneRabbitMapRTPMode = map[int64]*structs.FortuneRabbitMapRTPMode{} - FortuneRabbitOthers = []*structs.FortuneRabbitOthers{} - FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{} - FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{} - FortuneRabbitReelBaseSpinRange = [][]int64{} - FortuneRabbitReelBaseSpinReel = [][]int64{} - FortuneRabbitReelBaseSpinWeight = [][]float64{} - FortuneRabbitReelFreeSpinRange = [][]int64{} - FortuneRabbitReelFreeSpinReel = [][]int64{} - FortuneRabbitReelFreeSpinWeight = [][]float64{} - FortuneRabbitSymbolBetRatio = []*structs.FortuneRabbitSymbolBetRatio{} - FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{} - FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{} - FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{} - FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{} - FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{} - FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{} - FortuneTigerFormation = []*structs.FortuneTigerFormation{} - FortuneTigerMapRTPMode = map[int64]*structs.FortuneTigerMapRTPMode{} - FortuneTigerOthers = []*structs.FortuneTigerOthers{} - FortuneTigerReelBaseSpinRange = [][]int64{} - FortuneTigerReelBaseSpinReel = [][]int64{} - FortuneTigerReelBaseSpinWeight = [][]float64{} - FortuneTigerReelReSpinRange = [][]int64{} - FortuneTigerReelReSpinReel = [][]int64{} - FortuneTigerReelReSpinWeight = [][]float64{} - FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} - FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} - FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} - MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} - MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} - MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} - MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{} - MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{} - MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{} - MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{} - MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{} - MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{} - MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{} - MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{} - MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{} - MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{} - MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{} - MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{} - MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{} - MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{} - MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{} - MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{} - MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{} - MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{} - MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{} - MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{} - MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{} - MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{} - MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{} - MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{} - MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{} - MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{} - MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{} - MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{} - MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{} - MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{} - MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{} - MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{} - MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{} - MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{} - MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{} - MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{} - MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{} - MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{} - MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{} - MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{} - MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{} - MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{} - MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{} - MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{} - MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{} - MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{} - MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{} - MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{} - MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{} - MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{} - MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{} - MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{} - MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{} - MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{} - MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{} - MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{} - MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{} - MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{} - MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{} - MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{} - MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{} - MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{} - MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{} - MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{} - MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{} - MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{} - MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{} - MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{} - MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{} - MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{} - MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{} - MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{} - MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{} - MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{} - MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{} - MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{} - MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{} - MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{} - MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{} - MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{} - MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{} - MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{} - OptGroup = []*structs.OptGroup{} - PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{} - PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{} - SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{} - SimulatorMultiLevel = []*structs.SimulatorMultiLevel{} - TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{} - TestBetBetLevel = map[int64]*structs.TestBetBetLevel{} - TestBetBetLine = map[int64]*structs.TestBetBetLine{} - TestBetBetSize = map[int64]*structs.TestBetBetSize{} - TestBetFirstBet = map[int64]*structs.TestBetFirstBet{} - TestFormation = []*structs.TestFormation{} - TestMapRTPMode = map[int64]*structs.TestMapRTPMode{} - TestRandomWeight = []*structs.TestRandomWeight{} - TestReelBaseSpinRange = [][]int64{} - TestReelBaseSpinReel = [][]int64{} - TestReelBaseSpinWeight = [][]float64{} - TestSymbolBetRatio = []*structs.TestSymbolBetRatio{} - TestSymbol = map[int64]*structs.TestSymbol{} -) + FortuneDragonSymbolBetRatio = []*structs.FortuneDragonSymbolBetRatio{} + FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{} + FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{} + FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{} + FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{} + FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{} + FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{} + FortuneMouseFormation = []*structs.FortuneMouseFormation{} + FortuneMouseMapRTPMode = map[int64]*structs.FortuneMouseMapRTPMode{} + FortuneMouseOthers = []*structs.FortuneMouseOthers{} + FortuneMouseReelBaseSpinRange = [][]int64{} + FortuneMouseReelBaseSpinReel = [][]int64{} + FortuneMouseReelBaseSpinWeight = [][]float64{} + FortuneMouseReelReSpinRange = [][]int64{} + FortuneMouseReelReSpinReel = [][]int64{} + FortuneMouseReelReSpinWeight = [][]float64{} + FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{} + FortuneMouseSymbolBetRatio = []*structs.FortuneMouseSymbolBetRatio{} + FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{} + FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{} + FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{} + FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{} + FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{} + FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{} + FortuneOxFormation = []*structs.FortuneOxFormation{} + FortuneOxMapRTPMode = map[int64]*structs.FortuneOxMapRTPMode{} + FortuneOxOthers = []*structs.FortuneOxOthers{} + FortuneOxReelBaseSpinRange = [][]int64{} + FortuneOxReelBaseSpinReel = [][]int64{} + FortuneOxReelBaseSpinWeight = [][]float64{} + FortuneOxReelReSpinRange = [][]int64{} + FortuneOxReelReSpinReel = [][]int64{} + FortuneOxReelReSpinWeight = [][]float64{} + FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{} + FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{} + FortuneOxSymbolBetRatio = []*structs.FortuneOxSymbolBetRatio{} + FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{} + FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{} + FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{} + FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{} + FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{} + FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{} + FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{} + FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{} + FortuneRabbitFormation = []*structs.FortuneRabbitFormation{} + FortuneRabbitMapRTPMode = map[int64]*structs.FortuneRabbitMapRTPMode{} + FortuneRabbitOthers = []*structs.FortuneRabbitOthers{} + FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{} + FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{} + FortuneRabbitReelBaseSpinRange = [][]int64{} + FortuneRabbitReelBaseSpinReel = [][]int64{} + FortuneRabbitReelBaseSpinWeight = [][]float64{} + FortuneRabbitReelFreeSpinRange = [][]int64{} + FortuneRabbitReelFreeSpinReel = [][]int64{} + FortuneRabbitReelFreeSpinWeight = [][]float64{} + FortuneRabbitSymbolBetRatio = []*structs.FortuneRabbitSymbolBetRatio{} + FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{} + FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{} + FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{} + FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{} + FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{} + FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{} + FortuneTigerFormation = []*structs.FortuneTigerFormation{} + FortuneTigerMapRTPMode = map[int64]*structs.FortuneTigerMapRTPMode{} + FortuneTigerOthers = []*structs.FortuneTigerOthers{} + FortuneTigerReelBaseSpinRange = [][]int64{} + FortuneTigerReelBaseSpinReel = [][]int64{} + FortuneTigerReelBaseSpinWeight = [][]float64{} + FortuneTigerReelReSpinRange = [][]int64{} + FortuneTigerReelReSpinReel = [][]int64{} + FortuneTigerReelReSpinWeight = [][]float64{} + FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} + FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} + FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} + GatesOfOlympusBetBetChangeList = map[int64]*structs.GatesOfOlympusBetBetChangeList{} + GatesOfOlympusBetBetLevel = map[int64]*structs.GatesOfOlympusBetBetLevel{} + GatesOfOlympusBetBetLine = map[int64]*structs.GatesOfOlympusBetBetLine{} + GatesOfOlympusBetBetSize = map[int64]*structs.GatesOfOlympusBetBetSize{} + GatesOfOlympusBetFirstBet = map[int64]*structs.GatesOfOlympusBetFirstBet{} + GatesOfOlympusFormation = []*structs.GatesOfOlympusFormation{} + GatesOfOlympusMapRTPMode = map[int64]*structs.GatesOfOlympusMapRTPMode{} + GatesOfOlympusMultiplier = []*structs.GatesOfOlympusMultiplier{} + GatesOfOlympusMultiplierKeyID = map[int64]*structs.GatesOfOlympusMultiplierKeyID{} + GatesOfOlympusReelBaseSpin1Range = [][]int64{} + GatesOfOlympusReelBaseSpin1Reel = [][]int64{} + GatesOfOlympusReelBaseSpin1Weight = [][]float64{} + GatesOfOlympusReelBaseSpin2Range = [][]int64{} + GatesOfOlympusReelBaseSpin2Reel = [][]int64{} + GatesOfOlympusReelBaseSpin2Weight = [][]float64{} + GatesOfOlympusReelBaseSpin3Range = [][]int64{} + GatesOfOlympusReelBaseSpin3Reel = [][]int64{} + GatesOfOlympusReelBaseSpin3Weight = [][]float64{} + GatesOfOlympusReelBaseSpin7Range = [][]int64{} + GatesOfOlympusReelBaseSpin7Reel = [][]int64{} + GatesOfOlympusReelBaseSpin7Weight = [][]float64{} + GatesOfOlympusReelBaseSpin8Range = [][]int64{} + GatesOfOlympusReelBaseSpin8Reel = [][]int64{} + GatesOfOlympusReelBaseSpin8Weight = [][]float64{} + GatesOfOlympusReelBaseSpinRange = [][]int64{} + GatesOfOlympusReelBaseSpinReel = [][]int64{} + GatesOfOlympusReelBaseSpinWeight = [][]float64{} + GatesOfOlympusReelChoose = []*structs.GatesOfOlympusReelChoose{} + GatesOfOlympusReelFreeSpin4Range = [][]int64{} + GatesOfOlympusReelFreeSpin4Reel = [][]int64{} + GatesOfOlympusReelFreeSpin4Weight = [][]float64{} + GatesOfOlympusReelFreeSpin5Range = [][]int64{} + GatesOfOlympusReelFreeSpin5Reel = [][]int64{} + GatesOfOlympusReelFreeSpin5Weight = [][]float64{} + GatesOfOlympusReelFreeSpinRange = [][]int64{} + GatesOfOlympusReelFreeSpinReel = [][]int64{} + GatesOfOlympusReelFreeSpinWeight = [][]float64{} + GatesOfOlympusScatter = map[int64]*structs.GatesOfOlympusScatter{} + GatesOfOlympusSymbolBetRatio = []*structs.GatesOfOlympusSymbolBetRatio{} + GatesOfOlympusSymbol = map[int64]*structs.GatesOfOlympusSymbol{} + MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} + MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} + MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} + MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{} + MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{} + MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{} + MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{} + MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{} + MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{} + MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{} + MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{} + MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{} + MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{} + MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{} + MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{} + MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{} + MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{} + MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{} + MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{} + MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{} + MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{} + MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{} + MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{} + MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{} + MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{} + MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{} + MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{} + MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{} + MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{} + MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{} + MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{} + MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{} + MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{} + MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{} + MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{} + MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{} + MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{} + MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{} + MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{} + MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{} + MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{} + MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{} + MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{} + MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{} + MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{} + MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{} + MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{} + MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{} + MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{} + MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{} + MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{} + MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{} + MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{} + MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{} + MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{} + MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{} + MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{} + MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{} + MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{} + MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{} + MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{} + MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{} + MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{} + MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{} + MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{} + MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{} + MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{} + MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{} + MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{} + MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{} + MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{} + MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{} + MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{} + MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{} + MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{} + MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{} + MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{} + MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{} + MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{} + MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{} + MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{} + MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{} + MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{} + MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{} + MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{} + OptGroup = []*structs.OptGroup{} + PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{} + PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{} + SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{} + SimulatorMultiLevel = []*structs.SimulatorMultiLevel{} + TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{} + TestBetBetLevel = map[int64]*structs.TestBetBetLevel{} + TestBetBetLine = map[int64]*structs.TestBetBetLine{} + TestBetBetSize = map[int64]*structs.TestBetBetSize{} + TestBetFirstBet = map[int64]*structs.TestBetFirstBet{} + TestFormation = []*structs.TestFormation{} + TestMapRTPMode = map[int64]*structs.TestMapRTPMode{} + TestRandomWeight = []*structs.TestRandomWeight{} + TestReelBaseSpinRange = [][]int64{} + TestReelBaseSpinReel = [][]int64{} + TestReelBaseSpinWeight = [][]float64{} + TestSymbolBetRatio = []*structs.TestSymbolBetRatio{} + TestSymbol = map[int64]*structs.TestSymbol{} +) \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go b/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go index 4862c11..eaa44d3 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go @@ -179,6 +179,46 @@ func StoragesLoading(data map[string]string) { Load(data, "Base.FortuneTiger/SuperStack.Weight", &base.FortuneTigerSuperStackWeight) Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio) Load(data, "Base.FortuneTiger/Symbol.Default", &base.FortuneTigerSymbol) + Load(data, "Base.GatesOfOlympus/Bet.BetChangeList", &base.GatesOfOlympusBetBetChangeList) + Load(data, "Base.GatesOfOlympus/Bet.BetLevel", &base.GatesOfOlympusBetBetLevel) + Load(data, "Base.GatesOfOlympus/Bet.BetLine", &base.GatesOfOlympusBetBetLine) + Load(data, "Base.GatesOfOlympus/Bet.BetSize", &base.GatesOfOlympusBetBetSize) + Load(data, "Base.GatesOfOlympus/Bet.FirstBet", &base.GatesOfOlympusBetFirstBet) + Load(data, "Base.GatesOfOlympus/Formation.Default", &base.GatesOfOlympusFormation) + Load(data, "Base.GatesOfOlympus/Map.RTPMode", &base.GatesOfOlympusMapRTPMode) + Load(data, "Base.GatesOfOlympus/Multiplier.Default", &base.GatesOfOlympusMultiplier) + Load(data, "Base.GatesOfOlympus/Multiplier.Default/ID", &base.GatesOfOlympusMultiplierKeyID) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Range", &base.GatesOfOlympusReelBaseSpin1Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Reel", &base.GatesOfOlympusReelBaseSpin1Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Weight", &base.GatesOfOlympusReelBaseSpin1Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Range", &base.GatesOfOlympusReelBaseSpin2Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Reel", &base.GatesOfOlympusReelBaseSpin2Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Weight", &base.GatesOfOlympusReelBaseSpin2Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Range", &base.GatesOfOlympusReelBaseSpin3Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Reel", &base.GatesOfOlympusReelBaseSpin3Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Weight", &base.GatesOfOlympusReelBaseSpin3Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Range", &base.GatesOfOlympusReelBaseSpin7Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Reel", &base.GatesOfOlympusReelBaseSpin7Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Weight", &base.GatesOfOlympusReelBaseSpin7Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Range", &base.GatesOfOlympusReelBaseSpin8Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Reel", &base.GatesOfOlympusReelBaseSpin8Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Weight", &base.GatesOfOlympusReelBaseSpin8Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Range", &base.GatesOfOlympusReelBaseSpinRange) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Reel", &base.GatesOfOlympusReelBaseSpinReel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Weight", &base.GatesOfOlympusReelBaseSpinWeight) + Load(data, "Base.GatesOfOlympus/ReelChoose.Default", &base.GatesOfOlympusReelChoose) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Range", &base.GatesOfOlympusReelFreeSpin4Range) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Reel", &base.GatesOfOlympusReelFreeSpin4Reel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Weight", &base.GatesOfOlympusReelFreeSpin4Weight) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Range", &base.GatesOfOlympusReelFreeSpin5Range) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Reel", &base.GatesOfOlympusReelFreeSpin5Reel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Weight", &base.GatesOfOlympusReelFreeSpin5Weight) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Range", &base.GatesOfOlympusReelFreeSpinRange) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Reel", &base.GatesOfOlympusReelFreeSpinReel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Weight", &base.GatesOfOlympusReelFreeSpinWeight) + Load(data, "Base.GatesOfOlympus/Scatter.Default", &base.GatesOfOlympusScatter) + Load(data, "Base.GatesOfOlympus/Symbol.BetRatio", &base.GatesOfOlympusSymbolBetRatio) + Load(data, "Base.GatesOfOlympus/Symbol.Default", &base.GatesOfOlympusSymbol) Load(data, "Base.Matrix/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA) Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA) Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA) @@ -401,6 +441,46 @@ func StoragesMapping() { Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight) Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio) Set("Base", "FortuneTiger/Symbol", "Default", base.FortuneTigerSymbol) + Set("Base", "GatesOfOlympus/Bet", "BetChangeList", base.GatesOfOlympusBetBetChangeList) + Set("Base", "GatesOfOlympus/Bet", "BetLevel", base.GatesOfOlympusBetBetLevel) + Set("Base", "GatesOfOlympus/Bet", "BetLine", base.GatesOfOlympusBetBetLine) + Set("Base", "GatesOfOlympus/Bet", "BetSize", base.GatesOfOlympusBetBetSize) + Set("Base", "GatesOfOlympus/Bet", "FirstBet", base.GatesOfOlympusBetFirstBet) + Set("Base", "GatesOfOlympus/Formation", "Default", base.GatesOfOlympusFormation) + Set("Base", "GatesOfOlympus/Map", "RTPMode", base.GatesOfOlympusMapRTPMode) + Set("Base", "GatesOfOlympus/Multiplier", "Default", base.GatesOfOlympusMultiplier) + Set("Base", "GatesOfOlympus/Multiplier", "Default/ID", base.GatesOfOlympusMultiplierKeyID) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Range", base.GatesOfOlympusReelBaseSpin1Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Reel", base.GatesOfOlympusReelBaseSpin1Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Weight", base.GatesOfOlympusReelBaseSpin1Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Range", base.GatesOfOlympusReelBaseSpin2Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Reel", base.GatesOfOlympusReelBaseSpin2Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Weight", base.GatesOfOlympusReelBaseSpin2Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Range", base.GatesOfOlympusReelBaseSpin3Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Reel", base.GatesOfOlympusReelBaseSpin3Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Weight", base.GatesOfOlympusReelBaseSpin3Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Range", base.GatesOfOlympusReelBaseSpin7Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Reel", base.GatesOfOlympusReelBaseSpin7Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Weight", base.GatesOfOlympusReelBaseSpin7Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Range", base.GatesOfOlympusReelBaseSpin8Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Reel", base.GatesOfOlympusReelBaseSpin8Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Weight", base.GatesOfOlympusReelBaseSpin8Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Range", base.GatesOfOlympusReelBaseSpinRange) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Reel", base.GatesOfOlympusReelBaseSpinReel) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Weight", base.GatesOfOlympusReelBaseSpinWeight) + Set("Base", "GatesOfOlympus/ReelChoose", "Default", base.GatesOfOlympusReelChoose) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Range", base.GatesOfOlympusReelFreeSpin4Range) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Reel", base.GatesOfOlympusReelFreeSpin4Reel) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Weight", base.GatesOfOlympusReelFreeSpin4Weight) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Range", base.GatesOfOlympusReelFreeSpin5Range) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Reel", base.GatesOfOlympusReelFreeSpin5Reel) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Weight", base.GatesOfOlympusReelFreeSpin5Weight) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Range", base.GatesOfOlympusReelFreeSpinRange) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Reel", base.GatesOfOlympusReelFreeSpinReel) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Weight", base.GatesOfOlympusReelFreeSpinWeight) + Set("Base", "GatesOfOlympus/Scatter", "Default", base.GatesOfOlympusScatter) + Set("Base", "GatesOfOlympus/Symbol", "BetRatio", base.GatesOfOlympusSymbolBetRatio) + Set("Base", "GatesOfOlympus/Symbol", "Default", base.GatesOfOlympusSymbol) Set("Base", "Matrix/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA) Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA) Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA) @@ -540,6 +620,12 @@ func LinksMapping() { Link("FortuneTiger/ReelBaseSpin", "Weight/1", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/3", "FortuneTiger/ReelBaseSpin", "Weight") + Link("GatesOfOlympus/MatrixSameForm5X6TypeA", "Default", "Matrix/SameForm5X6TypeA", "Default") + Link("GatesOfOlympus/MatrixSameForm5X6TypeB", "Default", "Matrix/SameForm5X6TypeB", "Default") + Link("GatesOfOlympus/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/1", "GatesOfOlympus/ReelBaseSpin1", "Weight") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/2", "GatesOfOlympus/ReelBaseSpin1", "Weight") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/3", "GatesOfOlympus/ReelBaseSpin1", "Weight") Link("Test/MatrixLine1Form3X3TypeA", "Default", "Matrix/Line1Form3X3TypeA", "Default") Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight") @@ -636,3 +722,4 @@ func Load(dataMap map[string]string, name string, v interface{}) { panic(err) } } + diff --git a/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go b/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go index a2d3e57..501a0e7 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go @@ -172,6 +172,19 @@ type ( FreeSpinCount int64 MaxWin int64 } + // GatesOfOlympusMultiplier comment + GatesOfOlympusMultiplier struct { + Multiple int64 + ID int64 + Weights []int64 + } + // GatesOfOlympusReelChoose comment + GatesOfOlympusReelChoose struct { + ID int64 + IsFreeSpin bool + NodeType string + Weights []int64 + } // JackpotPrize comment JackpotPrize struct { PrizeType int64 @@ -521,6 +534,42 @@ type ( // FortuneTigerSymbolBetRatio comment FortuneTigerSymbolBetRatio = SymbolBetRatio + // GatesOfOlympusBetBetChangeList comment + GatesOfOlympusBetBetChangeList = BetChangeList + + // GatesOfOlympusBetBetLevel comment + GatesOfOlympusBetBetLevel = BetLevel + + // GatesOfOlympusBetBetLine comment + GatesOfOlympusBetBetLine = BetLine + + // GatesOfOlympusBetBetSize comment + GatesOfOlympusBetBetSize = BetSize + + // GatesOfOlympusBetFirstBet comment + GatesOfOlympusBetFirstBet = FirstBet + + // GatesOfOlympusFormation comment + GatesOfOlympusFormation = Formation + + // GatesOfOlympusMapRTPMode comment + GatesOfOlympusMapRTPMode = MapRTPMode + + // GatesOfOlympusMapRTPModeTypeWeight comment + GatesOfOlympusMapRTPModeTypeWeight = MapRTPModeTypeWeight + + // GatesOfOlympusMultiplierKeyID comment + GatesOfOlympusMultiplierKeyID = GatesOfOlympusMultiplier + + // GatesOfOlympusScatter comment + GatesOfOlympusScatter = Scatter + + // GatesOfOlympusSymbol comment + GatesOfOlympusSymbol = Symbol + + // GatesOfOlympusSymbolBetRatio comment + GatesOfOlympusSymbolBetRatio = SymbolBetRatio + // MatrixFeaturesForm15X1TypeA comment MatrixFeaturesForm15X1TypeA = Matrix diff --git a/gamesrv/slotspkg/internal/generic/key/theme.go b/gamesrv/slotspkg/internal/generic/key/theme.go index 8eefc7a..53c9f09 100644 --- a/gamesrv/slotspkg/internal/generic/key/theme.go +++ b/gamesrv/slotspkg/internal/generic/key/theme.go @@ -1,13 +1,14 @@ package key const ( - FortuneTiger = "FortuneTiger" - FortuneDragon = "FortuneDragon" - FortuneRabbit = "FortuneRabbit" - FortuneOx = "FortuneOx" - FortuneMouse = "FortuneMouse" - CashMania = "CashMania" - Test = "Test" + FortuneTiger = "FortuneTiger" + FortuneDragon = "FortuneDragon" + FortuneRabbit = "FortuneRabbit" + FortuneOx = "FortuneOx" + FortuneMouse = "FortuneMouse" + CashMania = "CashMania" + GatesOfOlympus = "GatesOfOlympus" + Test = "Test" ) const ( GameId_Min uint = iota @@ -17,28 +18,31 @@ const ( GameId_OX GameId_Mouse GameId_Cash_Mania + GameId_GatesOfOlympus GameId_Max GameId_Test = 999 ) var GameMap = map[uint]string{ - GameId_Tiger: FortuneTiger, - GameId_Dragon: FortuneDragon, - GameId_Rabbit: FortuneRabbit, - GameId_OX: FortuneOx, - GameId_Mouse: FortuneMouse, - GameId_Cash_Mania: CashMania, - GameId_Test: Test, + GameId_Tiger: FortuneTiger, + GameId_Dragon: FortuneDragon, + GameId_Rabbit: FortuneRabbit, + GameId_OX: FortuneOx, + GameId_Mouse: FortuneMouse, + GameId_Cash_Mania: CashMania, + GameId_GatesOfOlympus: GatesOfOlympus, + GameId_Test: Test, } var GameMapTheme = map[string]uint{ - FortuneTiger: GameId_Tiger, - FortuneDragon: GameId_Dragon, - FortuneRabbit: GameId_Rabbit, - FortuneOx: GameId_OX, - FortuneMouse: GameId_Mouse, - CashMania: GameId_Cash_Mania, - Test: GameId_Test, + FortuneTiger: GameId_Tiger, + FortuneDragon: GameId_Dragon, + FortuneRabbit: GameId_Rabbit, + FortuneOx: GameId_OX, + FortuneMouse: GameId_Mouse, + CashMania: GameId_Cash_Mania, + GatesOfOlympus: GameId_GatesOfOlympus, + Test: GameId_Test, } var GameKeyMap = map[int64]uint{ 0: GameId_Min, @@ -47,5 +51,7 @@ var GameKeyMap = map[int64]uint{ 310: GameId_Rabbit, 311: GameId_OX, 312: GameId_Mouse, + 313: GameId_Cash_Mania, + 314: GameId_GatesOfOlympus, 999: GameId_Max, } diff --git a/gamesrv/slotspkg/internal/module/shared/types.go b/gamesrv/slotspkg/internal/module/shared/types.go index c275ce3..f8669c6 100644 --- a/gamesrv/slotspkg/internal/module/shared/types.go +++ b/gamesrv/slotspkg/internal/module/shared/types.go @@ -58,6 +58,18 @@ type GameEndDto struct { ActualWin int64 `json:"actualWin"` } +type CustomEliminate struct { + LinkPositions []*LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + // Special type SpinLock struct { //tigerSpecial @@ -81,4 +93,13 @@ type SpinLock struct { Multiple int64 `json:"multiple,omitempty"` //倍乘倍数 Irv [][]float64 `json:"irv,omitempty"` Frv [][]float64 `json:"frv,omitempty"` + + //GatesOfOlympus + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` } diff --git a/gamesrv/slotspkg/slots/formation/formation.go b/gamesrv/slotspkg/slots/formation/formation.go index 627732c..3d96c18 100644 --- a/gamesrv/slotspkg/slots/formation/formation.go +++ b/gamesrv/slotspkg/slots/formation/formation.go @@ -13,6 +13,8 @@ type Formation struct { NodeType string FormationDesc *desc.FormationDesc Symbols []int64 + SymbolsAbove []int64 + SymbolsBelow []int64 RandPositions []int64 CheatSymbols []int64 DisplaySymbols []int64 @@ -72,6 +74,8 @@ func NewFormation(n *desc.NodeDesc, seqID int64) (*Formation, error) { NodeType: n.NodeType, FormationDesc: formationDesc, Symbols: nil, + SymbolsAbove: nil, + SymbolsBelow: nil, RandPositions: nil, CheatSymbols: nil, DisplaySymbols: nil, @@ -96,12 +100,16 @@ func (f *Formation) Rand(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx+reelDesc.Range-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } func (f *Formation) ResetRandSymbols(r *randx.Randx) { f.RandPositions = nil f.Symbols = nil + f.SymbolsAbove = nil + f.SymbolsBelow = nil for _, reelDesc := range f.FormationDesc.ReelsDesc { // 经测试:缓存权重 和 二分查找 对权重随机性能的提升微乎其微,没必要优化 startIdx := int64(randx.RandWeight(r, reelDesc.Weights)) @@ -111,11 +119,15 @@ func (f *Formation) ResetRandSymbols(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } func (f *Formation) ResetRandSymbolsByIndex(r *randx.Randx) { f.RandPositions = nil f.Symbols = nil + f.SymbolsAbove = nil + f.SymbolsBelow = nil for _, reelDesc := range f.FormationDesc.ReelsDesc { // 经测试:缓存权重 和 二分查找 对权重随机性能的提升微乎其微,没必要优化 startIdx := int64(r.Intn(len(reelDesc.Weights))) @@ -125,6 +137,8 @@ func (f *Formation) ResetRandSymbolsByIndex(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } diff --git a/gamesrv/slotspkg/slots/intf/formation.go b/gamesrv/slotspkg/slots/intf/formation.go index 7c0ee73..8175668 100644 --- a/gamesrv/slotspkg/slots/intf/formation.go +++ b/gamesrv/slotspkg/slots/intf/formation.go @@ -16,6 +16,8 @@ type Formation interface { SetInitFormattedSymbols(symbols [][]int64) Formation GetSymbols() []int64 + GetSymbolsAbove() []int64 + GetSymbolsBelow() []int64 SetSymbols(symbols []int64) Formation GetReelFormattedSymbols() [][]int64 GetMatrixFormattedSymbols() [][]int64 @@ -41,6 +43,8 @@ type Formation interface { GetMatrixFormattedFinalSymbols() [][]int64 SetFormattedFinalSymbols(symbols [][]int64) Formation + GetMatrixFormattedBySymbols(symbols []int64) [][]int64 + GetLinkPositions() []*shared.LinkPositions SetLinkPositions(linkPositions []*shared.LinkPositions) Formation diff --git a/gamesrv/slotspkg/slots/intf/spinner.go b/gamesrv/slotspkg/slots/intf/spinner.go index 649d598..c0b91f1 100644 --- a/gamesrv/slotspkg/slots/intf/spinner.go +++ b/gamesrv/slotspkg/slots/intf/spinner.go @@ -44,6 +44,7 @@ type Spinner interface { BetLines() []int64 BaseBets() []int64 BetChangeList() []float64 + GetBetIndexByVal(val float64) []int64 Choice() int64 Stay() bool diff --git a/gamesrv/slotspkg/slots/machine/formation.go b/gamesrv/slotspkg/slots/machine/formation.go index b5ef770..772fe91 100644 --- a/gamesrv/slotspkg/slots/machine/formation.go +++ b/gamesrv/slotspkg/slots/machine/formation.go @@ -65,6 +65,20 @@ func (f *Formation) GetSymbols() []int64 { return symbols } +// GetSymbolsAbove gets origin SymbolsAbove +func (f *Formation) GetSymbolsAbove() []int64 { + symbolsAbove := make([]int64, len(f.OriginFormation.SymbolsAbove)) + copy(symbolsAbove, f.OriginFormation.SymbolsAbove) + return symbolsAbove +} + +// GetSymbolsBelow gets origin SymbolsBelow +func (f *Formation) GetSymbolsBelow() []int64 { + symbolsBelow := make([]int64, len(f.OriginFormation.SymbolsBelow)) + copy(symbolsBelow, f.OriginFormation.SymbolsBelow) + return symbolsBelow +} + // SetSymbols sets origin symbols func (f *Formation) SetSymbols(symbols []int64) intf.Formation { f.OriginFormation.Symbols = symbols @@ -183,6 +197,12 @@ func (f *Formation) GetMatrixFormattedFinalSymbols() [][]int64 { f.OriginFormation.MatrixForm) } +// GetMatrixFormattedBySymbols gets symbols and places them into specific form +func (f *Formation) GetMatrixFormattedBySymbols(symbols []int64) [][]int64 { + return formation.FormatSymbols(symbols, + f.OriginFormation.MatrixForm) +} + // SetFormattedFinalSymbols sets formed final symbols func (f *Formation) SetFormattedFinalSymbols(symbols [][]int64) intf.Formation { f.Formation.FinalSymbols = formation.DeformatSymbols(symbols) diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go new file mode 100644 index 0000000..2f930d3 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go @@ -0,0 +1,36 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginChooseWheel struct { + generic.PluginBase +} + +func (p *PluginChooseWheel) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginChooseWheel) OnStepBegin(m intf.Master) { + isFreeSpin := m.Next().GetType() == FreeSpin + typ := m.Choice() + + nodeName := Descx(m).RandWheel(isFreeSpin, typ) + if !isFreeSpin { + if typ == RoundTypeMoreScatter { + nodeName = "MoreScatter" + nodeName + m.SetRatio(key.MachineRatioMoreCoinMoreBet, 1.25) + } else if typ == RoundTypeBuyFreeSpin { + m.SetRatio(key.MachineRatioMoreCoinSameBet, 100) + } + } + m.Set(key.MachineFormationSeqsDesc, nodeName) + + // 设置日志中的RoundType + if m.Next().GetType() == BaseSpin { + m.Set(key.MachineRoundType, typ) + } +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go new file mode 100644 index 0000000..152bf8f --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go @@ -0,0 +1,30 @@ +package gatesofolympus + +const ( + BaseSpin = "BaseSpin" + FreeSpin = "FreeSpin" +) + +const ( + RoundTypeBaseSpin = iota + RoundTypeMoreScatter // 25% more cost + RoundTypeBuyFreeSpin // 10000% more cost +) + +const ( + MultiplierBaseSpin = iota + MultiplierFreeSpin + MultiplierNoWin +) + +const ( + SymbolMultiplier = int64(12) +) + +type CustomFortune struct { + FreeStatus int `json:"fs"` + FreeSpinNum int64 `json:"fsn"` //剩余freespin + FreeNumMax int64 `json:"fnm"` //总次数 + FreeNumTrigger int64 `json:"fnt"` //新增freespin + ScatterWin int64 `json:"sw,omitempty"` +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go new file mode 100644 index 0000000..4b5be57 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go @@ -0,0 +1,84 @@ +package gatesofolympus + +import ( + "encoding/json" + "github.com/tomas-qstarrs/boost/randx" + "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/errors" + "mongo.games.com/game/gamesrv/slotspkg/slots/desc" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" +) + +type descx struct { + *randx.Randx + *desc.NodeDesc +} + +func Descx(m intf.Master) *descx { + return &descx{ + Randx: m.Randx(), + NodeDesc: m.Desc(), + } +} + +func (n descx) RandWheel(isFreeSpin bool, typ int64) string { + sheet := n.DefaultSheet("ReelChoose") + rows, ok := sheet.([]*structs.GatesOfOlympusReelChoose) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "ReelChoose")) + } + + var weights = make(map[int]int64, 0) + for idx, row := range rows { + if row.IsFreeSpin == isFreeSpin { + weights[idx] = row.Weights[int(typ)] + } + } + + idx := randx.RandWeightMap(n.Randx, weights) + return rows[idx].NodeType +} + +func (n descx) RandMultiplier(typ int64) int64 { + sheet := n.DefaultSheet("Multiplier") + rows, ok := sheet.([]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + + var weights = make([]int64, 0, len(rows)) + for _, row := range rows { + weights = append(weights, row.Weights[typ]) + } + + idx := randx.RandWeight(n.Randx, weights) + return rows[idx].ID +} + +func (n descx) GetMultiBySymbol(symbol int64) int64 { + sheet := n.KeySheet("Multiplier", "Default", "ID") + rows, ok := sheet.(map[int64]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + + row, ok := rows[symbol] + if !ok { + return 0 + } + + return row.Multiple +} +func (n descx) GetMultiStr() string { + sheet := n.KeySheet("Multiplier", "Default", "ID") + rows, ok := sheet.(map[int64]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + var multiples = make(map[int64]int64) + for _, v := range rows { + multiples[v.ID] = v.Multiple + } + multiplesByte, _ := json.Marshal(multiples) + return string(multiplesByte) +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go new file mode 100644 index 0000000..3440693 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go @@ -0,0 +1,239 @@ +package gatesofolympus + +import ( + "fmt" + "github.com/mohae/deepcopy" + "github.com/tomas-qstarrs/boost/mathx" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/internal/module/shared" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginEliminate struct { + generic.PluginBase +} + +type CustomEliminate struct { + LinkPositions []*shared.LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +type CustomMulti struct { + Multi int64 + MultiStr string + MultiStrVal string +} + +type CustomPay struct { + Pay float64 +} + +func (p *PluginEliminate) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginEliminate) Customs() []interface{} { + return []interface{}{ + &CustomEliminate{}, + &CustomMulti{}, + &CustomPay{}, + &CustomFortune{}, + } +} + +func (p *PluginEliminate) OnInit(m intf.Master) { + if len(m.RootCustoms(&CustomMulti{})) == 0 { + m.AddRootFeature(&CustomMulti{}) + } +} + +func (p *PluginEliminate) OnEnterNode(m intf.Master) { + if m.Cursor().GetType() == key.BaseSpin { + m.RootCustom(&CustomMulti{}).(*CustomMulti).Multi = 0 + } +} + +func (p *PluginEliminate) BeforeSpin(m intf.Master) { + m.AddCursorFeature(&CustomPay{}).SetLifetime(1) +} + +func (p *PluginEliminate) AfterSpin(m intf.Master) { + cursorFormation := m.CursorFormation() + formattedSymbols := cursorFormation.GetReelFormattedDisplaySymbols() + + //f := getCustomFortune(m) + //if f.FreeSpinNum == 13 { + // formattedSymbols[0][0] = 1 + // formattedSymbols[0][1] = 1 + // formattedSymbols[0][2] = 1 + //} + + appendFormattedSymbols := deepcopy.Copy(formattedSymbols).([][]int64) + randPositions := cursorFormation.GetRandPositions() + + // 清空基础赢钱 + m.CursorFormation().SetWin(0) + + // 获取custom + customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) + customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) + + // 根据赔付计算multi type + linkPositions, _, linePays := m.TryLinkMatrixSymbols(1, formattedSymbols) + + var multiType int64 + if mathx.Sum(linePays) == 0 { + multiType = MultiplierNoWin + } else if m.Cursor().GetType() == key.BaseSpin { + multiType = MultiplierBaseSpin + } else { + multiType = MultiplierFreeSpin + } + + // 替换Formation元素 + for colIdx, symbols := range formattedSymbols { + for rowIdx, symbol := range symbols { + if symbol == SymbolMultiplier { + multiSymbol := Descx(m).RandMultiplier(multiType) + formattedSymbols[int64(colIdx)][5-int64(len(symbols))+int64(rowIdx)] = multiSymbol + } + } + } + + // 存储 Formation元素 + cursorFormation.SetFormattedDisplaySymbols(formattedSymbols) + defer cursorFormation.SetFormattedFinalSymbols(formattedSymbols) + + // 有消除 + for mathx.Sum(linePays) > 0 { + // 计算连线赢钱 + lineNum := len(linePays) + winCoins := make([]float64, lineNum) + for lineIdx, pay := range linePays { + winCoins[lineIdx] = float64(m.Cursor().GetSingleBet()) * float64(pay) + } + + // 标记消除的元素 + for _, link := range linkPositions { + for _, pos := range link.Positions { + row, col := cursorFormation.PositionToCoords(pos) + formattedSymbols[col][row] = -1 + } + } + // 删除消除的元素 + for colIndex := range formattedSymbols { + for rowIndex := 0; rowIndex < len(formattedSymbols[colIndex]); rowIndex++ { + if formattedSymbols[colIndex][rowIndex] == -1 { + formattedSymbols[colIndex] = append(formattedSymbols[colIndex][:rowIndex], formattedSymbols[colIndex][rowIndex+1:]...) + rowIndex-- + } + } + } + + var symbolsAbove []int64 + // 获取新得元素 + for colIdx, symbols := range formattedSymbols { + // 获取后续(向前)元素 + appendFormattedSymbols[colIdx] = cursorFormation.GetReelSymbols(int64(colIdx), + randPositions[colIdx]-int64(5-len(symbols)), int64(5-len(symbols))) + + symbolsAbove = append(symbolsAbove, cursorFormation.GetReelSymbols(int64(colIdx), + randPositions[colIdx]-int64(5-len(symbols))-1, 1)...) + + for rowIdx, symbol := range appendFormattedSymbols[colIdx] { + if symbol == SymbolMultiplier { + multiSymbol := Descx(m).RandMultiplier(multiType) + appendFormattedSymbols[colIdx][rowIdx] = multiSymbol + } + } + + // 拼接剩余元素和后续(向前)元素 + formattedSymbols[colIdx] = deepcopy.Copy(appendFormattedSymbols[colIdx]).([]int64) + formattedSymbols[colIdx] = append(formattedSymbols[colIdx], symbols...) + + // randPosition 向前移动 + randPositions[colIdx] -= int64(len(appendFormattedSymbols[colIdx])) + } + + // 添加后续feature,这里是消除 + m.AddCursorFeature(&CustomEliminate{ + LinkPositions: linkPositions, + AppendSymbols: appendFormattedSymbols, + FormattedSymbols: formattedSymbols, + LinePays: linePays, + WinCoins: winCoins, + MultiStr: Descx(m).GetMultiStr(), + SymbolsAbove: symbolsAbove, + SymbolsBelow: m.CursorFormation().GetSymbolsBelow(), + }).SetLifetime(1) + + // 累加pay + customPay.Pay += mathx.Sum(linePays) + + // 连线 + linkPositions, _, linePays = m.TryLinkMatrixSymbols(1, formattedSymbols) + } + + // 增加multi + var multiSum int64 + maxColCount := 0 + + // 找到最长的列数 + for _, row := range formattedSymbols { + if len(row) > maxColCount { + maxColCount = len(row) + } + } + + flatIndex := 0 // 当前符号在一维数组中的索引 + + customMulti.MultiStr = "" + customMulti.MultiStrVal = "" + + // 遍历列优先的索引 + for col := 0; col < maxColCount; col++ { + for row := 0; row < len(formattedSymbols); row++ { + rowSymbols := formattedSymbols[row] // 当前行的符号 + if col < len(rowSymbols) { // 确保当前列存在 + symbol := rowSymbols[col] + multi := Descx(m).GetMultiBySymbol(symbol) + multiSum += multi + + // 打印 Symbol 和其一维索引 + //fmt.Printf("Symbol: %s, Position in one-dimensional array: %d\n", symbol, flatIndex) + if multi > 0 { + if len(customMulti.MultiStr) > 0 { + customMulti.MultiStr += ";" + customMulti.MultiStrVal += "," + } + customMulti.MultiStr += fmt.Sprintf("%v~%v~%v", 12, flatIndex, multi) + customMulti.MultiStrVal += fmt.Sprintf("%v", multi) + } + flatIndex++ // 索引递增 + } + } + } + + if customPay.Pay > 0 { + if multiSum == 0 { + win := int64(customPay.Pay * float64(m.Cursor().GetSingleBet())) + m.CursorFeature(&CustomPay{}).SetWin(win) + } else { + customMulti.Multi += multiSum + var win int64 + if customMulti.Multi == 0 { + win = int64(customPay.Pay * float64(m.Cursor().GetSingleBet())) + } else { + win = int64(customPay.Pay * float64(m.Cursor().GetSingleBet()) * float64(customMulti.Multi)) + } + m.CursorFeature(&CustomPay{}).SetWin(win) + } + } +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go new file mode 100644 index 0000000..b2ae211 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go @@ -0,0 +1,106 @@ +package gatesofolympus + +import ( + "github.com/tomas-qstarrs/boost/mathx" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginFreeSpin struct { + generic.PluginScatter +} + +func (p *PluginFreeSpin) Theme() string { + return key.GatesOfOlympus +} + +// 获取特性数据 +func getCustomFortune(m intf.Master) *CustomFortune { + customFortune := new(CustomFortune) + if len(m.CursorCustoms(customFortune)) == 0 { + m.AddCursorFeature(customFortune) + } + return m.CursorCustom(customFortune).(*CustomFortune) +} + +// AfterSpin implements generic.PluginBase.AfterSpin +func (p *PluginFreeSpin) AfterSpin(m intf.Master) { + switch m.Cursor().GetType() { + case key.BaseSpin: + p.AfterBaseSpin(m) + case key.FreeSpin: + p.AfterFreeSpin(m) + } +} + +// AfterBaseSpin is called after base spin +func (p *PluginFreeSpin) AfterBaseSpin(m intf.Master) { + addTimes, win := p.GetScatterInfo(m, false) + if addTimes > 0 { + //m.AddNodeOnCursor(key.FreeSpin, addTimes) + customFortune := getCustomFortune(m) + customFortune.FreeStatus = 1 + customFortune.FreeNumMax += addTimes + customFortune.FreeNumTrigger = addTimes + customFortune.FreeSpinNum = addTimes + customFortune.ScatterWin = win + m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, addTimes).GetID(), customFortune).SetLifetime(addTimes) + } + if win > 0 { + m.AddCursorFeature(&generic.CustomScatterWin{}).SetWin(win) + } +} + +// AfterFreeSpin is called after free spin +func (p *PluginFreeSpin) AfterFreeSpin(m intf.Master) { + addTimes, win := p.GetScatterInfo(m, true) + customFortune := getCustomFortune(m) + if addTimes > 0 { + customFortune.FreeStatus = 2 + customFortune.FreeNumTrigger = addTimes + customFortune.FreeNumMax += addTimes + customFortune.FreeSpinNum += addTimes + customFortune.ScatterWin = win + m.AddProgress(addTimes) + m.AddCursorFeature(&generic.CustomExtraFreeSpin{ExtraTimes: addTimes}).SetLifetime(1) + } else { + customFortune.FreeStatus = 0 + customFortune.FreeNumTrigger = 0 + if customFortune.FreeSpinNum > 0 { + if customFortune.FreeSpinNum == 1 { + customFortune.FreeStatus = 3 + } + customFortune.FreeSpinNum-- + } + } + if win > 0 { + m.AddCursorFeature(&generic.CustomScatterWin{}).SetWin(win) + } +} + +// GetScatterInfo gets add free spin times & pay rate +func (p *PluginFreeSpin) GetScatterInfo(m intf.Master, inFreeSpin bool) (int64, int64) { + var scatterCount int64 + symbols := m.CursorFormation().GetFinalSymbols() + scatterSymbols := p.Scatters(m) + for _, scatterSymbol := range scatterSymbols { + scatterCount += int64(mathx.Count(scatterSymbol, symbols)) + } + + if scatterCount == 0 { + return 0, 0 + } + + freeSpinCount := generic.Descx(m).FreeSpin(inFreeSpin, scatterCount) + + payRate := generic.Descx(m).ScatterPayRate(inFreeSpin, scatterCount) + + win := m.Bet() * payRate + + if m.Choice() == RoundTypeMoreScatter { + win = int64(mathx.SafeDiv(win, 1.25)) + } + + return freeSpinCount, win +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go new file mode 100644 index 0000000..6f13eb6 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go @@ -0,0 +1,10 @@ +package gatesofolympus + +var Plugins = []interface{}{ + &PluginChooseWheel{}, + &PluginEliminate{}, + &PluginFreeSpin{}, + &PluginSpecial{}, +} + +var SimulatorPlugins = []interface{}{} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go new file mode 100644 index 0000000..4e6b074 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go @@ -0,0 +1,77 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginSpecial struct { + generic.PluginBase +} +type Special struct { + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` //消除的次数 一次为一个结果 + FreeStatus int `json:"fs"` + FreeSpinNum int64 `json:"fsn,omitempty"` //剩余freespin + FreeNumMax int64 `json:"fnm,omitempty"` //总次数 + FreeNumTrigger int64 `json:"fnt,omitempty"` //新增freespin + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +func (p *PluginSpecial) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginSpecial) Customs() []interface{} { + return []interface{}{ + &Special{}, + } +} +func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special { + customSpecial := new(Special) + if len(m.CursorCustoms(customSpecial)) == 0 { + m.AddCursorFeature(customSpecial).SetLifetime(0) + } + return m.CursorCustom(customSpecial).(*Special) +} +func (p *PluginSpecial) AfterSpin(m intf.Master) { + //cf := m.CursorFeatures(&CustomEliminate{}) + ces := m.CursorCustoms(&CustomEliminate{}) + sp := p.getCustomSpecial(m) + if len(ces) > 0 { + for _, i2 := range ces { + ce := i2.(*CustomEliminate) + wc := make([]float64, len(ce.WinCoins)) + for j := 0; j < len(ce.WinCoins); j++ { + wc[j] = ce.WinCoins[j] / 10000 + } + sp.CustomEliminates = append(sp.CustomEliminates, CustomEliminate{ + LinkPositions: ce.LinkPositions, + AppendSymbols: ce.AppendSymbols, + FormattedSymbols: ce.FormattedSymbols, + LinePays: ce.LinePays, + WinCoins: wc, + MultiStr: ce.MultiStr, + }) + } + } + customFortune := getCustomFortune(m) + sp.FreeStatus = customFortune.FreeStatus + sp.FreeSpinNum = customFortune.FreeSpinNum + sp.FreeNumMax = customFortune.FreeNumMax + sp.FreeNumTrigger = customFortune.FreeNumTrigger + + customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) + customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) + sp.Multi = customMulti.Multi + sp.MultiStr = customMulti.MultiStr + sp.MultiStrVal = customMulti.MultiStrVal + sp.Pay = customPay.Pay + sp.SymbolsAbove = m.CursorFormation().GetSymbolsAbove() + sp.SymbolsBelow = m.CursorFormation().GetSymbolsBelow() +} diff --git a/gamesrv/slotspkg/slots/plugin/init.go b/gamesrv/slotspkg/slots/plugin/init.go index 0d18fc2..2f5dc28 100644 --- a/gamesrv/slotspkg/slots/plugin/init.go +++ b/gamesrv/slotspkg/slots/plugin/init.go @@ -8,6 +8,7 @@ import ( "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortuneox" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortunerabbit" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortunetiger" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/gatesofolympus" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/test" "mongo.games.com/game/gamesrv/slotspkg/slots/reg" ) @@ -20,6 +21,7 @@ func Init() { reg.Register(fortunedragon.Plugins...) reg.Register(fortunemouse.Plugins...) reg.Register(cashmania.Plugins...) + reg.Register(gatesofolympus.Plugins...) reg.Register(test.Plugins...) if global.Mock { @@ -28,6 +30,8 @@ func Init() { reg.Register(fortunerabbit.SimulatorPlugins...) reg.Register(fortunedragon.SimulatorPlugins...) reg.Register(cashmania.SimulatorPlugins...) + reg.Register(gatesofolympus.SimulatorPlugins...) + reg.Register(test.SimulatorPlugins...) } } @@ -39,11 +43,15 @@ func Close() { reg.Deregister(fortunedragon.Plugins...) reg.Deregister(fortunemouse.Plugins...) reg.Deregister(cashmania.Plugins...) + reg.Deregister(gatesofolympus.Plugins...) + reg.Deregister(test.Plugins...) if global.Mock { reg.Deregister(fortuneox.SimulatorPlugins...) reg.Deregister(fortunetiger.SimulatorPlugins...) reg.Deregister(fortunerabbit.SimulatorPlugins...) reg.Deregister(fortunedragon.SimulatorPlugins...) reg.Deregister(cashmania.SimulatorPlugins...) + reg.Deregister(gatesofolympus.SimulatorPlugins...) + reg.Deregister(test.SimulatorPlugins...) } } diff --git a/protocol/cashmania/cashmania.proto b/protocol/cashmania/cashmania.proto index fe0d37e..fc35847 100644 --- a/protocol/cashmania/cashmania.proto +++ b/protocol/cashmania/cashmania.proto @@ -27,7 +27,7 @@ message CashManiaPlayerData { int32 VIP = 11; } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_CASHMANIA_SCCASHMANIAROOMINFO message SCCashManiaRoomInfo { int32 RoomId = 1; //房间id int32 GameFreeId = 2; @@ -42,26 +42,26 @@ message SCCashManiaRoomInfo { string PlayerInfo = 11; } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_CASHMANIA_CSCASHMANIAOP message CSCashManiaOp { int32 OpCode = 1; //操作码 0.spin repeated int64 Params = 2; //操作参数 下注索引编号 } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_CASHMANIA_SCCASHMANIAOP message SCCashManiaOp { int32 OpCode = 1; //操作码 int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 repeated int64 Params = 3; //操作参数 } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_CASHMANIA_SCCASHMANIAROOMSTATE message SCCashManiaRoomState { int32 State = 1; //房间当前状态 int32 SubState = 2; //房间当前子状态 repeated int32 Params = 3; //状态参数 } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_CASHMANIA_SCCASHMANIABILLED message SCCashManiaBilled{ int32 OpRetCode = 1;//0.spin成功 1.spin失败 string GameEndStr = 2; diff --git a/protocol/gatesofolympus/gatesofolympus.proto b/protocol/gatesofolympus/gatesofolympus.proto index ef76923..4d4b9bb 100644 --- a/protocol/gatesofolympus/gatesofolympus.proto +++ b/protocol/gatesofolympus/gatesofolympus.proto @@ -27,7 +27,7 @@ message GatesOfOlympusPlayerData { int32 VIP = 11; } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO message SCGatesOfOlympusRoomInfo { int32 RoomId = 1; //房间id int32 GameFreeId = 2; @@ -42,26 +42,26 @@ message SCGatesOfOlympusRoomInfo { string PlayerInfo = 11; } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP message CSGatesOfOlympusOp { int32 OpCode = 1; //操作码 0.spin repeated int64 Params = 2; //操作参数 下注索引编号 } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSOP message SCGatesOfOlympusOp { int32 OpCode = 1; //操作码 int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 repeated int64 Params = 3; //操作参数 } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMSTATE message SCGatesOfOlympusRoomState { int32 State = 1; //房间当前状态 int32 SubState = 2; //房间当前子状态 repeated int32 Params = 3; //状态参数 } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED message SCGatesOfOlympusBilled{ int32 OpRetCode = 1;//0.spin成功 1.spin失败 string GameEndStr = 2; From d193a0c11cfde59397e9890ad5d908b667c7a8d4 Mon Sep 17 00:00:00 2001 From: tomas Date: Thu, 16 Jan 2025 10:32:49 +0800 Subject: [PATCH 3/9] 111 --- protocol/cashmania/cashmania.pb.go | 10 +++++----- protocol/gatesofolympus/gatesofolympus.pb.go | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/protocol/cashmania/cashmania.pb.go b/protocol/cashmania/cashmania.pb.go index 623796b..9c7b2f8 100644 --- a/protocol/cashmania/cashmania.pb.go +++ b/protocol/cashmania/cashmania.pb.go @@ -208,7 +208,7 @@ func (x *CashManiaPlayerData) GetVIP() int32 { } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_CASHMANIA_SCCASHMANIAROOMINFO type SCCashManiaRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -337,7 +337,7 @@ func (x *SCCashManiaRoomInfo) GetPlayerInfo() string { } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_CASHMANIA_CSCASHMANIAOP type CSCashManiaOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -394,7 +394,7 @@ func (x *CSCashManiaOp) GetParams() []int64 { } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_CASHMANIA_SCCASHMANIAOP type SCCashManiaOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -459,7 +459,7 @@ func (x *SCCashManiaOp) GetParams() []int64 { } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_CASHMANIA_SCCASHMANIAROOMSTATE type SCCashManiaRoomState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -523,7 +523,7 @@ func (x *SCCashManiaRoomState) GetParams() []int32 { return nil } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_CASHMANIA_SCCASHMANIABILLED type SCCashManiaBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/protocol/gatesofolympus/gatesofolympus.pb.go b/protocol/gatesofolympus/gatesofolympus.pb.go index 2d4df78..7ab7bc9 100644 --- a/protocol/gatesofolympus/gatesofolympus.pb.go +++ b/protocol/gatesofolympus/gatesofolympus.pb.go @@ -208,7 +208,7 @@ func (x *GatesOfOlympusPlayerData) GetVIP() int32 { } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO type SCGatesOfOlympusRoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -337,7 +337,7 @@ func (x *SCGatesOfOlympusRoomInfo) GetPlayerInfo() string { } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP type CSGatesOfOlympusOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -394,7 +394,7 @@ func (x *CSGatesOfOlympusOp) GetParams() []int64 { } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSOP type SCGatesOfOlympusOp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -459,7 +459,7 @@ func (x *SCGatesOfOlympusOp) GetParams() []int64 { } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMSTATE type SCGatesOfOlympusRoomState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -523,7 +523,7 @@ func (x *SCGatesOfOlympusRoomState) GetParams() []int32 { return nil } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED type SCGatesOfOlympusBilled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache From 027333b4a213dc42c96d06da479fcb09882653cb Mon Sep 17 00:00:00 2001 From: tomas Date: Thu, 16 Jan 2025 10:47:42 +0800 Subject: [PATCH 4/9] fix --- gamesrv/slotspkg/slots/desc/machine_desc.go | 12 ++++++++++++ .../slotspkg/slots/machine/machine_master_misc.go | 3 +++ 2 files changed, 15 insertions(+) diff --git a/gamesrv/slotspkg/slots/desc/machine_desc.go b/gamesrv/slotspkg/slots/desc/machine_desc.go index 1ab0b43..0ef0437 100644 --- a/gamesrv/slotspkg/slots/desc/machine_desc.go +++ b/gamesrv/slotspkg/slots/desc/machine_desc.go @@ -122,6 +122,18 @@ func (n *MachineDesc) BetChangeList() []float64 { } return lists } +func (n *MachineDesc) GetBetIndexByVal(val float64) []int64 { + betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetChangeList")) + } + for _, list := range betChangeListRows { + if list.BetChangeList == val { + return []int64{list.BetSizeIndex, list.BetLevelIndex} + } + } + return nil +} func (n *MachineDesc) GetVector(choice int64, minRatio, maxRatio float64, isForceWin bool) (int64, []int64) { if vectorIndex := config.GetInt64("slots.vectorIndex"); vectorIndex > 0 { rows := n.DefaultSheet("Vector").([]*structs.Vector) diff --git a/gamesrv/slotspkg/slots/machine/machine_master_misc.go b/gamesrv/slotspkg/slots/machine/machine_master_misc.go index 2580bb4..94b7532 100644 --- a/gamesrv/slotspkg/slots/machine/machine_master_misc.go +++ b/gamesrv/slotspkg/slots/machine/machine_master_misc.go @@ -45,6 +45,9 @@ func (m *Machine) BaseBets() []int64 { func (m *Machine) BetChangeList() []float64 { return m.MachineDesc.BetChangeList() } +func (m *Machine) GetBetIndexByVal(val float64) []int64 { + return m.MachineDesc.GetBetIndexByVal(val) +} func (m *Machine) Choice() int64 { if m.UserData().ForceChoice > 0 { return m.UserData().ForceChoice From 7b19859179a65ed4fa37a42d22b357817360d796 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 16 Jan 2025 17:06:05 +0800 Subject: [PATCH 5/9] =?UTF-8?q?add=20=E6=8E=A8=E5=B8=81=E6=9C=BA=E8=BD=AC?= =?UTF-8?q?=E7=9B=98=E6=B0=B4=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_ACTPushCoin.dat | 21 +- data/DB_ACTPushCoin.json | 106 +- data/DB_GiftCard.dat | Bin 57 -> 57 bytes data/DB_PropExchange.dat | Bin 514 -> 514 bytes data/DB_Task.dat | Bin 7679 -> 7679 bytes model/player.go | 3 + protocol/activity/pushcoin.pb.go | 6 +- protocol/activity/pushcoin.proto | 2 +- protocol/server/pbdata.pb.go | 2986 +++++++++++++++--------------- protocol/server/pbdata.proto | 2 - worldsrv/action_pushcoin.go | 466 ++++- worldsrv/activity_pushcoin.go | 91 + worldsrv/etcd.go | 70 + xlsx/DB_ACTPushCoin.xlsx | Bin 10544 -> 10499 bytes 14 files changed, 2114 insertions(+), 1639 deletions(-) create mode 100644 worldsrv/activity_pushcoin.go diff --git a/data/DB_ACTPushCoin.dat b/data/DB_ACTPushCoin.dat index b8d081d..6780d90 100644 --- a/data/DB_ACTPushCoin.dat +++ b/data/DB_ACTPushCoin.dat @@ -1,11 +1,12 @@ -  - - І -  -  N - І -  - І -  - d / \ No newline at end of file +  +  +  +  +  +  + +   +  + +  \ No newline at end of file diff --git a/data/DB_ACTPushCoin.json b/data/DB_ACTPushCoin.json index 7910aa7..05769c9 100644 --- a/data/DB_ACTPushCoin.json +++ b/data/DB_ACTPushCoin.json @@ -2,75 +2,65 @@ "Arr": [ { "Id": 1, - "Rate": 4000, - "Gain": { - "50018": 5 - }, - "Value": 25000 - }, - { - "Id": 2, - "Rate": 1000, - "Gain": { - "50018": 10 - }, - "Value": 50000 - }, - { - "Id": 3, - "Rate": 450, - "Gain": { - "50018": 20 - }, - "Value": 100000 - }, - { - "Id": 4, - "Rate": 1500, - "Gain": { - "30001": 1 - }, - "Value": 10000 - }, - { - "Id": 5, - "Rate": 750, - "Gain": { - "30001": 5 - }, - "Value": 50000 - }, - { - "Id": 6, - "Rate": 250, - "Gain": { - "100002": 1 - }, - "Value": 100000 - }, - { - "Id": 7, "Rate": 1000, "Gain": { "50017": 1 - }, - "Value": 50000 + } + }, + { + "Id": 2, + "Rate": 750, + "Gain": { + "30001": 5 + } + }, + { + "Id": 3, + "Rate": 500, + "Gain": { + "50018": 20 + } + }, + { + "Id": 4, + "Rate": 4000, + "Gain": { + "50018": 5 + } + }, + { + "Id": 5, + "Rate": 1000, + "Gain": { + "50016": 1 + } + }, + { + "Id": 6, + "Rate": 1000, + "Gain": { + "50018": 10 + } + }, + { + "Id": 7, + "Rate": 1500, + "Gain": { + "30001": 1 + } }, { "Id": 8, - "Rate": 950, + "Rate": 250, "Gain": { - "50016": 1 - }, - "Value": 30000 + "100002": 1 + } }, { "Id": 9, - "Rate": 100, "Gain": { - "30011": 1 - }, - "Value": 100000000 + "77030": 1 + } } ] } \ No newline at end of file diff --git a/data/DB_GiftCard.dat b/data/DB_GiftCard.dat index 96640b07f274cbbbda035ee3e52503c8356a73cb..15600367ff42a73b75826e6378f02a3bde3a8661 100644 GIT binary patch delta 38 pcmcDtoFJjd#&NNYS%6E4lVf2oo4|o-8=15?Aj}q919mG$1^~Z739kSE delta 38 pcmcDtoFJjd$+57PP2j+^jZ8{x92eV|1-P_0AVMv+2JBXh3;@YB39kSE diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 5337ad377045a742e563d96623903bc6b6cbe056..3cd836b05c68e69a581fc037c2f30ff3a70e4d3b 100644 GIT binary patch delta 155 zcmZo-X=0h+$b74fd7_Qf#5if@Yao_Vy%ZbA-H2@6&8V=^)fzs#(-++qW1kpw^D(c5~XA|TS%!fql6YnE!X6H*$DuFJd^FLBq!Lo1JgD#0TqK3aB;bCO!O0AoE*R*xp@Zr4#vsP zxWqQ6aoRINO@KL}p|fi9HZDmfG=qVTnEZgJZSn?gk;zrOM<*ZQ7n~fxmkV{&gXKa{ zdzdGm<13o{m0NIfApeHRlQ{)BxU4xIUttyyn!JEtY_oyDOjh1|K*uveJ;A#9ny4O& t1jKI#T5N&B_kq%^T+SS~Qh}NhrDQf+NU1RcodXi*g8B21+~j=O2>`$^Uj+aF diff --git a/model/player.go b/model/player.go index 5d84259..c39207d 100644 --- a/model/player.go +++ b/model/player.go @@ -564,6 +564,9 @@ type PushCoinData struct { Exchange map[int32]int32 // 兑换次数 兑换id:兑换次数 Dram int // 抽奖次数 Items map[int32]int64 // 道具 + Turn []int32 // 转盘 + Next int32 // 下次中奖位置 + PoolV []int64 // 奖池 } type WelfareData struct { diff --git a/protocol/activity/pushcoin.pb.go b/protocol/activity/pushcoin.pb.go index 57a7254..b9dd293 100644 --- a/protocol/activity/pushcoin.pb.go +++ b/protocol/activity/pushcoin.pb.go @@ -474,7 +474,7 @@ type DrawInfo struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //抽奖id ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具id - ItemNum int32 `protobuf:"varint,3,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 + ItemNum int64 `protobuf:"varint,3,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //道具数量 } func (x *DrawInfo) Reset() { @@ -523,7 +523,7 @@ func (x *DrawInfo) GetItemId() int32 { return 0 } -func (x *DrawInfo) GetItemNum() int32 { +func (x *DrawInfo) GetItemNum() int64 { if x != nil { return x.ItemNum } @@ -825,7 +825,7 @@ var file_protocol_activity_pushcoin_proto_rawDesc = []byte{ 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x60, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x44, 0x72, 0x61, 0x77, diff --git a/protocol/activity/pushcoin.proto b/protocol/activity/pushcoin.proto index 0039a3d..1f961f0 100644 --- a/protocol/activity/pushcoin.proto +++ b/protocol/activity/pushcoin.proto @@ -43,7 +43,7 @@ message ExchangeInfo{ message DrawInfo{ int32 Id = 1; //抽奖id int32 ItemId = 2; //道具id - int32 ItemNum = 3; //道具数量 + int64 ItemNum = 3; //道具数量 } //抽奖信息 diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index d62b55b..9a3e8b8 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -28,10 +28,9 @@ type DB_ACTPushCoin struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Rate int32 `protobuf:"varint,2,opt,name=Rate,proto3" json:"Rate,omitempty"` - Gain map[int64]int64 `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Value int64 `protobuf:"varint,4,opt,name=Value,proto3" json:"Value,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + Rate int32 `protobuf:"varint,2,opt,name=Rate,proto3" json:"Rate,omitempty"` + Gain map[int64]int64 `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *DB_ACTPushCoin) Reset() { @@ -87,13 +86,6 @@ func (x *DB_ACTPushCoin) GetGain() map[int64]int64 { return nil } -func (x *DB_ACTPushCoin) GetValue() int64 { - if x != nil { - return x.Value - } - return 0 -} - type DB_ACTPushCoinArray struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -11266,861 +11258,840 @@ var File_protocol_server_pbdata_proto protoreflect.FileDescriptor var file_protocol_server_pbdata_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xb9, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x41, 0x43, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xa3, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, - 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, - 0x43, 0x6f, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x73, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, - 0x6e, 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, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x41, - 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x75, 0x72, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, - 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x79, 0x70, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, - 0x79, 0x70, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, - 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x31, 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, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x31, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x56, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x41, 0x6e, - 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 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, 0x20, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x62, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 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, 0x44, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x44, 0x65, 0x73, 0x63, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, - 0x6c, 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, - 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf6, 0x03, 0x0a, 0x10, 0x44, 0x42, - 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 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, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x49, - 0x63, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x49, 0x63, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, - 0x4e, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, - 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, - 0x70, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, - 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, - 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x42, 0x6c, 0x61, - 0x63, 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, 0x4f, - 0x64, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x4f, 0x64, 0x64, 0x73, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, - 0x57, 0x68, 0x69, 0x74, 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, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x94, 0x04, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x4a, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, - 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, - 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, - 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, - 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, - 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, - 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, - 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, - 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, - 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, - 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, - 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, - 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, - 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x96, 0x04, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x59, 0x75, 0x4c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, - 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, - 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, - 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, - 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, - 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, - 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, - 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, - 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, - 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, - 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, - 0x61, 0x72, 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, - 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, - 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x11, - 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 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, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x59, 0x75, 0x4c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x44, 0x42, - 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x65, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, 0x65, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x49, 0x0a, - 0x18, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2d, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, - 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x88, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, - 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x61, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x11, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, 0x65, - 0x70, 0x12, 0x30, 0x0a, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x48, - 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x65, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x48, 0x69, 0x67, 0x68, 0x74, 0x53, - 0x74, 0x65, 0x70, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 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, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x48, 0x0a, 0x0c, - 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, + 0x61, 0x69, 0x6e, 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, 0x3f, 0x0a, 0x13, + 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x43, 0x54, + 0x50, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x73, 0x0a, + 0x0a, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 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, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, + 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x31, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, + 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x6f, 0x73, 0x74, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, + 0x6f, 0x73, 0x74, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x79, 0x70, 0x65, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x79, 0x70, 0x65, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x50, 0x72, 0x6f, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x47, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x31, 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, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x31, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x56, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 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, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, + 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x6c, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x62, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, + 0x68, 0x65, 0x6c, 0x6c, 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, 0x44, 0x65, + 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x22, 0x43, + 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x52, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0xf6, 0x03, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, + 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 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, 0x1a, 0x0a, 0x08, + 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x69, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x53, 0x68, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, + 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x63, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x42, 0x61, 0x73, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x65, 0x6c, + 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x68, 0x65, + 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x63, 0x6f, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, + 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x56, + 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x43, 0x61, 0x75, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x74, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x43, 0x0a, 0x15, + 0x44, 0x42, 0x5f, 0x41, 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x41, + 0x72, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x5b, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4f, 0x64, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4f, 0x64, 0x64, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x09, 0x57, 0x68, 0x69, 0x74, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x22, 0x3d, + 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 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, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x57, 0x68, 0x69, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x94, 0x04, + 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, + 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, + 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, + 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, + 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x32, + 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, + 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, + 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, 0x12, 0x1e, + 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, + 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4a, 0x44, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4a, 0x44, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x96, 0x04, + 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, + 0x61, 0x72, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x31, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x31, 0x48, 0x61, 0x6e, + 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, + 0x31, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x31, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x43, 0x61, 0x72, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, + 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x32, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, 0x61, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x32, 0x48, + 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x32, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, + 0x72, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x33, + 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x33, 0x48, 0x61, 0x6e, + 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x33, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x33, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, + 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x34, 0x12, 0x1e, + 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x34, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x34, 0x48, 0x61, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x34, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x34, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x59, 0x75, 0x4c, 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, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x78, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x56, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x46, 0x6c, - 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 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, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x56, 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x44, - 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x39, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x44, 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, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 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, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x37, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x45, - 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, - 0x61, 0x69, 0x6e, 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, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4a, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, - 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x72, 0x6f, 0x6f, 0x6d, 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, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, - 0x6f, 0x6f, 0x6d, 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, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x91, 0x07, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 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, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, - 0x63, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x43, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x43, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x61, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x77, 0x53, - 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x68, 0x6f, 0x77, - 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x44, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, - 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, - 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x52, 0x6f, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, 0x52, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x45, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, 0x45, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x68, 0x61, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x65, - 0x73, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x68, - 0x61, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, - 0x73, 0x68, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x46, 0x69, 0x73, 0x68, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x5a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x5a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x50, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x50, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x73, 0x6f, - 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, - 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, - 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x21, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x73, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x69, 0x73, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, - 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, 0x46, - 0x69, 0x73, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x5f, - 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x46, 0x69, - 0x73, 0x68, 0x4f, 0x75, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x63, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, 0x70, 0x65, 0x61, - 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, - 0x50, 0x61, 0x74, 0x68, 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, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0xed, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, - 0x6f, 0x6c, 0x64, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, - 0x6f, 0x6c, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x33, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x33, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x6f, 0x73, 0x73, - 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x42, 0x6f, - 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, - 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x6f, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, - 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x46, 0x69, - 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xda, 0x03, 0x0a, 0x0c, - 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, - 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x49, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x47, 0x43, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, - 0x43, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x75, 0x74, 0x65, 0x78, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x72, 0x79, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x46, 0x75, 0x72, 0x79, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x46, - 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 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, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, - 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 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, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, 0x1c, - 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, 0x09, - 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, - 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 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, 0x46, - 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, - 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, - 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, - 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x30, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, - 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x52, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, - 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 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, - 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x46, 0x6f, - 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, - 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x1d, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, - 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x08, - 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x72, 0x75, 0x65, - 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, - 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x22, 0x44, 0x42, 0x5f, 0x46, - 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x37, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, - 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xdf, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x47, - 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, - 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, 0x12, 0x1a, 0x0a, - 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x33, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x33, 0x12, - 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x33, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, - 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 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, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x4c, 0x56, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, - 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, - 0x65, 0x44, 0x69, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, - 0x44, 0x69, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x22, - 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, - 0x70, 0x74, 0x63, 0x79, 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, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, - 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfb, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x61, - 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, - 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, - 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, - 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, - 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, - 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, - 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, - 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, - 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf5, 0x11, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, - 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x61, 0x72, 0x64, 0x73, 0x59, 0x75, 0x4c, 0x65, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x44, 0x72, 0x61, 0x77, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, + 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, + 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x49, 0x0a, 0x18, 0x44, 0x42, 0x5f, 0x43, 0x68, + 0x65, 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x2d, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x88, 0x02, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, + 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, + 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x2c, 0x0a, + 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, + 0x65, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x4c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x12, 0x30, 0x0a, 0x13, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x48, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, + 0x65, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x48, 0x69, 0x67, 0x68, 0x74, 0x53, 0x74, 0x65, 0x70, 0x22, 0x47, 0x0a, + 0x17, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 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, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, + 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, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x78, 0x0a, + 0x0c, 0x44, 0x42, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, + 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, + 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x56, 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, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, + 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 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, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, + 0x78, 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, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x37, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, + 0x47, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, 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, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x42, 0x6f, 0x78, 0x47, 0x61, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x4a, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x3f, 0x0a, 0x13, 0x44, + 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x61, 0x73, + 0x68, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x8d, 0x01, 0x0a, + 0x0d, 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 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, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x69, + 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3d, 0x0a, 0x12, + 0x44, 0x42, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 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, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x91, 0x07, 0x0a, 0x07, + 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 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, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, - 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, - 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 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, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, - 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x6b, - 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x65, 0x73, - 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, - 0x77, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, - 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, - 0x4b, 0x69, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, 0x6f, 0x77, 0x65, - 0x72, 0x54, 0x68, 0x61, 0x6e, 0x4b, 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, - 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, - 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x42, - 0x65, 0x74, 0x44, 0x65, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x42, 0x65, 0x74, - 0x44, 0x65, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x6f, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x42, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x69, 0x18, 0x1a, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x02, 0x41, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, - 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x2a, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x03, 0x52, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x52, - 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1f, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, - 0x18, 0x20, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, 0x67, 0x18, 0x21, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, - 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, - 0x69, 0x6e, 0x18, 0x22, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x54, - 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x61, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x61, 0x6d, 0x65, - 0x49, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, - 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x61, - 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, - 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x50, - 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x24, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, - 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, - 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x54, 0x72, 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x2f, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, - 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, - 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, - 0x61, 0x74, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, - 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x18, 0x35, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4a, 0x61, 0x63, - 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1e, 0x0a, - 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x28, 0x0a, - 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x38, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, - 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x49, - 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x18, 0x3b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, - 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, - 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, - 0x28, 0x0a, 0x0f, 0x42, 0x6f, 0x73, 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, - 0x65, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x42, 0x6f, 0x73, 0x73, 0x44, 0x72, - 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, - 0x77, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x1c, 0x0a, - 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x46, - 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x40, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, - 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x43, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x18, 0x44, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x45, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, - 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, - 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x18, - 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x12, - 0x16, 0x0a, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x49, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x41, 0x72, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x61, 0x6d, 0x65, 0x45, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4e, 0x61, 0x6d, 0x65, + 0x45, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x04, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, + 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x68, 0x6f, + 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, + 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x69, 0x65, + 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x69, 0x65, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x65, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x65, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x44, 0x69, 0x65, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x61, + 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, + 0x68, 0x61, 0x6b, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x61, + 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x49, 0x73, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x73, 0x49, 0x64, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x44, 0x69, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x68, 0x61, 0x70, 0x65, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x68, 0x61, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x73, 0x68, 0x65, 0x73, 0x18, 0x1a, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x73, 0x68, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x5a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x5a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, + 0x50, 0x6e, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x73, 0x50, 0x6e, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x73, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x41, 0x69, 0x6d, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x69, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x43, 0x6f, 0x69, 0x6e, 0x22, + 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 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, 0x46, 0x69, 0x73, 0x68, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, + 0x73, 0x68, 0x4f, 0x75, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x63, 0x0a, 0x0b, 0x44, 0x42, + 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, + 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x69, 0x73, + 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x50, 0x61, 0x74, 0x68, 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, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xc1, 0x05, 0x0a, 0x0b, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x22, - 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x12, 0x16, 0x0a, 0x06, - 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, - 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x13, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x43, 0x6f, 0x6d, - 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 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, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 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, 0x39, - 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x87, 0x02, 0x0a, 0x11, 0x44, 0x42, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, - 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, - 0x64, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 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, 0x16, - 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, - 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x75, - 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x75, - 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, - 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, - 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 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, 0x47, 0x61, - 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x64, 0x0a, 0x0e, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x69, 0x64, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, - 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, - 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x12, 0x14, 0x0a, - 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, - 0x74, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x22, 0x3b, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 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, 0x47, 0x61, 0x6d, 0x65, - 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa0, 0x01, 0x0a, 0x14, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 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, + 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, + 0x68, 0x50, 0x61, 0x74, 0x68, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xed, 0x02, 0x0a, 0x0b, 0x44, + 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, + 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, + 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, + 0x64, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x32, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x32, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, + 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, + 0x6d, 0x47, 0x6f, 0x6c, 0x64, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, + 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x47, 0x6f, 0x6c, + 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, + 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x4c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x43, 0x44, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x12, 0x2a, + 0x0a, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, + 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x42, 0x6f, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x46, 0x69, 0x73, 0x68, 0x52, 0x6f, 0x6f, 0x6d, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xda, 0x03, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, + 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x10, 0x0a, 0x03, 0x56, 0x69, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x43, + 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x43, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x48, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x42, 0x6f, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x42, 0x6f, 0x73, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x75, + 0x74, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x78, + 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x75, 0x74, 0x65, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x46, 0x75, 0x72, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x75, + 0x72, 0x79, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, + 0x6c, 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, 0x46, 0x69, 0x73, 0x68, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x92, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, + 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 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, 0x1c, 0x0a, 0x09, 0x52, 0x61, + 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, + 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, + 0x6f, 0x64, 0x64, 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, + 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, + 0x64, 0x73, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, + 0x64, 0x64, 0x73, 0x35, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, + 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 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, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, + 0x47, 0x6f, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x8c, 0x01, + 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, + 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, + 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x1b, + 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x54, 0x75, + 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x30, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, + 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x52, 0x0a, + 0x14, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, + 0x65, 0x69, 0x67, 0x68, 0x74, 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, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, + 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, + 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa1, + 0x01, 0x0a, 0x1d, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, + 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, + 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x22, 0x44, 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, + 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x37, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x46, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x47, 0x6f, 0x64, 0x5f, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0xdf, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x4c, 0x56, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x6f, 0x72, - 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, 0x22, 0x4b, 0x0a, - 0x19, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf9, 0x01, 0x0a, 0x0b, 0x44, - 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, - 0x65, 0x5f, 0x50, 0x65, 0x74, 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, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, - 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x74, 0x61, 0x72, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, + 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x31, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x31, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x31, 0x12, 0x18, 0x0a, + 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x33, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x33, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4c, 0x56, 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, 0x47, 0x61, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x56, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x75, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, + 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x12, 0x1a, 0x0a, + 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, + 0x47, 0x61, 0x6d, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, 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, 0x47, 0x61, 0x6d, + 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x72, 0x75, 0x70, 0x74, 0x63, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xfb, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, + 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, + 0x73, 0x4d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, + 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, + 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, + 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, + 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, + 0x76, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, + 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, + 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, + 0x6c, 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, + 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0xf5, 0x11, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, + 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, 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, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, + 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, + 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 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, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, + 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, + 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x53, 0x75, 0x62, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, + 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x22, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, + 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x4b, 0x69, 0x63, 0x6b, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x4b, + 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x65, 0x74, 0x44, 0x65, 0x63, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x42, 0x65, 0x74, 0x44, 0x65, 0x63, 0x12, 0x10, 0x0a, + 0x03, 0x42, 0x6f, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x42, 0x6f, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x41, 0x69, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x02, 0x41, 0x69, 0x12, + 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x43, 0x68, + 0x69, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x69, + 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1e, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, + 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x18, 0x20, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x6f, 0x62, + 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, 0x67, 0x18, 0x21, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, + 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x52, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x52, + 0x6f, 0x62, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x22, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x0d, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x52, 0x6f, 0x62, 0x6f, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, + 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x26, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x61, 0x6d, 0x65, 0x50, + 0x6c, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, + 0x65, 0x44, 0x69, 0x66, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, + 0x44, 0x69, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, 0x74, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x42, 0x65, + 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x4e, 0x75, 0x6d, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x50, 0x6c, 0x61, + 0x79, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x12, + 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x75, 0x65, 0x4d, 0x61, 0x6e, 0x18, + 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x72, 0x75, 0x65, + 0x4d, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4b, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x18, 0x32, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x65, 0x74, 0x57, 0x61, 0x74, 0x65, 0x72, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x18, 0x33, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x4c, + 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x34, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x65, + 0x18, 0x35, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4c, + 0x69, 0x6e, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x52, 0x61, + 0x74, 0x69, 0x6f, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4a, 0x61, 0x63, 0x6b, 0x70, + 0x6f, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x4a, 0x61, 0x63, 0x6b, 0x70, + 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4a, 0x61, 0x63, + 0x6b, 0x70, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x38, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, + 0x18, 0x39, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, + 0x75, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, + 0x61, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, + 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x12, + 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, + 0x61, 0x78, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x74, 0x75, 0x73, 0x65, + 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x6f, 0x73, + 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x18, 0x3d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x42, 0x6f, 0x73, 0x73, 0x44, 0x72, 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, + 0x42, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x3e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x6c, 0x75, 0x63, 0x74, + 0x75, 0x61, 0x74, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x46, 0x6c, 0x75, 0x63, + 0x74, 0x75, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x46, 0x6c, 0x75, 0x63, 0x74, 0x75, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x46, 0x6c, 0x75, + 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, + 0x69, 0x6f, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, + 0x1a, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, + 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, + 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x72, 0x61, 0x69, 0x6e, + 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x18, 0x44, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x72, + 0x61, 0x69, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x45, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x44, + 0x72, 0x6f, 0x70, 0x18, 0x48, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, + 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x49, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 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, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xc1, 0x05, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x74, 0x65, 0x6d, 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, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, + 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, + 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, + 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x14, + 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, + 0x12, 0x31, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, + 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x75, + 0x6e, 0x64, 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, 0x1a, 0x3b, 0x0a, 0x0d, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x75, 0x6e, 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, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x87, 0x02, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x62, + 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, + 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, + 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x70, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, + 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, + 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, + 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, + 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x22, 0x45, 0x0a, + 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 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, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x52, 0x75, 0x6c, 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, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, + 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 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, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x64, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x13, 0x44, + 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x98, 0x01, 0x0a, + 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x42, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x18, 0x0a, + 0x07, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x12, 0x18, 0x0a, + 0x07, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 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, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xa0, 0x01, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x4d, 0x61, 0x78, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, + 0x6d, 0x65, 0x5f, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xf9, 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, + 0x5f, 0x50, 0x65, 0x74, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, @@ -12133,658 +12104,677 @@ var file_protocol_server_pbdata_proto_rawDesc = []byte{ 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, - 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 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, 0x47, - 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa3, 0x01, - 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x36, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, - 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x74, 0x65, 0x6d, - 0x49, 0x44, 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, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, - 0x78, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf1, 0x02, 0x0a, - 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 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, 0x47, 0x61, + 0x6d, 0x65, 0x5f, 0x50, 0x65, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfc, 0x01, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x68, 0x6f, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, - 0x6f, 0x70, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x61, - 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, - 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, - 0x71, 0x75, 0x69, 0x74, 0x79, 0x1a, 0x3a, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 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, 0x3d, 0x0a, 0x0f, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 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, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 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, 0x47, 0x69, - 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x76, 0x0a, 0x14, 0x44, - 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, - 0x64, 0x64, 0x73, 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, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, - 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, - 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, - 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, - 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, - 0x35, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, - 0x64, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, - 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x12, - 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x47, 0x0a, - 0x17, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, - 0x61, 0x74, 0x65, 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, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4e, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, - 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 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, 0x16, - 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, - 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x9d, 0x01, 0x0a, 0x19, - 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, - 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, - 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, - 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1e, 0x44, - 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x33, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x3a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, - 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x22, 0x3b, - 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 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, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x2d, 0x0a, 0x07, 0x44, - 0x42, 0x5f, 0x4e, 0x61, 0x6d, 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, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x4e, 0x61, 0x6d, 0x65, 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, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, - 0x0a, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 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, 0x22, - 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, - 0x42, 0x6f, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x31, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x4e, - 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 0x6c, 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, 0x22, 0x39, 0x0a, 0x10, 0x44, - 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 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, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, - 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb0, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4e, 0x65, - 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x42, - 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x42, 0x6f, 0x6e, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, - 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x61, - 0x78, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, - 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, - 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 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, 0x78, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, - 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 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, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, - 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x70, 0x44, 0x65, - 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x72, 0x6f, 0x70, 0x44, 0x65, 0x63, - 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 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, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, 0x44, 0x42, 0x5f, - 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 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, 0x61, - 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 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, 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, 0xd8, 0x04, 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, 0x41, 0x0a, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 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, 0x2e, 0x47, - 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x47, 0x6f, 0x6c, - 0x64, 0x45, 0x78, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x18, 0x07, 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, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 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, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1c, - 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x47, 0x6f, - 0x6c, 0x64, 0x45, 0x78, 0x63, 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, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, - 0x64, 0x45, 0x78, 0x63, 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, 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, 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, 0xad, 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, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 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, 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, 0x83, 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, - 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, - 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, - 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, - 0x63, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x44, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, - 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 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, 0x31, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x53, 0x6b, 0x69, 0x6e, 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, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, - 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, - 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, - 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, - 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, - 0x55, 0x70, 0x49, 0x74, 0x65, 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, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, - 0x69, 0x6e, 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, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xfd, 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, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x44, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x05, 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, 0x06, 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, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 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, + 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, 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, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa3, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x47, + 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x44, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x44, 0x1a, 0x39, 0x0a, 0x0b, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 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, 0x37, 0x0a, + 0x0f, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, 0x78, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x69, 0x66, 0x74, 0x42, 0x6f, + 0x78, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xf1, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x69, + 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x44, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x43, + 0x0a, 0x0a, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, + 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x71, 0x75, 0x69, 0x74, + 0x79, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x1a, + 0x3a, 0x0a, 0x0c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 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, 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, 0xce, 0x06, 0x0a, 0x06, 0x44, 0x42, - 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, + 0x61, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 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, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, 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, 0x47, 0x69, 0x66, 0x74, 0x43, 0x61, 0x72, 0x64, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x76, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, + 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4d, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x6f, 0x64, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x6f, 0x64, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x4b, 0x0a, + 0x19, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x49, 0x63, 0x65, 0x41, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x0e, 0x44, + 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 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, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x33, 0x12, + 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x34, 0x12, 0x1c, 0x0a, + 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x52, 0x61, 0x74, 0x65, 0x6f, 0x64, 0x64, 0x73, 0x35, 0x22, 0x3f, 0x0a, 0x13, 0x44, + 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, + 0x6e, 0x64, 0x5f, 0x4f, 0x64, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x88, 0x01, 0x0a, + 0x12, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, + 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x12, + 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x4c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 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, 0x4c, 0x65, 0x67, 0x65, + 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x4e, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 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, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, - 0x77, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x22, 0x43, 0x0a, 0x15, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x9d, 0x01, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, + 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x65, 0x74, + 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x42, 0x65, 0x74, + 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x72, 0x75, 0x65, 0x43, 0x61, 0x6c, + 0x63, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x72, 0x75, + 0x65, 0x43, 0x61, 0x6c, 0x63, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1e, 0x44, 0x42, 0x5f, 0x4c, 0x65, 0x67, 0x65, + 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x33, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x5f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x3a, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, 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, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x6b, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x2d, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 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, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 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, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x4e, 0x61, + 0x6d, 0x65, 0x42, 0x6f, 0x79, 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, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, + 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x6f, 0x79, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x31, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, + 0x6c, 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, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x4e, 0x61, 0x6d, 0x65, + 0x47, 0x69, 0x72, 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, 0x4e, 0x61, 0x6d, 0x65, 0x47, 0x69, 0x72, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xb0, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x31, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x42, 0x6f, 0x6e, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x42, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x41, + 0x64, 0x64, 0x4d, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x41, 0x64, 0x64, + 0x4d, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, + 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 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, 0x78, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 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, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x70, 0x44, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x50, 0x72, 0x6f, 0x70, 0x44, 0x65, 0x63, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, + 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 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, 0x4e, + 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, + 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 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, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, + 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, + 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, 0xd8, 0x04, 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, 0x41, 0x0a, 0x07, 0x47, + 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 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, 0x2e, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1e, + 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x07, 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, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2a, 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, 0x2e, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 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, + 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 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, + 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, 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, 0xad, 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, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, + 0x65, 0x73, 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, 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, 0x83, + 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, + 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, + 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x22, 0x0a, + 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x54, + 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x54, 0x75, + 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, + 0x74, 0x65, 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, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 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, 0x53, 0x6b, + 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, + 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, + 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, + 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, 0x74, 0x65, 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, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 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, + 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xfd, 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, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 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, 0x06, 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, 0x07, 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, 0x08, + 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, 0x09, 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, + 0x0a, 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, 0x0b, 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, 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, 0xce, 0x06, 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, + 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 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, 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, 0x22, 0x7c, 0x0a, 0x0a, 0x44, - 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 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, 0x16, 0x0a, - 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, - 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 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, + 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, 0x22, 0x7c, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, + 0x68, 0x6f, 0x77, 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, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x56, + 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x56, 0x49, 0x50, + 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, + 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 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 fba7d4f..87cfc51 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -13,8 +13,6 @@ message DB_ACTPushCoin { map Gain = 3; - int64 Value = 4; - } message DB_ACTPushCoinArray { diff --git a/worldsrv/action_pushcoin.go b/worldsrv/action_pushcoin.go index db4446a..7552a2b 100644 --- a/worldsrv/action_pushcoin.go +++ b/worldsrv/action_pushcoin.go @@ -1,7 +1,9 @@ package main import ( + "slices" "sort" + "time" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/netlib" @@ -9,19 +11,19 @@ import ( "mongo.games.com/game/common" "mongo.games.com/game/model" "mongo.games.com/game/protocol/activity" + "mongo.games.com/game/protocol/webapi" "mongo.games.com/game/srvdata" ) const ( - PowerMax = 700000 - PowerInit = 400000 + PowerMax = 50000 + PowerInit = 0 ) var PushCoinItemValue = map[int32]int64{ common.ItemIDBigCoin: 50000, common.ItemIDVCard: 10000, common.ItemIDPlum: 30000, - 30011: 100000000, // 话费卡 common.ItemIDCoin1: 5000, common.ItemIDCoin2: 10000, common.ItemIDCoin3: 15000, @@ -52,7 +54,7 @@ func CSPushCoinInfo(s *netlib.Session, packetid int, data interface{}, sid int64 return nil } - if p.WelfData.PushCoin == nil { + if p.WelfData.PushCoin == nil || len(p.WelfData.PushCoin.Turn) == 0 { InitPlayerPushCoin(p) } @@ -105,14 +107,73 @@ func CSPushCoinInfo(s *netlib.Session, packetid int, data interface{}, sid int64 } } - // 转盘 - for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { - for kk, vv := range v.GetGain() { - pack.DrawList = append(pack.DrawList, &activity.DrawInfo{ - Id: v.GetId(), - ItemId: int32(kk), - ItemNum: int32(vv), - }) + pack.DrawList = make([]*activity.DrawInfo, len(p.WelfData.PushCoin.Turn)) + + for k, v := range p.WelfData.PushCoin.Turn { + info := &activity.DrawInfo{ + Id: int32(k), + } + + // 默认奖励 + if slices.Contains(NormaIndex, k) { + d := srvdata.PBDB_ACTPushCoinMgr.GetData(v) + if d != nil { + for kk, vv := range d.GetGain() { + info.ItemId = int32(kk) + info.ItemNum = vv + break + } + pack.DrawList[k] = info + } + continue + } + // 奖池 + if slices.Contains(PoolIndex, k) { + ii := slices.Index(PoolIndex, k) + if v == -1 { + // 从奖池中随机 + var element *webapi.PushCoinPoolElement + var index int32 + cfg := WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig + if ii == 0 { + element, index = PushCoinPoolRandom(cfg.GetPool1().GetPool()) + } else if ii == 1 { + element, index = PushCoinPoolRandom(cfg.GetPool2().GetPool()) + } else if ii == 2 { + element, index = PushCoinPoolRandom(cfg.GetPool3().GetPool()) + } + if index >= 0 && element != nil { + p.WelfData.PushCoin.Turn[k] = index + for _, v := range element.GetAward() { + info.ItemId = v.GetItemId() + info.ItemNum = v.GetItemNum() + break + } + pack.DrawList[k] = info + } + } else { + // 随机过了 + f := func(index int, pool []*webapi.PushCoinPoolElement) { + if index < len(pool) { + for _, v := range pool[index].GetAward() { + info.ItemId = v.GetItemId() + info.ItemNum = v.GetItemNum() + break + } + pack.DrawList[k] = info + } + } + cfg := WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig + if cfg != nil { + if ii == 0 { + f(int(v), cfg.GetPool1().GetPool()) + } else if ii == 1 { + f(int(v), cfg.GetPool2().GetPool()) + } else if ii == 2 { + f(int(v), cfg.GetPool3().GetPool()) + } + } + } } } @@ -149,6 +210,18 @@ func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid i return nil } + // 活动时间检测 + now := time.Now() + cfg := WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig + if cfg == nil { + logger.Logger.Warn("CSPushCoinPlayerOp cfg == nil") + return nil + } + if cfg.GetOn() != common.On || now.Unix() < common.StrTimeToTs(cfg.GetStartTime()) || now.Unix() >= common.StrTimeToTs(cfg.GetEndTime()) { + logger.Logger.Warn("CSPushCoinPlayerOp cfg.GetOn() == common.Off or end") + return nil + } + pack := &activity.SCPushCoinPlayerOp{ OpRetCode: activity.OpResultPushCoinCode_OPRC_PushCoin_Error, OpCode: msg.GetOpCode(), @@ -176,6 +249,8 @@ func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid i PushCoinAddValue(p, map[int32]int64{ int32(msg.GetOpParam()): 1, }) + // 增加水池 + PushCoinPoolMangerInstance.Add(p.Platform, item.GetNum()) case activity.OpCodes_OP_Gain: @@ -209,12 +284,26 @@ func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid i } } else { // 无效区 + for _, v := range msg.GetOpItem() { + id := v.GetItemId() + val := v.GetItemNum() + if p.WelfData.PushCoin.Items[id] < val { + logger.Logger.Errorf("获得道具太多,无效区: %d, %d", p.WelfData.PushCoin.Items[id], val) + goto here + } + } } for _, v := range msg.GetOpItem() { // 增加能量条 - PushCoinAddPower(p, PushCoinItemValue[v.GetItemId()]*v.GetItemNum()) + val := GetPushCoinValue(p.Platform, v.GetItemId()) + if val <= 0 { + logger.Logger.Errorf("推币机价值查询bug itemId:%v", v.GetItemId()) + } + logger.Logger.Debugf("推币机,掉落 ItemId:%v ItemNum:%v Value:%v", v.GetItemId(), v.GetItemNum(), val) + PushCoinAddPower(p, val*v.GetItemNum()) + // 减少桌面道具 PushCoinAddValue(p, map[int32]int64{v.GetItemId(): -v.GetItemNum()}) } @@ -284,7 +373,6 @@ func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid i }) if k == common.ItemIDShake { p.WelfData.PushCoin.Shake += int32(v) - continue } gain = append(gain, &model.Item{ ItemId: int32(k), @@ -334,6 +422,13 @@ func InitPlayerPushCoin(p *Player) { common.ItemIDCoin1: 50, common.ItemIDPlum: 1, }, + Turn: []int32{ // 转盘表数据id + 1, 4, -1, + 3, -1, 2, + -1, 5, 9, + }, + Next: -1, + PoolV: []int64{-1, -1, -1}, } } @@ -346,10 +441,14 @@ func PushCoinAddPower(p *Player, value int64) { if p.WelfData.PushCoin.Power > PowerMax { p.WelfData.PushCoin.Power = PowerMax } - p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyPowerLine), &activity.NotifyPowerLine{ + + pack := &activity.NotifyPowerLine{ PowerLine: p.WelfData.PushCoin.Power, PowerLineMax: PowerMax, - }) + } + + p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyPowerLine), pack) + logger.Logger.Tracef("刷新能量条: %v", pack) if value <= 0 { return } @@ -363,62 +462,196 @@ func PushCoinDraw(p *Player) { return } p.WelfData.PushCoin.Power = 0 - var index int32 = -1 + + var draw *activity.DrawInfo + var draw1 []*activity.DrawInfo + // 奖池返奖 + f1 := func() bool { + pool := PushCoinPoolMangerInstance.PlatformConfig[p.Platform] + if pool == nil { + return false + } + + // fp 奖池返奖,返回是否成功 + fp := func(i int, poolInfo *PushCoinPoolInfo) bool { + // 是否返奖 + if poolInfo == nil || poolInfo.Remain <= 0 { + return false + } + // 玩家奖池没有返过奖 + if len(p.WelfData.PushCoin.PoolV) > i && p.WelfData.PushCoin.PoolV[i] < poolInfo.Version { + cfg := WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig + poolIndex := p.WelfData.PushCoin.Turn[PoolIndex[i]] + value := int64(0) // 奖品价值 + if int(poolIndex) < len(cfg.GetPool1().GetPool()) { + e := cfg.GetPool1().GetPool()[poolIndex] + if e != nil { + for _, v := range e.GetAward() { + iv, ok := PushCoinItemValue[v.GetItemId()] + if ok { + value = v.GetItemNum() * iv + } else { + value = v.GetItemNum() * e.GetValue() // 目前只有实物是自定义的价值 + } + break + } + } + } + if value > 0 { + // 价值是否足够 + if poolInfo.Remain-value < 0 { + return false + } + // 扣除价值 + poolInfo.Remain -= value + // 刷新玩家奖池版本 + p.WelfData.PushCoin.PoolV[i] = poolInfo.Version + // 下次中奖位置 + p.WelfData.PushCoin.Next = int32(PoolIndex[i]) + logger.Logger.Tracef("下次中奖池:%v", p.WelfData.PushCoin) + return true + } + } + return false + } + + // 奖池1 + if fp(0, pool.Pool1) { + return true + } + // 奖池2 + if fp(1, pool.Pool2) { + return true + } + // 奖池3 + if fp(2, pool.Pool3) { + return true + } + return false + } + switch p.WelfData.PushCoin.Dram { case 0: // 必中大金币 - for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { - for kk := range v.GetGain() { - if kk == common.ItemIDBigCoin { - index = v.GetId() - break - } - } - } - - case 1: - // 必中v卡 - for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { - for kk := range v.GetGain() { - if kk == common.ItemIDVCard { - index = v.GetId() - break - } - } - } + draw = PushCoinNormalRandom(common.ItemIDBigCoin) + draw.Id = 0 // 查表 + // 下次必中v卡 + p.WelfData.PushCoin.Next = 1 // 查表 default: - var n int32 - rand := common.RandInt(10000) - for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr { - if rand < int(n+v.GetRate()) { - index = v.GetId() - break + // 使用预生成结果 + if p.WelfData.PushCoin.Next >= 0 { + k := p.WelfData.PushCoin.Next + val := p.WelfData.PushCoin.Turn[p.WelfData.PushCoin.Next] + if slices.Contains(NormaIndex, int(k)) { + // 普通奖品 + for kk, vv := range srvdata.PBDB_ACTPushCoinMgr.GetData(val).GetGain() { + draw = &activity.DrawInfo{ + Id: k, + ItemId: int32(kk), + ItemNum: vv, + } + logger.Logger.Tracef("中奖普通奖品:%v", draw) + } + } + if slices.Contains(PoolIndex, int(k)) { + f := func(i int, list []*webapi.PushCoinPoolElement) { + // 本次奖品 + if i < len(list) { + for _, v := range list[i].GetAward() { + draw = &activity.DrawInfo{ + Id: p.WelfData.PushCoin.Next, + ItemId: v.GetItemId(), + ItemNum: v.GetItemNum(), + } + logger.Logger.Tracef("中奖奖池奖品:%v", draw) + break + } + } else { + logger.Logger.Errorf("奖池抽奖bug: %d, %d, %d", k, i, len(list)) + } + // 刷新奖池 + e, index := PushCoinPoolRandom(list) + if e != nil { + p.WelfData.PushCoin.Turn[k] = index + for _, v := range e.GetAward() { + draw1 = append(draw1, &activity.DrawInfo{ + Id: k, + ItemId: v.GetItemId(), + ItemNum: v.GetItemNum(), + }) + logger.Logger.Tracef("刷新奖池奖品:%v", draw) + break + } + } else { + logger.Logger.Errorf("奖池刷新bug: %d, %d, %d", k, i, len(list)) + } + } + // 水池奖品 + var poolElements []*webapi.PushCoinPoolElement + switch slices.Index(PoolIndex, int(k)) { + case 0: + poolElements = WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig.GetPool1().GetPool() + case 1: + poolElements = WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig.GetPool2().GetPool() + case 2: + poolElements = WelfareMgrSington.GetConfig(p.Platform).PushCoinConfig.GetPool3().GetPool() + } + f(int(val), poolElements) + } + } + + // 下次中奖位置 + // 奖池返奖 或 普通抽奖 + if !f1() { + // 普通抽奖 + index := int(p.WelfData.PushCoin.Next) // 奖品位置 + e := PushCoinNormalRandom(0) + if e != nil { + var has bool + for k, v := range p.WelfData.PushCoin.Turn { + if slices.Contains(NormaIndex, k) && v == e.GetId() { + has = true + index = k + break + } + } + if !has { + // 替换 + if slices.Contains(PoolIndex, index) { + // 找一个普通奖品位置 + index = NormaIndex[common.RandInt(len(NormaIndex[:len(NormaIndex)-1]))] + } + draw1 = append(draw1, &activity.DrawInfo{ + Id: int32(index), + ItemId: e.GetItemId(), + ItemNum: e.GetItemNum(), + }) + p.WelfData.PushCoin.Turn[index] = e.GetId() + } + p.WelfData.PushCoin.Next = int32(index) + logger.Logger.Tracef("下次中普通奖品:index:%v ItemId:%v Num:%v", index, e.GetItemId(), e.GetItemNum()) } - n += v.GetRate() } } + p.WelfData.PushCoin.Dram++ - if index >= 0 { - d := srvdata.PBDB_ACTPushCoinMgr.GetData(index) - if d != nil { - pack := &activity.NotifyDrawInfo{ - Draw: &activity.DrawInfo{ - Id: d.GetId(), - }, - } - for k, v := range d.GetGain() { - pack.Draw.ItemId = int32(k) - pack.Draw.ItemNum = int32(v) - PushCoinAddValue(p, map[int32]int64{int32(k): v}) - } - if pack.Draw.ItemId > 0 { - p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyDrawInfo), pack) - // 增加能量条 - PushCoinAddPower(p, 0) - } + if draw != nil { + pack := &activity.NotifyDrawInfo{ + Draw: draw, } + if len(draw1) > 0 { + pack.Info = draw1 + } + + PushCoinAddValue(p, map[int32]int64{draw.GetItemId(): draw.GetItemNum()}) + + p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyDrawInfo), pack) + logger.Logger.Trace("NotifyDrawInfo: ", pack) + + // 刷新能量条 + PushCoinAddPower(p, 0) } } @@ -432,12 +665,111 @@ func PushCoinAddValue(p *Player, item map[int32]int64) { p.WelfData.PushCoin.Items = make(map[int32]int64) } for k, v := range item { - if v > 0 { - switch k { - default: - p.WelfData.PushCoin.Items[k] += v - } - } + p.WelfData.PushCoin.Items[k] += v + logger.Logger.Tracef("桌面数据 ItemId:%v Change:%v Num:%v", k, v, p.WelfData.PushCoin.Items[k]) } } } + +func PushCoinPoolRandom(pool []*webapi.PushCoinPoolElement) (*webapi.PushCoinPoolElement, int32) { + var total int32 + for _, v := range pool { + if v.GetOn() == common.On { + total += v.GetWeight() + } + } + if total <= 0 { + return nil, -1 + } + var n int32 + rn := int32(common.RandInt(int(total))) + for k, v := range pool { + if v.GetOn() == common.On { + n += v.GetWeight() + if rn < n { + return v, int32(k) + } + } + } + return nil, -1 +} + +func PushCoinNormalRandom(itemId int64) *activity.DrawInfo { + var total int32 + var index = int32(-1) // 随机id + var n int32 + if itemId == 0 { + // 随机抽奖 + for _, vv := range srvdata.PBDB_ACTPushCoinMgr.Datas.GetArr() { + total += vv.GetRate() + } + + rn := int32(common.RandInt(int(total))) + for _, vv := range srvdata.PBDB_ACTPushCoinMgr.Datas.GetArr() { + n += vv.GetRate() + if rn < n { + index = vv.GetId() + break + } + } + if index >= 0 { + for kk, vv := range srvdata.PBDB_ACTPushCoinMgr.GetData(index).GetGain() { + draw := &activity.DrawInfo{ + Id: index, + ItemId: int32(kk), + ItemNum: vv, + } + return draw + } + } + return nil + } + // 前两次必中 + for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.GetArr() { + for kk, vv := range v.GetGain() { + if kk == itemId { + draw := &activity.DrawInfo{ + ItemId: int32(kk), + ItemNum: vv, + } + return draw + } + } + } + return nil +} + +// GetPushCoinValue 查询物品价值,没有的是后台配置的价值 +func GetPushCoinValue(plt string, itemId int32) int64 { + val, ok := PushCoinItemValue[itemId] + if ok { + return val + } + cfg := WelfareMgrSington.GetConfig(plt).PushCoinConfig + if cfg != nil { + f := func(list []*webapi.PushCoinPoolElement) bool { + for _, vv := range list { + for _, vvv := range vv.GetAward() { + if vvv.GetItemId() == itemId { + val = vv.GetValue() + return true + } + } + } + return false + } + for { + if f(cfg.GetPool1().GetPool()) { + break + } + if f(cfg.GetPool2().GetPool()) { + break + } + if f(cfg.GetPool3().GetPool()) { + break + } + break + } + } + return val +} diff --git a/worldsrv/activity_pushcoin.go b/worldsrv/activity_pushcoin.go new file mode 100644 index 0000000..ec731d3 --- /dev/null +++ b/worldsrv/activity_pushcoin.go @@ -0,0 +1,91 @@ +package main + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/protocol/webapi" + "mongo.games.com/goserver/core/logger" + "time" + + "mongo.games.com/goserver/core/module" +) + +var ( + NormaIndex = []int{0, 1, 3, 5, 7, 8} // 普通奖位置 + PoolIndex = []int{2, 4, 6} // 水池位置 +) + +var PushCoinPoolMangerInstance = &PushCoinPoolManager{ + PlatformConfig: map[string]*PushCoinPool{}, +} + +func init() { + module.RegisteModule(PushCoinPoolMangerInstance, time.Hour, 0) +} + +type PushCoinPool struct { + Pool1 *PushCoinPoolInfo + Pool2 *PushCoinPoolInfo + Pool3 *PushCoinPoolInfo +} + +type PushCoinPoolInfo struct { + CurCoin int64 // 当前金币 + Remain int64 // 剩余金币 + Version int64 // 版本号, 达到上限后更新 +} + +type PushCoinPoolManager struct { + PlatformConfig map[string]*PushCoinPool +} + +func (p *PushCoinPoolManager) ModuleName() string { + return "PushCoinPoolManager" +} + +func (p *PushCoinPoolManager) Init() { + // 加载水池 +} + +func (p *PushCoinPoolManager) Update() { + +} + +func (p *PushCoinPoolManager) Shutdown() { + // 保存水池 + module.UnregisteModule(p) +} + +func (p *PushCoinPoolManager) Add(platform string, val int64) { + cfg, ok := p.PlatformConfig[platform] + if !ok { + cfg = &PushCoinPool{ + Pool1: &PushCoinPoolInfo{}, + Pool2: &PushCoinPoolInfo{}, + Pool3: &PushCoinPoolInfo{}, + } + p.PlatformConfig[platform] = cfg + } + + conf := WelfareMgrSington.GetConfig(platform).PushCoinConfig + if conf.GetOn() != common.On { + return + } + + f := func(i int, poolInfo *PushCoinPoolInfo, pool *webapi.PushCoinPool, rate float64) { + if pool != nil && pool.GetOn() == common.On { + change := int64(float64(val) * rate) + poolInfo.CurCoin += change + if poolInfo.CurCoin >= pool.GetUpperLimit() { + poolInfo.Remain = pool.GetUpperLimit() + poolInfo.CurCoin -= pool.GetUpperLimit() + poolInfo.Version++ + } + logger.Logger.Tracef("推币机 水池%v PoolInfo:%+v Change:%v Value:%v Rate:%v Limit:%v", + i, poolInfo, change, val, rate, pool.GetUpperLimit()) + } + } + + f(1, cfg.Pool1, conf.GetPool1(), 0.05) + f(2, cfg.Pool2, conf.GetPool2(), 0.005) + f(3, cfg.Pool3, conf.GetPool3(), 0.001) +} diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index 4f149cf..3960b09 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -119,6 +119,76 @@ func init() { etcd.Register(etcd.KeyActConsume, webapi.ConsumeConfig{}, platformConfigEvent) // 推金币活动配置 etcd.Register(etcd.KeyActPushCoin, webapi.PushCoinConfig{}, platformConfigEvent) + + //WelfareMgrSington.UpdatePushCoinConfig(&webapi.PushCoinConfig{ + // Platform: "1", + // On: 1, + // StartTime: "2024-01-01 00:00:00", + // EndTime: "2026-01-01 00:00:00", + // Pool1: &webapi.PushCoinPool{ + // On: 1, + // Pool: []*webapi.PushCoinPoolElement{ + // { + // On: 1, + // Tp: 0, + // Award: []*webapi.ItemInfo{ + // { + // ItemId: common.ItemIDCoin1, + // ItemNum: 10, + // }, + // }, + // Weight: 100, + // }, + // }, + // UpperLimit: 100000, + // }, + // Pool2: &webapi.PushCoinPool{ + // On: 1, + // Pool: []*webapi.PushCoinPoolElement{ + // { + // On: 1, + // Tp: 0, + // Award: []*webapi.ItemInfo{ + // { + // ItemId: common.ItemIDCoin2, + // ItemNum: 10, + // }, + // }, + // Weight: 100, + // }, + // }, + // UpperLimit: 100000, + // }, + // Pool3: &webapi.PushCoinPool{ + // On: 1, + // Pool: []*webapi.PushCoinPoolElement{ + // { + // On: 1, + // Tp: 0, + // Award: []*webapi.ItemInfo{ + // { + // ItemId: common.ItemIDCoin1, + // ItemNum: 10, + // }, + // }, + // Weight: 100, + // }, + // { + // On: 1, + // Tp: 1, + // Award: []*webapi.ItemInfo{ + // { + // ItemId: 30011, + // ItemNum: 1, + // }, + // }, + // Weight: 100, + // Value: 100000, + // }, + // }, + // UpperLimit: 100000, + // }, + //}) } func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { diff --git a/xlsx/DB_ACTPushCoin.xlsx b/xlsx/DB_ACTPushCoin.xlsx index fc1ee8f897e30169a613e24c738bd33cb4f4e1a3..c8d2e35731dd168abb0b85bd4565ef0a1a9f2fa5 100644 GIT binary patch delta 1846 zcmV-62g&%bQiD>ko&kUVM4drA0RR9y0ssIJ0001FZ(~q$Z*X%jV{dY0E_iKheUU*< z!!Qs<_ek6!@;N=O8O*je^8jffq~Hl#fb7vWA^0XI!U5s0Pz|GfD# zlP|Wajo!ezrqczY2|*EP(aA>F1$wBK@f=0Yb1iw>X(-SR99n;r=V!SvOmr6RY-hmw z23!-oG?E60HXG4sT zpW>(0?fo!n+~{Ndt^}ZRzn_*nzY42dHz2Qe<>$wHj(>mWQVhYEu)saYD70dSU`OR~ zc70PVQJIo-7LzQdX+pzb4Icg;t@~|xqqI! z`~px*0|b-rB^t9B1DF90HC6Q|Wdi^J!U+HX7yyzf6@M`(C*jo*d_)8mHLvv9DL@?`1rEEe=TzFLb#x; zj8Wu=$RlOSGFl#E^y}y2%`NhT#ASwaR+1RK5rOVEpFgc@#$UvV5a|I!DPnYzvbqZb zk)B9_g@4Z~QUY>dyucD(`7sa`CpgoCiaeNv;UXw7EsqE!v|*L2VCB?VqywUn zW)+yfoU0okuAsO*&8d9Tb$42ayFg=9s7B}SXIo`EMG zY}OftE~=^bI61`VA-YSV2mzo!`AtbJI?tZO`)87qRFVw5f;{DcJ!3EG!>Ss;a{-XTq3^K_rDIUlump17Bh13u?+$MQcklcyN1&^7jh z)qh_IJ)R^8n)-9(v9ru+NxqQ_$zec@rYcd&a$tpDub|-b3Gxd3s{d=l7%lwi5{9R` zQB4}%3Oi`p41)i5(Czr3z$Db=sjhFFM7#(J<^4y#o@fZ(;LjeMuKvTFlX)%y#W^t3f?oHf^6wxhA@t_ay*_m2hj*7ztf$ zWidwrcxgn!TubP8+(hStE&zv>5cTvW4%jx<5wRE*vCtxVQ@d@V!?^&GRzmaodC^gC(M9tdL3Hpf383 zL*ck-_FS{uyE|mNcHuiEt*ytjsDBCfQtuRNE3EHX7wwzYoJnTWuJDn3$NWf3;pOB2 zl%Wq^Ta zf{A0C!mUPMW@1z^E;*)BonMCRQM0IX)84)|{{c`-0|XQR000O8hfd-^K0$t063j-ZSi1{AWpqAbWw#{B9=kMd|7elX9a1om}ivxY1zso}UKD{rqArz1h0=6QP z{~{HW$RsKO5R>yHGXXS{Cnb{!|3sZZJOKazJCnmDPyzds6ed6iRs;Y5cx*3|3@99v zcP0)2T$6?-HUWc^y(TRiV~}WCQ~>}0-U0vs6aWAK000000RSKX003^21t&oP1(Qc7 zIsqP&f+scsMU%NFKmzm=llvz-0e6!(C?Om*RrM!j0{{TR2><{X000000000103ZMW k0HXwwDHW56C@%s&2$Crklg}tG0WOpOC@Th9Bme*a06IxVdH?_b delta 1924 zcmV-~2YdK~Qm|66o&kT(^QTZd0RR9*0ssIJ0001FZ(~q$Z*X%jV{dY0E_iKheUZ^l z!ypuf?@fG%hWi$1-KM1NlDX{4B_`Hryd!Y7H5N*M+3oFRwW~84FUkM&@ts3HKd2`9 z0PE^j7lTpY_KfC1;DMYD$-|ITwMdP62Ga1SyHZ?Z4LbMlhi zFRK+QQ<7#enZz`$C}niQ2zkr#xi#D`N1z%c{wGdiLSu4Qkr~To>}GmFJOj$!`{%!x zpR@Y{wgCzZo5mcX0{{Sf3X{78AAgqHZreBzhVK{HcMy1A9ej)f%S9|TXn|cIXxi>I zBhfYyNz{_GmG&Ej|!)tENODBSbk(O`!IElAFab4?m)L^!Fi1b%U%t+=YamA|D| za@@gOuRJ5f+;|4PWO2h+(}FX>4l*oQ9T~LSS#F|@GtauX5t>L=jrr@jeFwrVOzwqN zRDRdfy#f(wb-Jz#yH_# z{f8t$;Lx9Zqofm~=Ro3@XHtv2$q__*3gu~SQkqxWdJ~907yJ%Zh{o{{~@eK2!HBpE&8z12!1yhYXTE; zCz^qXW$=oZ_fZal9_51*W;5=jXg%Vy3uvwRypG%(>-r`|pkeX6yym@>gXa*a{quGS z-)RD`@At+EJ?A9|G%SIa*4zaBtVrtLdquEC+Gqs3yiA`M>qMu5h-L6nmzyZJRZWqc zFgsr-MF|`_CVv3Itk#mZF!#NAbCV?{V-dZH<$c)Psgz-K1MPS&B>W+#AQKJgt=&EB zqKX~z=#>&2BS@#r)|HlJk^7;b1snUHW@+jN}Ep7>ara$0J2sLJ$!f{NW z!cx>SE;*)BZNEnBQLCtJe>gVo{sXf<2tEpbkMn8E_iKhZIVw*!!Q`e?}Fc<&n6x2} z6G}YZp;UwcG!bgRkoXK3Zj>@%0}}%yW&VCj*ZzQGao@3ov*}fQCKfCx91Bj-3~v!Z zO9vY&xDt|BbL^5J{k1ffwV8Y$$ic9GxFdf)`Ml~)vi^9~ll`;&^>&h-7e(^vPTm|B z>G)$PkFp}IBZQmPdO60ZoSPb7LMo?4HmYt8n#(|6-`Vmh%HpO9KQH000080EbTEK%_5cp5y_u2o!t} z0ppW}BtQf`AOHZ9UnUll-y|9VVUzkKlL^lAr%*cq002ajmL*UD`jh7+KnGO>004Mw zFO%OV9Fs~W4graiStd3Cu#=D`EgO-}vv5TL005Z+000yK0000000031AOHXWs*~6z zK>;$88YemdT9Z{LHUfbRlVJ=MlcFao0wENW&L=woc9RMyAsh^w#vGyp004Um000;O z0000000031AOHXWq6Cw_1R9fJC@KPa2$R1A6_alW1(T;JDgtT>lfMKNlV1u2lkF%F K28Sd700029^jClY From f5b67feeb4342abb1f02ba14b26f1563fa9dad60 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 16 Jan 2025 17:11:06 +0800 Subject: [PATCH 6/9] update go version --- go.mod | 21 ++++++++++++--------- go.sum | 34 ++++++++++++++++------------------ 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 4c38e80..2ecd62e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module mongo.games.com/game -go 1.22.5 +go 1.23.0 + +toolchain go1.23.3 replace mongo.games.com/goserver => ../goserver @@ -31,8 +33,8 @@ require ( github.com/zeromicro/go-zero v1.7.3 go.etcd.io/etcd/client/v3 v3.5.16 go.mongodb.org/mongo-driver v1.17.1 - golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c - google.golang.org/protobuf v1.35.1 + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 + google.golang.org/protobuf v1.36.2 gorm.io/gorm v1.25.12 mongo.games.com/goserver v0.0.0-00010101000000-000000000000 ) @@ -45,7 +47,7 @@ require ( github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davidminor/uint128 v0.0.0-20141227063632-5745f1bf8041 // indirect github.com/dlclark/regexp2 v1.10.0 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-sql-driver/mysql v1.8.1 // indirect github.com/gocarina/gocsv v0.0.0-20221105105431-c8ef78125b99 // indirect @@ -58,12 +60,12 @@ require ( github.com/innopals/sls-logrus-hook v0.0.0-20190808032145-2fe1d6f7ce00 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/klauspost/compress v1.17.9 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect github.com/klauspost/reedsolomon v1.12.4 // indirect github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect github.com/lestrrat-go/strftime v1.1.0 // indirect github.com/magiconair/properties v1.8.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/montanaflynn/stats v0.7.1 // indirect @@ -92,6 +94,7 @@ require ( github.com/xdg-go/scram v1.1.2 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect github.com/xtaci/kcp-go v5.4.20+incompatible // indirect + github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 // indirect github.com/xuri/efp v0.0.0-20241211021726-c4e992084aa6 // indirect github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 // indirect github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect @@ -103,11 +106,11 @@ require ( go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/multierr v1.9.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.31.0 // indirect + golang.org/x/crypto v0.32.0 // indirect golang.org/x/image v0.18.0 // indirect - golang.org/x/net v0.33.0 // indirect + golang.org/x/net v0.34.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.7.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect diff --git a/go.sum b/go.sum index ff0a805..365e6ba 100644 --- a/go.sum +++ b/go.sum @@ -68,8 +68,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -179,8 +179,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= github.com/klauspost/reedsolomon v1.12.4 h1:5aDr3ZGoJbgu/8+j45KtUJxzYm8k08JGtB9Wx1VQ4OA= github.com/klauspost/reedsolomon v1.12.4/go.mod h1:d3CzOMOt0JXGIFZm1StgkyF14EYr3xneR2rNWo7NcMU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -204,10 +204,9 @@ github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -439,11 +438,11 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY= -golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/image v0.0.0-20200922025426-e59bae62ef32/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.13.0/go.mod h1:6mmbMOeV28HuMTgA6OSRkdXKYw/t5W9Uwn2Yv1r3Yxk= golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ= @@ -475,8 +474,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -513,11 +512,10 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -572,8 +570,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 0e5c0470b7096242fdccd850f7541b6d47b932fc Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 16 Jan 2025 17:55:32 +0800 Subject: [PATCH 7/9] =?UTF-8?q?modify=20=E6=8E=A8=E5=B8=81=E6=9C=BA?= =?UTF-8?q?=E8=83=BD=E9=87=8F=E5=88=9D=E5=A7=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_pushcoin.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/worldsrv/action_pushcoin.go b/worldsrv/action_pushcoin.go index 7552a2b..0a194ec 100644 --- a/worldsrv/action_pushcoin.go +++ b/worldsrv/action_pushcoin.go @@ -16,8 +16,8 @@ import ( ) const ( - PowerMax = 50000 - PowerInit = 0 + PowerMax = 700000 + PowerInit = 400000 ) var PushCoinItemValue = map[int32]int64{ @@ -536,7 +536,7 @@ func PushCoinDraw(p *Player) { draw = PushCoinNormalRandom(common.ItemIDBigCoin) draw.Id = 0 // 查表 // 下次必中v卡 - p.WelfData.PushCoin.Next = 1 // 查表 + p.WelfData.PushCoin.Next = 5 // 查表 default: // 使用预生成结果 From e36757d9fa584d7e1ac0a5458518245de36806b0 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 17 Jan 2025 14:07:10 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/loginlog.go | 6 +++++- mq/keyconf.go | 1 + worldsrv/action_login.go | 6 ++++++ worldsrv/mq.go | 1 + worldsrv/task_login.go | 4 ++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/model/loginlog.go b/model/loginlog.go index 6a16581..6d3ef96 100644 --- a/model/loginlog.go +++ b/model/loginlog.go @@ -55,7 +55,7 @@ type LoginLog struct { BuildVersion string AppChannel string DeviceOS string - ClientVer int32 + ClientVer int32 } func NewLoginLog(snId, logType int32, tel, ip, platform, channel, promoter, packageId, city string, @@ -101,6 +101,10 @@ func NewLoginLog(snId, logType int32, tel, ip, platform, channel, promoter, pack return cl } +type LoginErrorLog struct { + TypeId int32 +} + //func InsertLoginLogs(logs ...*LoginLog) (err error) { // if rpcCli == nil { // logger.Logger.Error("model.InsertLoginLogs rpcCli == nil") diff --git a/mq/keyconf.go b/mq/keyconf.go index 5e13415..7638967 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -21,6 +21,7 @@ const ( BackOnlineGame = "back_onlinegame" BackRedPacket = "back_redpacket" NianPlayerRank = "log_nianplayerrank" + LoginError = "log_loginerror" ) // go后端 diff --git a/worldsrv/action_login.go b/worldsrv/action_login.go index 2ac86b9..bf5d3d4 100644 --- a/worldsrv/action_login.go +++ b/worldsrv/action_login.go @@ -5,6 +5,7 @@ import ( "encoding/hex" "fmt" "io" + "mongo.games.com/game/mq" "strconv" "time" @@ -61,6 +62,11 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } proto.SetDefaults(sclogin) common.SendToGate(sid, int(login_proto.LoginPacketID_PACKET_SC_LOGIN), sclogin, s) + logger.Logger.Trace("CSLoginHandler Process send ", sclogin) + log := &model.LoginErrorLog{ + TypeId: int32(code.Enum().Number()), + } + mq.Write(log) } sendSCDisconnect := func(code int32) { diff --git a/worldsrv/mq.go b/worldsrv/mq.go index e2ab918..c4b27ee 100644 --- a/worldsrv/mq.go +++ b/worldsrv/mq.go @@ -36,6 +36,7 @@ func init() { mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryLog, Data: &model.LotteryLog{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankNian, Data: &model.NianInfo{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.NianPlayerRank, Data: &model.NianPlayerRankLog{}}) + mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.LoginError, Data: &model.LoginErrorLog{}}) } func init() { diff --git a/worldsrv/task_login.go b/worldsrv/task_login.go index 2840aa3..509279f 100644 --- a/worldsrv/task_login.go +++ b/worldsrv/task_login.go @@ -433,4 +433,8 @@ func SCLogin(s *netlib.Session, sid int64, csLogin *login_proto.CSLogin, acc *mo proto.SetDefaults(sclogin) common.SendToGate(sid, int(login_proto.LoginPacketID_PACKET_SC_LOGIN), sclogin, s) logger.Logger.Tracef("SCLogin %v", sclogin) + log := &model.LoginErrorLog{ + TypeId: int32(code.Enum().Number()), + } + mq.Write(log) } From a9ec52b183326a08ad3da00765a120dcd1a3a216 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 17 Jan 2025 14:15:49 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/loginlog.go | 1 + worldsrv/action_login.go | 9 ++++++--- worldsrv/task_login.go | 9 ++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/model/loginlog.go b/model/loginlog.go index 6d3ef96..1f0b824 100644 --- a/model/loginlog.go +++ b/model/loginlog.go @@ -103,6 +103,7 @@ func NewLoginLog(snId, logType int32, tel, ip, platform, channel, promoter, pack type LoginErrorLog struct { TypeId int32 + Ts int64 } //func InsertLoginLogs(logs ...*LoginLog) (err error) { diff --git a/worldsrv/action_login.go b/worldsrv/action_login.go index bf5d3d4..ac98c49 100644 --- a/worldsrv/action_login.go +++ b/worldsrv/action_login.go @@ -63,10 +63,13 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf proto.SetDefaults(sclogin) common.SendToGate(sid, int(login_proto.LoginPacketID_PACKET_SC_LOGIN), sclogin, s) logger.Logger.Trace("CSLoginHandler Process send ", sclogin) - log := &model.LoginErrorLog{ - TypeId: int32(code.Enum().Number()), + if code != login_proto.OpResultCode_OPRC_Sucess { + log := &model.LoginErrorLog{ + TypeId: int32(code.Enum().Number()), + Ts: time.Now().Unix(), + } + mq.Write(log) } - mq.Write(log) } sendSCDisconnect := func(code int32) { diff --git a/worldsrv/task_login.go b/worldsrv/task_login.go index 509279f..4abab69 100644 --- a/worldsrv/task_login.go +++ b/worldsrv/task_login.go @@ -433,8 +433,11 @@ func SCLogin(s *netlib.Session, sid int64, csLogin *login_proto.CSLogin, acc *mo proto.SetDefaults(sclogin) common.SendToGate(sid, int(login_proto.LoginPacketID_PACKET_SC_LOGIN), sclogin, s) logger.Logger.Tracef("SCLogin %v", sclogin) - log := &model.LoginErrorLog{ - TypeId: int32(code.Enum().Number()), + if code != login_proto.OpResultCode_OPRC_Sucess { + log := &model.LoginErrorLog{ + TypeId: int32(code.Enum().Number()), + Ts: time.Now().Unix(), + } + mq.Write(log) } - mq.Write(log) }