diff --git a/client/entities.go b/client/entities.go index cf38201f..3f1ca86e 100644 --- a/client/entities.go +++ b/client/entities.go @@ -220,6 +220,13 @@ type ( OperatorNick string } + GuildMessageReactionsUpdatedEvent struct { + OperatorId uint64 // OperatorId 操作者TinyId, 只有自身消息被贴表情才会有值 + EmojiId int32 // EmojiId 被贴的表情, 只有自身消息被贴表情才会有值 + MessageId uint64 + CurrentReactions []*message.GuildMessageEmojiReaction + } + OcrResponse struct { Texts []*TextDetection `json:"texts"` Language string `json:"language"` diff --git a/client/events.go b/client/events.go index d90bd18c..105a6b49 100644 --- a/client/events.go +++ b/client/events.go @@ -9,36 +9,37 @@ import ( ) type eventHandlers struct { - privateMessageHandlers []func(*QQClient, *message.PrivateMessage) - tempMessageHandlers []func(*QQClient, *TempMessageEvent) - groupMessageHandlers []func(*QQClient, *message.GroupMessage) - selfPrivateMessageHandlers []func(*QQClient, *message.PrivateMessage) - selfGroupMessageHandlers []func(*QQClient, *message.GroupMessage) - guildChannelMessageHandlers []func(*QQClient, *message.GuildChannelMessage) - groupMuteEventHandlers []func(*QQClient, *GroupMuteEvent) - groupRecalledHandlers []func(*QQClient, *GroupMessageRecalledEvent) - friendRecalledHandlers []func(*QQClient, *FriendMessageRecalledEvent) - joinGroupHandlers []func(*QQClient, *GroupInfo) - leaveGroupHandlers []func(*QQClient, *GroupLeaveEvent) - memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent) - memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent) - memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent) - groupNameUpdatedHandlers []func(*QQClient, *GroupNameUpdatedEvent) - permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent) - groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest) - joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest) - friendRequestHandlers []func(*QQClient, *NewFriendRequest) - newFriendHandlers []func(*QQClient, *NewFriendEvent) - disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent) - logHandlers []func(*QQClient, *LogEvent) - serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent) bool - groupNotifyHandlers []func(*QQClient, INotifyEvent) - friendNotifyHandlers []func(*QQClient, INotifyEvent) - memberTitleUpdatedHandlers []func(*QQClient, *MemberSpecialTitleUpdatedEvent) - offlineFileHandlers []func(*QQClient, *OfflineFileEvent) - otherClientStatusChangedHandlers []func(*QQClient, *OtherClientStatusChangedEvent) - groupDigestHandlers []func(*QQClient, *GroupDigestEvent) - groupMessageReceiptHandlers sync.Map + privateMessageHandlers []func(*QQClient, *message.PrivateMessage) + tempMessageHandlers []func(*QQClient, *TempMessageEvent) + groupMessageHandlers []func(*QQClient, *message.GroupMessage) + selfPrivateMessageHandlers []func(*QQClient, *message.PrivateMessage) + selfGroupMessageHandlers []func(*QQClient, *message.GroupMessage) + guildChannelMessageHandlers []func(*QQClient, *message.GuildChannelMessage) + guildMessageReactionsUpdatedHandlers []func(*QQClient, *GuildMessageReactionsUpdatedEvent) + groupMuteEventHandlers []func(*QQClient, *GroupMuteEvent) + groupRecalledHandlers []func(*QQClient, *GroupMessageRecalledEvent) + friendRecalledHandlers []func(*QQClient, *FriendMessageRecalledEvent) + joinGroupHandlers []func(*QQClient, *GroupInfo) + leaveGroupHandlers []func(*QQClient, *GroupLeaveEvent) + memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent) + memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent) + memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent) + groupNameUpdatedHandlers []func(*QQClient, *GroupNameUpdatedEvent) + permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent) + groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest) + joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest) + friendRequestHandlers []func(*QQClient, *NewFriendRequest) + newFriendHandlers []func(*QQClient, *NewFriendEvent) + disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent) + logHandlers []func(*QQClient, *LogEvent) + serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent) bool + groupNotifyHandlers []func(*QQClient, INotifyEvent) + friendNotifyHandlers []func(*QQClient, INotifyEvent) + memberTitleUpdatedHandlers []func(*QQClient, *MemberSpecialTitleUpdatedEvent) + offlineFileHandlers []func(*QQClient, *OfflineFileEvent) + otherClientStatusChangedHandlers []func(*QQClient, *OtherClientStatusChangedEvent) + groupDigestHandlers []func(*QQClient, *GroupDigestEvent) + groupMessageReceiptHandlers sync.Map } func (c *QQClient) OnPrivateMessage(f func(*QQClient, *message.PrivateMessage)) { @@ -73,6 +74,10 @@ func (s *GuildService) OnGuildChannelMessage(f func(*QQClient, *message.GuildCha s.c.eventHandlers.guildChannelMessageHandlers = append(s.c.eventHandlers.guildChannelMessageHandlers, f) } +func (s *GuildService) OnGuildMessageReactionsUpdated(f func(*QQClient, *GuildMessageReactionsUpdatedEvent)) { + s.c.eventHandlers.guildMessageReactionsUpdatedHandlers = append(s.c.eventHandlers.guildMessageReactionsUpdatedHandlers, f) +} + func (c *QQClient) OnGroupMuted(f func(*QQClient, *GroupMuteEvent)) { c.eventHandlers.groupMuteEventHandlers = append(c.eventHandlers.groupMuteEventHandlers, f) } @@ -246,6 +251,17 @@ func (c *QQClient) dispatchGuildChannelMessage(msg *message.GuildChannelMessage) } } +func (c *QQClient) dispatchGuildMessageReactionsUpdatedEvent(e *GuildMessageReactionsUpdatedEvent) { + if e == nil { + return + } + for _, f := range c.eventHandlers.guildMessageReactionsUpdatedHandlers { + cover(func() { + f(c, e) + }) + } +} + func (c *QQClient) dispatchGroupMuteEvent(e *GroupMuteEvent) { if e == nil { return diff --git a/client/guild.go b/client/guild.go index 24868e94..4fed80cc 100644 --- a/client/guild.go +++ b/client/guild.go @@ -2,10 +2,9 @@ package client import ( "fmt" - "github.com/Mrs4s/MiraiGo/message" - "github.com/Mrs4s/MiraiGo/binary" "github.com/Mrs4s/MiraiGo/client/pb/channel" + "github.com/Mrs4s/MiraiGo/client/pb/msg" "github.com/Mrs4s/MiraiGo/client/pb/oidb" "github.com/Mrs4s/MiraiGo/internal/packets" "github.com/Mrs4s/MiraiGo/utils" @@ -337,9 +336,48 @@ func decodeGuildMessagePushPacket(c *QQClient, _ *incomingPacketInfo, payload [] } for _, m := range push.Msgs { if m.Head.ContentHead.GetType() == 3841 { - if m.Head.ContentHead.GetSubType() != 2 { + // todo: 回头 event flow 的处理移出去重构下逻辑, 先暂时这样方便改 + var common *msg.CommonElem + if m.Body != nil { + for _, e := range m.Body.RichText.Elems { + if e.CommonElem != nil { + common = e.CommonElem + break + } + } + } + if m.Head.ContentHead.GetSubType() == 2 { // todo: tips? continue } + if common == nil || common.GetServiceType() != 500 { + continue + } + eventBody := new(channel.EventBody) + if err := proto.Unmarshal(common.PbElem, eventBody); err != nil { + c.Error("failed to unmarshal guild channel event body: %v", err) + continue + } + if eventBody.UpdateMsg != nil { + if eventBody.UpdateMsg.GetEventType() == 1 || eventBody.UpdateMsg.GetEventType() == 2 { // todo: 撤回消息 + continue + } + if eventBody.UpdateMsg.GetEventType() == 4 { // 消息贴表情更新 (包含添加或删除) + t, err := c.GuildService.pullRoamMsgByEventFlow(m.Head.RoutingHead.GetGuildId(), m.Head.RoutingHead.GetChannelId(), eventBody.UpdateMsg.GetMsgSeq(), eventBody.UpdateMsg.GetMsgSeq(), eventBody.UpdateMsg.GetEventVersion()-1) + if err != nil || len(t) == 0 { + c.Error("process guild event flow error: pull eventMsg message error: %v", err) + continue + } + // 自己的消息被贴表情会单独推送一个tips, 这里不需要解析 + if t[0].Head.RoutingHead.GetFromTinyid() == c.GuildService.TinyId { + continue + } + // todo: 如果是别人消息被贴表情, 会在在后续继续推送一个 empty tips, 可以从那个消息获取到 OperatorId + c.dispatchGuildMessageReactionsUpdatedEvent(&GuildMessageReactionsUpdatedEvent{ + MessageId: t[0].Head.ContentHead.GetSeq(), + CurrentReactions: decodeGuildMessageEmojiReactions(t[0]), + }) + } + } continue } if cm := c.parseGuildChannelMessage(m); cm != nil { @@ -386,23 +424,3 @@ func decodeGuildPushFirstView(c *QQClient, _ *incomingPacketInfo, payload []byte } return nil, nil } - -func (c *QQClient) parseGuildChannelMessage(msg *channel.ChannelMsgContent) *message.GuildChannelMessage { - guild := c.GuildService.FindGuild(msg.Head.RoutingHead.GetGuildId()) - if guild == nil { - return nil // todo: sync guild info - } - // mem := guild.FindMember(msg.Head.RoutingHead.GetFromTinyid()) - return &message.GuildChannelMessage{ - Id: msg.Head.ContentHead.GetSeq(), - InternalId: msg.Body.RichText.Attr.GetRandom(), - GuildId: msg.Head.RoutingHead.GetGuildId(), - ChannelId: msg.Head.RoutingHead.GetChannelId(), - Time: int64(msg.Head.ContentHead.GetTime()), - Sender: &message.GuildSender{ - TinyId: msg.Head.RoutingHead.GetFromTinyid(), - Nickname: string(msg.ExtInfo.GetFromNick()), - }, - Elements: message.ParseMessageElems(msg.Body.RichText.Elems), - } -} diff --git a/client/guild_eventflow.go b/client/guild_eventflow.go new file mode 100644 index 00000000..b63488a5 --- /dev/null +++ b/client/guild_eventflow.go @@ -0,0 +1,33 @@ +package client + +import ( + "github.com/Mrs4s/MiraiGo/client/pb/channel" + "github.com/Mrs4s/MiraiGo/internal/packets" + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" +) + +func (s *GuildService) pullRoamMsgByEventFlow(guildId, channelId, beginSeq, endSeq, eventVersion uint64) ([]*channel.ChannelMsgContent, error) { + payload, _ := proto.Marshal(&channel.ChannelMsgReq{ + ChannelParam: &channel.ChannelParam{ + GuildId: &guildId, + ChannelId: &channelId, + BeginSeq: &beginSeq, + EndSeq: &endSeq, + Version: []uint64{eventVersion}, + }, + WithVersionFlag: proto.Uint32(2), + DirectMessageFlag: proto.Uint32(0), + }) + seq := s.c.nextSeq() + packet := packets.BuildUniPacket(s.c.Uin, seq, "trpc.group_pro.synclogic.SyncLogic.GetChannelMsg", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + msgRsp := new(channel.ChannelMsgRsp) + if err = proto.Unmarshal(rsp, msgRsp); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + return msgRsp.ChannelMsg.Msgs, nil +} diff --git a/client/guild_msg.go b/client/guild_msg.go new file mode 100644 index 00000000..5faff36d --- /dev/null +++ b/client/guild_msg.go @@ -0,0 +1,65 @@ +package client + +import ( + "github.com/Mrs4s/MiraiGo/client/pb/channel" + "github.com/Mrs4s/MiraiGo/client/pb/msg" + "github.com/Mrs4s/MiraiGo/message" + "google.golang.org/protobuf/proto" + "strconv" +) + +func (c *QQClient) parseGuildChannelMessage(msg *channel.ChannelMsgContent) *message.GuildChannelMessage { + guild := c.GuildService.FindGuild(msg.Head.RoutingHead.GetGuildId()) + if guild == nil { + return nil // todo: sync guild info + } + // mem := guild.FindMember(msg.Head.RoutingHead.GetFromTinyid()) + return &message.GuildChannelMessage{ + Id: msg.Head.ContentHead.GetSeq(), + InternalId: msg.Body.RichText.Attr.GetRandom(), + GuildId: msg.Head.RoutingHead.GetGuildId(), + ChannelId: msg.Head.RoutingHead.GetChannelId(), + Time: int64(msg.Head.ContentHead.GetTime()), + Sender: &message.GuildSender{ + TinyId: msg.Head.RoutingHead.GetFromTinyid(), + Nickname: string(msg.ExtInfo.GetFromNick()), + }, + Elements: message.ParseMessageElems(msg.Body.RichText.Elems), + } +} + +func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*message.GuildMessageEmojiReaction) { + r = []*message.GuildMessageEmojiReaction{} + var common *msg.CommonElem + for _, elem := range content.Body.RichText.Elems { + if elem.CommonElem != nil && elem.CommonElem.GetServiceType() == 38 { + common = elem.CommonElem + break + } + } + if common == nil { + return + } + serv38 := new(msg.MsgElemInfoServtype38) + _ = proto.Unmarshal(common.PbElem, serv38) + if len(serv38.ReactData) > 0 { + cnt := new(channel.MsgCnt) + _ = proto.Unmarshal(serv38.ReactData, cnt) + if len(cnt.EmojiReaction) == 0 { + return + } + for _, e := range cnt.EmojiReaction { + reaction := &message.GuildMessageEmojiReaction{ + EmojiId: e.GetEmojiId(), + EmojiType: e.GetEmojiType(), + Count: int32(e.GetCnt()), + Clicked: e.GetIsClicked(), + } + if index, err := strconv.ParseInt(e.GetEmojiId(), 10, 32); err == nil { + reaction.Face = message.NewFace(int32(index)) + } + r = append(r, reaction) + } + } + return +} diff --git a/client/pb/channel/MsgResponsesSvr.pb.go b/client/pb/channel/MsgResponsesSvr.pb.go new file mode 100644 index 00000000..a1cd13e6 --- /dev/null +++ b/client/pb/channel/MsgResponsesSvr.pb.go @@ -0,0 +1,821 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/MsgResponsesSvr.proto + +package channel + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type BatchGetMsgRspCountReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildMsgList []*GuildMsg `protobuf:"bytes,1,rep,name=guildMsgList" json:"guildMsgList,omitempty"` +} + +func (x *BatchGetMsgRspCountReq) Reset() { + *x = BatchGetMsgRspCountReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchGetMsgRspCountReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetMsgRspCountReq) ProtoMessage() {} + +func (x *BatchGetMsgRspCountReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchGetMsgRspCountReq.ProtoReflect.Descriptor instead. +func (*BatchGetMsgRspCountReq) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{0} +} + +func (x *BatchGetMsgRspCountReq) GetGuildMsgList() []*GuildMsg { + if x != nil { + return x.GuildMsgList + } + return nil +} + +type BatchGetMsgRspCountRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildMsgInfoList []*GuildMsgInfo `protobuf:"bytes,1,rep,name=guildMsgInfoList" json:"guildMsgInfoList,omitempty"` +} + +func (x *BatchGetMsgRspCountRsp) Reset() { + *x = BatchGetMsgRspCountRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchGetMsgRspCountRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetMsgRspCountRsp) ProtoMessage() {} + +func (x *BatchGetMsgRspCountRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchGetMsgRspCountRsp.ProtoReflect.Descriptor instead. +func (*BatchGetMsgRspCountRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{1} +} + +func (x *BatchGetMsgRspCountRsp) GetGuildMsgInfoList() []*GuildMsgInfo { + if x != nil { + return x.GuildMsgInfoList + } + return nil +} + +type SvrChannelMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + Id []*MsgId `protobuf:"bytes,2,rep,name=id" json:"id,omitempty"` +} + +func (x *SvrChannelMsg) Reset() { + *x = SvrChannelMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SvrChannelMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SvrChannelMsg) ProtoMessage() {} + +func (x *SvrChannelMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SvrChannelMsg.ProtoReflect.Descriptor instead. +func (*SvrChannelMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{2} +} + +func (x *SvrChannelMsg) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *SvrChannelMsg) GetId() []*MsgId { + if x != nil { + return x.Id + } + return nil +} + +type ChannelMsgInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + RespData []*MsgRespData `protobuf:"bytes,2,rep,name=respData" json:"respData,omitempty"` +} + +func (x *ChannelMsgInfo) Reset() { + *x = ChannelMsgInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgInfo) ProtoMessage() {} + +func (x *ChannelMsgInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgInfo.ProtoReflect.Descriptor instead. +func (*ChannelMsgInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{3} +} + +func (x *ChannelMsgInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ChannelMsgInfo) GetRespData() []*MsgRespData { + if x != nil { + return x.RespData + } + return nil +} + +type EmojiReaction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EmojiId *string `protobuf:"bytes,1,opt,name=emojiId" json:"emojiId,omitempty"` + EmojiType *uint64 `protobuf:"varint,2,opt,name=emojiType" json:"emojiType,omitempty"` + Cnt *uint64 `protobuf:"varint,3,opt,name=cnt" json:"cnt,omitempty"` + IsClicked *bool `protobuf:"varint,4,opt,name=isClicked" json:"isClicked,omitempty"` +} + +func (x *EmojiReaction) Reset() { + *x = EmojiReaction{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmojiReaction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmojiReaction) ProtoMessage() {} + +func (x *EmojiReaction) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmojiReaction.ProtoReflect.Descriptor instead. +func (*EmojiReaction) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{4} +} + +func (x *EmojiReaction) GetEmojiId() string { + if x != nil && x.EmojiId != nil { + return *x.EmojiId + } + return "" +} + +func (x *EmojiReaction) GetEmojiType() uint64 { + if x != nil && x.EmojiType != nil { + return *x.EmojiType + } + return 0 +} + +func (x *EmojiReaction) GetCnt() uint64 { + if x != nil && x.Cnt != nil { + return *x.Cnt + } + return 0 +} + +func (x *EmojiReaction) GetIsClicked() bool { + if x != nil && x.IsClicked != nil { + return *x.IsClicked + } + return false +} + +type GuildMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelMsgList []*SvrChannelMsg `protobuf:"bytes,2,rep,name=channelMsgList" json:"channelMsgList,omitempty"` +} + +func (x *GuildMsg) Reset() { + *x = GuildMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMsg) ProtoMessage() {} + +func (x *GuildMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_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 GuildMsg.ProtoReflect.Descriptor instead. +func (*GuildMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{5} +} + +func (x *GuildMsg) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildMsg) GetChannelMsgList() []*SvrChannelMsg { + if x != nil { + return x.ChannelMsgList + } + return nil +} + +type GuildMsgInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelMsgInfoList []*ChannelMsgInfo `protobuf:"bytes,2,rep,name=channelMsgInfoList" json:"channelMsgInfoList,omitempty"` +} + +func (x *GuildMsgInfo) Reset() { + *x = GuildMsgInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMsgInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMsgInfo) ProtoMessage() {} + +func (x *GuildMsgInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildMsgInfo.ProtoReflect.Descriptor instead. +func (*GuildMsgInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{6} +} + +func (x *GuildMsgInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildMsgInfo) GetChannelMsgInfoList() []*ChannelMsgInfo { + if x != nil { + return x.ChannelMsgInfoList + } + return nil +} + +type MsgCnt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *MsgId `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + EmojiReaction []*EmojiReaction `protobuf:"bytes,2,rep,name=emojiReaction" json:"emojiReaction,omitempty"` +} + +func (x *MsgCnt) Reset() { + *x = MsgCnt{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgCnt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgCnt) ProtoMessage() {} + +func (x *MsgCnt) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgCnt.ProtoReflect.Descriptor instead. +func (*MsgCnt) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{7} +} + +func (x *MsgCnt) GetId() *MsgId { + if x != nil { + return x.Id + } + return nil +} + +func (x *MsgCnt) GetEmojiReaction() []*EmojiReaction { + if x != nil { + return x.EmojiReaction + } + return nil +} + +type MsgId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + Seq *uint64 `protobuf:"varint,2,opt,name=seq" json:"seq,omitempty"` +} + +func (x *MsgId) Reset() { + *x = MsgId{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgId) ProtoMessage() {} + +func (x *MsgId) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgId.ProtoReflect.Descriptor instead. +func (*MsgId) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{8} +} + +func (x *MsgId) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *MsgId) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +type MsgRespData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *MsgId `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Cnt []byte `protobuf:"bytes,2,opt,name=cnt" json:"cnt,omitempty"` +} + +func (x *MsgRespData) Reset() { + *x = MsgRespData{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRespData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRespData) ProtoMessage() {} + +func (x *MsgRespData) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgRespData.ProtoReflect.Descriptor instead. +func (*MsgRespData) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{9} +} + +func (x *MsgRespData) GetId() *MsgId { + if x != nil { + return x.Id + } + return nil +} + +func (x *MsgRespData) GetCnt() []byte { + if x != nil { + return x.Cnt + } + return nil +} + +var File_pb_channel_MsgResponsesSvr_proto protoreflect.FileDescriptor + +var file_pb_channel_MsgResponsesSvr_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x53, 0x76, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x47, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x4d, 0x73, + 0x67, 0x52, 0x73, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2d, 0x0a, 0x0c, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x16, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x10, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x45, 0x0a, 0x0d, 0x53, 0x76, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x22, 0x77, 0x0a, 0x0d, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x69, 0x73, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x08, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x12, 0x36, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x76, 0x72, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x06, 0x4d, 0x73, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x73, 0x67, 0x49, + 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x45, + 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x65, 0x6d, + 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x05, 0x4d, + 0x73, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, + 0x22, 0x37, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x6e, 0x74, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_MsgResponsesSvr_proto_rawDescOnce sync.Once + file_pb_channel_MsgResponsesSvr_proto_rawDescData = file_pb_channel_MsgResponsesSvr_proto_rawDesc +) + +func file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP() []byte { + file_pb_channel_MsgResponsesSvr_proto_rawDescOnce.Do(func() { + file_pb_channel_MsgResponsesSvr_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_MsgResponsesSvr_proto_rawDescData) + }) + return file_pb_channel_MsgResponsesSvr_proto_rawDescData +} + +var file_pb_channel_MsgResponsesSvr_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_pb_channel_MsgResponsesSvr_proto_goTypes = []interface{}{ + (*BatchGetMsgRspCountReq)(nil), // 0: BatchGetMsgRspCountReq + (*BatchGetMsgRspCountRsp)(nil), // 1: BatchGetMsgRspCountRsp + (*SvrChannelMsg)(nil), // 2: SvrChannelMsg + (*ChannelMsgInfo)(nil), // 3: ChannelMsgInfo + (*EmojiReaction)(nil), // 4: EmojiReaction + (*GuildMsg)(nil), // 5: GuildMsg + (*GuildMsgInfo)(nil), // 6: GuildMsgInfo + (*MsgCnt)(nil), // 7: MsgCnt + (*MsgId)(nil), // 8: MsgId + (*MsgRespData)(nil), // 9: MsgRespData +} +var file_pb_channel_MsgResponsesSvr_proto_depIdxs = []int32{ + 5, // 0: BatchGetMsgRspCountReq.guildMsgList:type_name -> GuildMsg + 6, // 1: BatchGetMsgRspCountRsp.guildMsgInfoList:type_name -> GuildMsgInfo + 8, // 2: SvrChannelMsg.id:type_name -> MsgId + 9, // 3: ChannelMsgInfo.respData:type_name -> MsgRespData + 2, // 4: GuildMsg.channelMsgList:type_name -> SvrChannelMsg + 3, // 5: GuildMsgInfo.channelMsgInfoList:type_name -> ChannelMsgInfo + 8, // 6: MsgCnt.id:type_name -> MsgId + 4, // 7: MsgCnt.emojiReaction:type_name -> EmojiReaction + 8, // 8: MsgRespData.id:type_name -> MsgId + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_pb_channel_MsgResponsesSvr_proto_init() } +func file_pb_channel_MsgResponsesSvr_proto_init() { + if File_pb_channel_MsgResponsesSvr_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_channel_MsgResponsesSvr_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchGetMsgRspCountReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchGetMsgRspCountRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SvrChannelMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmojiReaction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMsgInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgCnt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRespData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_MsgResponsesSvr_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_MsgResponsesSvr_proto_goTypes, + DependencyIndexes: file_pb_channel_MsgResponsesSvr_proto_depIdxs, + MessageInfos: file_pb_channel_MsgResponsesSvr_proto_msgTypes, + }.Build() + File_pb_channel_MsgResponsesSvr_proto = out.File + file_pb_channel_MsgResponsesSvr_proto_rawDesc = nil + file_pb_channel_MsgResponsesSvr_proto_goTypes = nil + file_pb_channel_MsgResponsesSvr_proto_depIdxs = nil +} diff --git a/client/pb/channel/MsgResponsesSvr.proto b/client/pb/channel/MsgResponsesSvr.proto new file mode 100644 index 00000000..4028abdc --- /dev/null +++ b/client/pb/channel/MsgResponsesSvr.proto @@ -0,0 +1,56 @@ +syntax = "proto2"; + +option go_package = "pb/channel;channel"; + + +message BatchGetMsgRspCountReq { + repeated GuildMsg guildMsgList = 1; +} + +message BatchGetMsgRspCountRsp { + repeated GuildMsgInfo guildMsgInfoList = 1; +} + +message SvrChannelMsg { + optional uint64 channelId = 1; + repeated MsgId id = 2; +} + +message ChannelMsgInfo { + optional uint64 channelId = 1; + repeated MsgRespData respData = 2; +} + +message EmojiReaction { + optional string emojiId = 1; + optional uint64 emojiType = 2; + optional uint64 cnt = 3; + optional bool isClicked = 4; +} + +message GuildMsg { + optional uint64 guildId = 1; + repeated SvrChannelMsg channelMsgList = 2; +} + +message GuildMsgInfo { + optional uint64 guildId = 1; + repeated ChannelMsgInfo channelMsgInfoList = 2; +} + +message MsgCnt { + optional MsgId id = 1; + repeated EmojiReaction emojiReaction = 2; +} + +message MsgId { + optional uint64 version = 1; + optional uint64 seq = 2; +} + +message MsgRespData { + optional MsgId id = 1; + optional bytes cnt = 2; +} + + diff --git a/client/pb/channel/servtype.pb.go b/client/pb/channel/servtype.pb.go new file mode 100644 index 00000000..a54c43f4 --- /dev/null +++ b/client/pb/channel/servtype.pb.go @@ -0,0 +1,4357 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/servtype.proto + +package channel + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AppChannelMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Summary *string `protobuf:"bytes,1,opt,name=summary" json:"summary,omitempty"` + Msg *string `protobuf:"bytes,2,opt,name=msg" json:"msg,omitempty"` + ExpireTimeMs *uint64 `protobuf:"varint,3,opt,name=expireTimeMs" json:"expireTimeMs,omitempty"` + SchemaType *uint32 `protobuf:"varint,4,opt,name=schemaType" json:"schemaType,omitempty"` + Schema *string `protobuf:"bytes,5,opt,name=schema" json:"schema,omitempty"` +} + +func (x *AppChannelMsg) Reset() { + *x = AppChannelMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppChannelMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppChannelMsg) ProtoMessage() {} + +func (x *AppChannelMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppChannelMsg.ProtoReflect.Descriptor instead. +func (*AppChannelMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{0} +} + +func (x *AppChannelMsg) GetSummary() string { + if x != nil && x.Summary != nil { + return *x.Summary + } + return "" +} + +func (x *AppChannelMsg) GetMsg() string { + if x != nil && x.Msg != nil { + return *x.Msg + } + return "" +} + +func (x *AppChannelMsg) GetExpireTimeMs() uint64 { + if x != nil && x.ExpireTimeMs != nil { + return *x.ExpireTimeMs + } + return 0 +} + +func (x *AppChannelMsg) GetSchemaType() uint32 { + if x != nil && x.SchemaType != nil { + return *x.SchemaType + } + return 0 +} + +func (x *AppChannelMsg) GetSchema() string { + if x != nil && x.Schema != nil { + return *x.Schema + } + return "" +} + +type CategoryChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelIndex *uint32 `protobuf:"varint,1,opt,name=channelIndex" json:"channelIndex,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` +} + +func (x *CategoryChannelInfo) Reset() { + *x = CategoryChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CategoryChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CategoryChannelInfo) ProtoMessage() {} + +func (x *CategoryChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CategoryChannelInfo.ProtoReflect.Descriptor instead. +func (*CategoryChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{1} +} + +func (x *CategoryChannelInfo) GetChannelIndex() uint32 { + if x != nil && x.ChannelIndex != nil { + return *x.ChannelIndex + } + return 0 +} + +func (x *CategoryChannelInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +type CategoryInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CategoryIndex *uint32 `protobuf:"varint,1,opt,name=categoryIndex" json:"categoryIndex,omitempty"` + ChannelInfo []*CategoryChannelInfo `protobuf:"bytes,2,rep,name=channelInfo" json:"channelInfo,omitempty"` + CategoryName []byte `protobuf:"bytes,3,opt,name=categoryName" json:"categoryName,omitempty"` + CategoryId *uint64 `protobuf:"varint,4,opt,name=categoryId" json:"categoryId,omitempty"` +} + +func (x *CategoryInfo) Reset() { + *x = CategoryInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CategoryInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CategoryInfo) ProtoMessage() {} + +func (x *CategoryInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CategoryInfo.ProtoReflect.Descriptor instead. +func (*CategoryInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{2} +} + +func (x *CategoryInfo) GetCategoryIndex() uint32 { + if x != nil && x.CategoryIndex != nil { + return *x.CategoryIndex + } + return 0 +} + +func (x *CategoryInfo) GetChannelInfo() []*CategoryChannelInfo { + if x != nil { + return x.ChannelInfo + } + return nil +} + +func (x *CategoryInfo) GetCategoryName() []byte { + if x != nil { + return x.CategoryName + } + return nil +} + +func (x *CategoryInfo) GetCategoryId() uint64 { + if x != nil && x.CategoryId != nil { + return *x.CategoryId + } + return 0 +} + +type ChanInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelName *uint32 `protobuf:"varint,2,opt,name=channelName" json:"channelName,omitempty"` + CreatorId *uint32 `protobuf:"varint,3,opt,name=creatorId" json:"creatorId,omitempty"` + CreateTime *uint32 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + GuildId *uint32 `protobuf:"varint,5,opt,name=guildId" json:"guildId,omitempty"` + MsgNotifyType *uint32 `protobuf:"varint,6,opt,name=msgNotifyType" json:"msgNotifyType,omitempty"` + ChannelType *uint32 `protobuf:"varint,7,opt,name=channelType" json:"channelType,omitempty"` + SpeakPermission *uint32 `protobuf:"varint,8,opt,name=speakPermission" json:"speakPermission,omitempty"` + LastMsgSeq *uint32 `protobuf:"varint,11,opt,name=lastMsgSeq" json:"lastMsgSeq,omitempty"` + LastCntMsgSeq *uint32 `protobuf:"varint,12,opt,name=lastCntMsgSeq" json:"lastCntMsgSeq,omitempty"` + VoiceChannelInfoFilter *VoiceChannelInfoFilter `protobuf:"bytes,14,opt,name=voiceChannelInfoFilter" json:"voiceChannelInfoFilter,omitempty"` + LiveChannelInfoFilter *LiveChannelInfoFilter `protobuf:"bytes,15,opt,name=liveChannelInfoFilter" json:"liveChannelInfoFilter,omitempty"` + BannedSpeak *uint32 `protobuf:"varint,16,opt,name=bannedSpeak" json:"bannedSpeak,omitempty"` +} + +func (x *ChanInfoFilter) Reset() { + *x = ChanInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChanInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChanInfoFilter) ProtoMessage() {} + +func (x *ChanInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChanInfoFilter.ProtoReflect.Descriptor instead. +func (*ChanInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{3} +} + +func (x *ChanInfoFilter) GetChannelName() uint32 { + if x != nil && x.ChannelName != nil { + return *x.ChannelName + } + return 0 +} + +func (x *ChanInfoFilter) GetCreatorId() uint32 { + if x != nil && x.CreatorId != nil { + return *x.CreatorId + } + return 0 +} + +func (x *ChanInfoFilter) GetCreateTime() uint32 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *ChanInfoFilter) GetGuildId() uint32 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChanInfoFilter) GetMsgNotifyType() uint32 { + if x != nil && x.MsgNotifyType != nil { + return *x.MsgNotifyType + } + return 0 +} + +func (x *ChanInfoFilter) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *ChanInfoFilter) GetSpeakPermission() uint32 { + if x != nil && x.SpeakPermission != nil { + return *x.SpeakPermission + } + return 0 +} + +func (x *ChanInfoFilter) GetLastMsgSeq() uint32 { + if x != nil && x.LastMsgSeq != nil { + return *x.LastMsgSeq + } + return 0 +} + +func (x *ChanInfoFilter) GetLastCntMsgSeq() uint32 { + if x != nil && x.LastCntMsgSeq != nil { + return *x.LastCntMsgSeq + } + return 0 +} + +func (x *ChanInfoFilter) GetVoiceChannelInfoFilter() *VoiceChannelInfoFilter { + if x != nil { + return x.VoiceChannelInfoFilter + } + return nil +} + +func (x *ChanInfoFilter) GetLiveChannelInfoFilter() *LiveChannelInfoFilter { + if x != nil { + return x.LiveChannelInfoFilter + } + return nil +} + +func (x *ChanInfoFilter) GetBannedSpeak() uint32 { + if x != nil && x.BannedSpeak != nil { + return *x.BannedSpeak + } + return 0 +} + +type ChangeChanInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChanId *uint64 `protobuf:"varint,2,opt,name=chanId" json:"chanId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + InfoSeq *MsgSeq `protobuf:"bytes,4,opt,name=infoSeq" json:"infoSeq,omitempty"` + UpdateType *uint32 `protobuf:"varint,5,opt,name=updateType" json:"updateType,omitempty"` + ChanInfoFilter *ChanInfoFilter `protobuf:"bytes,6,opt,name=chanInfoFilter" json:"chanInfoFilter,omitempty"` + ChanInfo *ServChannelInfo `protobuf:"bytes,7,opt,name=chanInfo" json:"chanInfo,omitempty"` +} + +func (x *ChangeChanInfo) Reset() { + *x = ChangeChanInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeChanInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeChanInfo) ProtoMessage() {} + +func (x *ChangeChanInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeChanInfo.ProtoReflect.Descriptor instead. +func (*ChangeChanInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{4} +} + +func (x *ChangeChanInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChangeChanInfo) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +func (x *ChangeChanInfo) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *ChangeChanInfo) GetInfoSeq() *MsgSeq { + if x != nil { + return x.InfoSeq + } + return nil +} + +func (x *ChangeChanInfo) GetUpdateType() uint32 { + if x != nil && x.UpdateType != nil { + return *x.UpdateType + } + return 0 +} + +func (x *ChangeChanInfo) GetChanInfoFilter() *ChanInfoFilter { + if x != nil { + return x.ChanInfoFilter + } + return nil +} + +func (x *ChangeChanInfo) GetChanInfo() *ServChannelInfo { + if x != nil { + return x.ChanInfo + } + return nil +} + +type ChangeGuildInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + OperatorId *uint64 `protobuf:"varint,2,opt,name=operatorId" json:"operatorId,omitempty"` + InfoSeq *MsgSeq `protobuf:"bytes,3,opt,name=infoSeq" json:"infoSeq,omitempty"` + FaceSeq *MsgSeq `protobuf:"bytes,4,opt,name=faceSeq" json:"faceSeq,omitempty"` + UpdateType *uint32 `protobuf:"varint,5,opt,name=updateType" json:"updateType,omitempty"` + GuildInfoFilter *GuildInfoFilter `protobuf:"bytes,6,opt,name=guildInfoFilter" json:"guildInfoFilter,omitempty"` + GuildInfo *GuildInfo `protobuf:"bytes,7,opt,name=guildInfo" json:"guildInfo,omitempty"` +} + +func (x *ChangeGuildInfo) Reset() { + *x = ChangeGuildInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeGuildInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeGuildInfo) ProtoMessage() {} + +func (x *ChangeGuildInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_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 ChangeGuildInfo.ProtoReflect.Descriptor instead. +func (*ChangeGuildInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{5} +} + +func (x *ChangeGuildInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChangeGuildInfo) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *ChangeGuildInfo) GetInfoSeq() *MsgSeq { + if x != nil { + return x.InfoSeq + } + return nil +} + +func (x *ChangeGuildInfo) GetFaceSeq() *MsgSeq { + if x != nil { + return x.FaceSeq + } + return nil +} + +func (x *ChangeGuildInfo) GetUpdateType() uint32 { + if x != nil && x.UpdateType != nil { + return *x.UpdateType + } + return 0 +} + +func (x *ChangeGuildInfo) GetGuildInfoFilter() *GuildInfoFilter { + if x != nil { + return x.GuildInfoFilter + } + return nil +} + +func (x *ChangeGuildInfo) GetGuildInfo() *GuildInfo { + if x != nil { + return x.GuildInfo + } + return nil +} + +type ChannelID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChanId *uint64 `protobuf:"varint,1,opt,name=chanId" json:"chanId,omitempty"` +} + +func (x *ChannelID) Reset() { + *x = ChannelID{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelID) ProtoMessage() {} + +func (x *ChannelID) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelID.ProtoReflect.Descriptor instead. +func (*ChannelID) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{6} +} + +func (x *ChannelID) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +type ServChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + ChannelName []byte `protobuf:"bytes,2,opt,name=channelName" json:"channelName,omitempty"` + CreatorId *uint64 `protobuf:"varint,3,opt,name=creatorId" json:"creatorId,omitempty"` + CreateTime *uint64 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + GuildId *uint64 `protobuf:"varint,5,opt,name=guildId" json:"guildId,omitempty"` + MsgNotifyType *uint32 `protobuf:"varint,6,opt,name=msgNotifyType" json:"msgNotifyType,omitempty"` + ChannelType *uint32 `protobuf:"varint,7,opt,name=channelType" json:"channelType,omitempty"` + SpeakPermission *uint32 `protobuf:"varint,8,opt,name=speakPermission" json:"speakPermission,omitempty"` + LastMsgSeq *MsgSeq `protobuf:"bytes,11,opt,name=lastMsgSeq" json:"lastMsgSeq,omitempty"` + LastCntMsgSeq *MsgSeq `protobuf:"bytes,12,opt,name=lastCntMsgSeq" json:"lastCntMsgSeq,omitempty"` + VoiceChannelInfo *VoiceChannelInfo `protobuf:"bytes,14,opt,name=voiceChannelInfo" json:"voiceChannelInfo,omitempty"` + LiveChannelInfo *LiveChannelInfo `protobuf:"bytes,15,opt,name=liveChannelInfo" json:"liveChannelInfo,omitempty"` + BannedSpeak *uint32 `protobuf:"varint,16,opt,name=bannedSpeak" json:"bannedSpeak,omitempty"` +} + +func (x *ServChannelInfo) Reset() { + *x = ServChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServChannelInfo) ProtoMessage() {} + +func (x *ServChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServChannelInfo.ProtoReflect.Descriptor instead. +func (*ServChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{7} +} + +func (x *ServChannelInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ServChannelInfo) GetChannelName() []byte { + if x != nil { + return x.ChannelName + } + return nil +} + +func (x *ServChannelInfo) GetCreatorId() uint64 { + if x != nil && x.CreatorId != nil { + return *x.CreatorId + } + return 0 +} + +func (x *ServChannelInfo) GetCreateTime() uint64 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *ServChannelInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ServChannelInfo) GetMsgNotifyType() uint32 { + if x != nil && x.MsgNotifyType != nil { + return *x.MsgNotifyType + } + return 0 +} + +func (x *ServChannelInfo) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *ServChannelInfo) GetSpeakPermission() uint32 { + if x != nil && x.SpeakPermission != nil { + return *x.SpeakPermission + } + return 0 +} + +func (x *ServChannelInfo) GetLastMsgSeq() *MsgSeq { + if x != nil { + return x.LastMsgSeq + } + return nil +} + +func (x *ServChannelInfo) GetLastCntMsgSeq() *MsgSeq { + if x != nil { + return x.LastCntMsgSeq + } + return nil +} + +func (x *ServChannelInfo) GetVoiceChannelInfo() *VoiceChannelInfo { + if x != nil { + return x.VoiceChannelInfo + } + return nil +} + +func (x *ServChannelInfo) GetLiveChannelInfo() *LiveChannelInfo { + if x != nil { + return x.LiveChannelInfo + } + return nil +} + +func (x *ServChannelInfo) GetBannedSpeak() uint32 { + if x != nil && x.BannedSpeak != nil { + return *x.BannedSpeak + } + return 0 +} + +type CommGrayTips struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BusiType *uint64 `protobuf:"varint,1,opt,name=busiType" json:"busiType,omitempty"` + BusiId *uint64 `protobuf:"varint,2,opt,name=busiId" json:"busiId,omitempty"` + CtrlFlag *uint32 `protobuf:"varint,3,opt,name=ctrlFlag" json:"ctrlFlag,omitempty"` + TemplId *uint64 `protobuf:"varint,4,opt,name=templId" json:"templId,omitempty"` + TemplParam []*CommGrayTips_TemplParam `protobuf:"bytes,5,rep,name=templParam" json:"templParam,omitempty"` + Content []byte `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"` + TipsSeqId *uint64 `protobuf:"varint,10,opt,name=tipsSeqId" json:"tipsSeqId,omitempty"` + PbReserv []byte `protobuf:"bytes,100,opt,name=pbReserv" json:"pbReserv,omitempty"` +} + +func (x *CommGrayTips) Reset() { + *x = CommGrayTips{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommGrayTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommGrayTips) ProtoMessage() {} + +func (x *CommGrayTips) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommGrayTips.ProtoReflect.Descriptor instead. +func (*CommGrayTips) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{8} +} + +func (x *CommGrayTips) GetBusiType() uint64 { + if x != nil && x.BusiType != nil { + return *x.BusiType + } + return 0 +} + +func (x *CommGrayTips) GetBusiId() uint64 { + if x != nil && x.BusiId != nil { + return *x.BusiId + } + return 0 +} + +func (x *CommGrayTips) GetCtrlFlag() uint32 { + if x != nil && x.CtrlFlag != nil { + return *x.CtrlFlag + } + return 0 +} + +func (x *CommGrayTips) GetTemplId() uint64 { + if x != nil && x.TemplId != nil { + return *x.TemplId + } + return 0 +} + +func (x *CommGrayTips) GetTemplParam() []*CommGrayTips_TemplParam { + if x != nil { + return x.TemplParam + } + return nil +} + +func (x *CommGrayTips) GetContent() []byte { + if x != nil { + return x.Content + } + return nil +} + +func (x *CommGrayTips) GetTipsSeqId() uint64 { + if x != nil && x.TipsSeqId != nil { + return *x.TipsSeqId + } + return 0 +} + +func (x *CommGrayTips) GetPbReserv() []byte { + if x != nil { + return x.PbReserv + } + return nil +} + +type CreateChan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + CreateId []*ChannelID `protobuf:"bytes,4,rep,name=createId" json:"createId,omitempty"` +} + +func (x *CreateChan) Reset() { + *x = CreateChan{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateChan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateChan) ProtoMessage() {} + +func (x *CreateChan) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateChan.ProtoReflect.Descriptor instead. +func (*CreateChan) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateChan) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *CreateChan) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *CreateChan) GetCreateId() []*ChannelID { + if x != nil { + return x.CreateId + } + return nil +} + +type CreateGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorId *uint64 `protobuf:"varint,1,opt,name=operatorId" json:"operatorId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` +} + +func (x *CreateGuild) Reset() { + *x = CreateGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGuild) ProtoMessage() {} + +func (x *CreateGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateGuild.ProtoReflect.Descriptor instead. +func (*CreateGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{10} +} + +func (x *CreateGuild) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *CreateGuild) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +type DestroyChan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + DeleteId []*ChannelID `protobuf:"bytes,4,rep,name=deleteId" json:"deleteId,omitempty"` +} + +func (x *DestroyChan) Reset() { + *x = DestroyChan{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroyChan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyChan) ProtoMessage() {} + +func (x *DestroyChan) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyChan.ProtoReflect.Descriptor instead. +func (*DestroyChan) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{11} +} + +func (x *DestroyChan) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *DestroyChan) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *DestroyChan) GetDeleteId() []*ChannelID { + if x != nil { + return x.DeleteId + } + return nil +} + +type DestroyGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorId *uint64 `protobuf:"varint,1,opt,name=operatorId" json:"operatorId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` +} + +func (x *DestroyGuild) Reset() { + *x = DestroyGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroyGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyGuild) ProtoMessage() {} + +func (x *DestroyGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyGuild.ProtoReflect.Descriptor instead. +func (*DestroyGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{12} +} + +func (x *DestroyGuild) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *DestroyGuild) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +type EventBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReadNotify *ReadNotify `protobuf:"bytes,1,opt,name=readNotify" json:"readNotify,omitempty"` + CommGrayTips *CommGrayTips `protobuf:"bytes,2,opt,name=commGrayTips" json:"commGrayTips,omitempty"` + CreateGuild *CreateGuild `protobuf:"bytes,3,opt,name=createGuild" json:"createGuild,omitempty"` + DestroyGuild *DestroyGuild `protobuf:"bytes,4,opt,name=destroyGuild" json:"destroyGuild,omitempty"` + JoinGuild *JoinGuild `protobuf:"bytes,5,opt,name=joinGuild" json:"joinGuild,omitempty"` + KickOffGuild *KickOffGuild `protobuf:"bytes,6,opt,name=kickOffGuild" json:"kickOffGuild,omitempty"` + QuitGuild *QuitGuild `protobuf:"bytes,7,opt,name=quitGuild" json:"quitGuild,omitempty"` + ChangeGuildInfo *ChangeGuildInfo `protobuf:"bytes,8,opt,name=changeGuildInfo" json:"changeGuildInfo,omitempty"` + CreateChan *CreateChan `protobuf:"bytes,9,opt,name=createChan" json:"createChan,omitempty"` + DestroyChan *DestroyChan `protobuf:"bytes,10,opt,name=destroyChan" json:"destroyChan,omitempty"` + ChangeChanInfo *ChangeChanInfo `protobuf:"bytes,11,opt,name=changeChanInfo" json:"changeChanInfo,omitempty"` + SetAdmin *SetAdmin `protobuf:"bytes,12,opt,name=setAdmin" json:"setAdmin,omitempty"` + SetMsgRecvType *SetMsgRecvType `protobuf:"bytes,13,opt,name=setMsgRecvType" json:"setMsgRecvType,omitempty"` + UpdateMsg *UpdateMsg `protobuf:"bytes,14,opt,name=updateMsg" json:"updateMsg,omitempty"` + SetTop *SetTop `protobuf:"bytes,17,opt,name=setTop" json:"setTop,omitempty"` + SwitchChannel *SwitchVoiceChannel `protobuf:"bytes,18,opt,name=switchChannel" json:"switchChannel,omitempty"` + UpdateCategory *UpdateCategory `protobuf:"bytes,21,opt,name=updateCategory" json:"updateCategory,omitempty"` + UpdateVoiceBlockList *UpdateVoiceBlockList `protobuf:"bytes,22,opt,name=updateVoiceBlockList" json:"updateVoiceBlockList,omitempty"` + SetMute *SetMute `protobuf:"bytes,23,opt,name=setMute" json:"setMute,omitempty"` + LiveStatusChangeRoom *LiveRoomStatusChangeMsg `protobuf:"bytes,24,opt,name=liveStatusChangeRoom" json:"liveStatusChangeRoom,omitempty"` + SwitchLiveRoom *SwitchLiveRoom `protobuf:"bytes,25,opt,name=switchLiveRoom" json:"switchLiveRoom,omitempty"` + Events []*MsgEvent `protobuf:"bytes,39,rep,name=events" json:"events,omitempty"` + Scheduler *SchedulerMsg `protobuf:"bytes,40,opt,name=scheduler" json:"scheduler,omitempty"` + AppChannel *AppChannelMsg `protobuf:"bytes,41,opt,name=appChannel" json:"appChannel,omitempty"` + WeakMsgAppChannel *AppChannelMsg `protobuf:"bytes,46,opt,name=weakMsgAppChannel" json:"weakMsgAppChannel,omitempty"` +} + +func (x *EventBody) Reset() { + *x = EventBody{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventBody) ProtoMessage() {} + +func (x *EventBody) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventBody.ProtoReflect.Descriptor instead. +func (*EventBody) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{13} +} + +func (x *EventBody) GetReadNotify() *ReadNotify { + if x != nil { + return x.ReadNotify + } + return nil +} + +func (x *EventBody) GetCommGrayTips() *CommGrayTips { + if x != nil { + return x.CommGrayTips + } + return nil +} + +func (x *EventBody) GetCreateGuild() *CreateGuild { + if x != nil { + return x.CreateGuild + } + return nil +} + +func (x *EventBody) GetDestroyGuild() *DestroyGuild { + if x != nil { + return x.DestroyGuild + } + return nil +} + +func (x *EventBody) GetJoinGuild() *JoinGuild { + if x != nil { + return x.JoinGuild + } + return nil +} + +func (x *EventBody) GetKickOffGuild() *KickOffGuild { + if x != nil { + return x.KickOffGuild + } + return nil +} + +func (x *EventBody) GetQuitGuild() *QuitGuild { + if x != nil { + return x.QuitGuild + } + return nil +} + +func (x *EventBody) GetChangeGuildInfo() *ChangeGuildInfo { + if x != nil { + return x.ChangeGuildInfo + } + return nil +} + +func (x *EventBody) GetCreateChan() *CreateChan { + if x != nil { + return x.CreateChan + } + return nil +} + +func (x *EventBody) GetDestroyChan() *DestroyChan { + if x != nil { + return x.DestroyChan + } + return nil +} + +func (x *EventBody) GetChangeChanInfo() *ChangeChanInfo { + if x != nil { + return x.ChangeChanInfo + } + return nil +} + +func (x *EventBody) GetSetAdmin() *SetAdmin { + if x != nil { + return x.SetAdmin + } + return nil +} + +func (x *EventBody) GetSetMsgRecvType() *SetMsgRecvType { + if x != nil { + return x.SetMsgRecvType + } + return nil +} + +func (x *EventBody) GetUpdateMsg() *UpdateMsg { + if x != nil { + return x.UpdateMsg + } + return nil +} + +func (x *EventBody) GetSetTop() *SetTop { + if x != nil { + return x.SetTop + } + return nil +} + +func (x *EventBody) GetSwitchChannel() *SwitchVoiceChannel { + if x != nil { + return x.SwitchChannel + } + return nil +} + +func (x *EventBody) GetUpdateCategory() *UpdateCategory { + if x != nil { + return x.UpdateCategory + } + return nil +} + +func (x *EventBody) GetUpdateVoiceBlockList() *UpdateVoiceBlockList { + if x != nil { + return x.UpdateVoiceBlockList + } + return nil +} + +func (x *EventBody) GetSetMute() *SetMute { + if x != nil { + return x.SetMute + } + return nil +} + +func (x *EventBody) GetLiveStatusChangeRoom() *LiveRoomStatusChangeMsg { + if x != nil { + return x.LiveStatusChangeRoom + } + return nil +} + +func (x *EventBody) GetSwitchLiveRoom() *SwitchLiveRoom { + if x != nil { + return x.SwitchLiveRoom + } + return nil +} + +func (x *EventBody) GetEvents() []*MsgEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *EventBody) GetScheduler() *SchedulerMsg { + if x != nil { + return x.Scheduler + } + return nil +} + +func (x *EventBody) GetAppChannel() *AppChannelMsg { + if x != nil { + return x.AppChannel + } + return nil +} + +func (x *EventBody) GetWeakMsgAppChannel() *AppChannelMsg { + if x != nil { + return x.WeakMsgAppChannel + } + return nil +} + +type GroupProStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsEnable *uint32 `protobuf:"varint,1,opt,name=isEnable" json:"isEnable,omitempty"` + IsBanned *uint32 `protobuf:"varint,2,opt,name=isBanned" json:"isBanned,omitempty"` + IsFrozen *uint32 `protobuf:"varint,3,opt,name=isFrozen" json:"isFrozen,omitempty"` +} + +func (x *GroupProStatus) Reset() { + *x = GroupProStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupProStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupProStatus) ProtoMessage() {} + +func (x *GroupProStatus) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupProStatus.ProtoReflect.Descriptor instead. +func (*GroupProStatus) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{14} +} + +func (x *GroupProStatus) GetIsEnable() uint32 { + if x != nil && x.IsEnable != nil { + return *x.IsEnable + } + return 0 +} + +func (x *GroupProStatus) GetIsBanned() uint32 { + if x != nil && x.IsBanned != nil { + return *x.IsBanned + } + return 0 +} + +func (x *GroupProStatus) GetIsFrozen() uint32 { + if x != nil && x.IsFrozen != nil { + return *x.IsFrozen + } + return 0 +} + +type GuildInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildCode *uint64 `protobuf:"varint,2,opt,name=guildCode" json:"guildCode,omitempty"` + OwnerId *uint64 `protobuf:"varint,3,opt,name=ownerId" json:"ownerId,omitempty"` + CreateTime *uint64 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + MemberMaxNum *uint32 `protobuf:"varint,5,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` + MemberNum *uint32 `protobuf:"varint,6,opt,name=memberNum" json:"memberNum,omitempty"` + GuildType *uint32 `protobuf:"varint,7,opt,name=guildType" json:"guildType,omitempty"` + GuildName []byte `protobuf:"bytes,8,opt,name=guildName" json:"guildName,omitempty"` + RobotList []uint64 `protobuf:"varint,9,rep,name=robotList" json:"robotList,omitempty"` + AdminList []uint64 `protobuf:"varint,10,rep,name=adminList" json:"adminList,omitempty"` + RobotMaxNum *uint32 `protobuf:"varint,11,opt,name=robotMaxNum" json:"robotMaxNum,omitempty"` + AdminMaxNum *uint32 `protobuf:"varint,12,opt,name=adminMaxNum" json:"adminMaxNum,omitempty"` + Profile []byte `protobuf:"bytes,13,opt,name=profile" json:"profile,omitempty"` + FaceSeq *uint64 `protobuf:"varint,14,opt,name=faceSeq" json:"faceSeq,omitempty"` + GuildStatus *GroupProStatus `protobuf:"bytes,15,opt,name=guildStatus" json:"guildStatus,omitempty"` + ChannelNum *uint32 `protobuf:"varint,16,opt,name=channelNum" json:"channelNum,omitempty"` + MemberChangeSeq *MsgSeq `protobuf:"bytes,5002,opt,name=memberChangeSeq" json:"memberChangeSeq,omitempty"` + GuildInfoChangeSeq *MsgSeq `protobuf:"bytes,5003,opt,name=guildInfoChangeSeq" json:"guildInfoChangeSeq,omitempty"` + ChannelChangeSeq *MsgSeq `protobuf:"bytes,5004,opt,name=channelChangeSeq" json:"channelChangeSeq,omitempty"` +} + +func (x *GuildInfo) Reset() { + *x = GuildInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildInfo) ProtoMessage() {} + +func (x *GuildInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildInfo.ProtoReflect.Descriptor instead. +func (*GuildInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{15} +} + +func (x *GuildInfo) GetGuildCode() uint64 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *GuildInfo) GetOwnerId() uint64 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +func (x *GuildInfo) GetCreateTime() uint64 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *GuildInfo) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +func (x *GuildInfo) GetMemberNum() uint32 { + if x != nil && x.MemberNum != nil { + return *x.MemberNum + } + return 0 +} + +func (x *GuildInfo) GetGuildType() uint32 { + if x != nil && x.GuildType != nil { + return *x.GuildType + } + return 0 +} + +func (x *GuildInfo) GetGuildName() []byte { + if x != nil { + return x.GuildName + } + return nil +} + +func (x *GuildInfo) GetRobotList() []uint64 { + if x != nil { + return x.RobotList + } + return nil +} + +func (x *GuildInfo) GetAdminList() []uint64 { + if x != nil { + return x.AdminList + } + return nil +} + +func (x *GuildInfo) GetRobotMaxNum() uint32 { + if x != nil && x.RobotMaxNum != nil { + return *x.RobotMaxNum + } + return 0 +} + +func (x *GuildInfo) GetAdminMaxNum() uint32 { + if x != nil && x.AdminMaxNum != nil { + return *x.AdminMaxNum + } + return 0 +} + +func (x *GuildInfo) GetProfile() []byte { + if x != nil { + return x.Profile + } + return nil +} + +func (x *GuildInfo) GetFaceSeq() uint64 { + if x != nil && x.FaceSeq != nil { + return *x.FaceSeq + } + return 0 +} + +func (x *GuildInfo) GetGuildStatus() *GroupProStatus { + if x != nil { + return x.GuildStatus + } + return nil +} + +func (x *GuildInfo) GetChannelNum() uint32 { + if x != nil && x.ChannelNum != nil { + return *x.ChannelNum + } + return 0 +} + +func (x *GuildInfo) GetMemberChangeSeq() *MsgSeq { + if x != nil { + return x.MemberChangeSeq + } + return nil +} + +func (x *GuildInfo) GetGuildInfoChangeSeq() *MsgSeq { + if x != nil { + return x.GuildInfoChangeSeq + } + return nil +} + +func (x *GuildInfo) GetChannelChangeSeq() *MsgSeq { + if x != nil { + return x.ChannelChangeSeq + } + return nil +} + +type GuildInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildCode *uint32 `protobuf:"varint,2,opt,name=guildCode" json:"guildCode,omitempty"` + OwnerId *uint32 `protobuf:"varint,3,opt,name=ownerId" json:"ownerId,omitempty"` + CreateTime *uint32 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + MemberMaxNum *uint32 `protobuf:"varint,5,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` + MemberNum *uint32 `protobuf:"varint,6,opt,name=memberNum" json:"memberNum,omitempty"` + GuildType *uint32 `protobuf:"varint,7,opt,name=guildType" json:"guildType,omitempty"` + GuildName *uint32 `protobuf:"varint,8,opt,name=guildName" json:"guildName,omitempty"` + RobotList *uint32 `protobuf:"varint,9,opt,name=robotList" json:"robotList,omitempty"` + AdminList *uint32 `protobuf:"varint,10,opt,name=adminList" json:"adminList,omitempty"` + RobotMaxNum *uint32 `protobuf:"varint,11,opt,name=robotMaxNum" json:"robotMaxNum,omitempty"` + AdminMaxNum *uint32 `protobuf:"varint,12,opt,name=adminMaxNum" json:"adminMaxNum,omitempty"` + Profile *uint32 `protobuf:"varint,13,opt,name=profile" json:"profile,omitempty"` + FaceSeq *uint32 `protobuf:"varint,14,opt,name=faceSeq" json:"faceSeq,omitempty"` + GuildStatus *uint32 `protobuf:"varint,15,opt,name=guildStatus" json:"guildStatus,omitempty"` + ChannelNum *uint32 `protobuf:"varint,16,opt,name=channelNum" json:"channelNum,omitempty"` + MemberChangeSeq *uint32 `protobuf:"varint,5002,opt,name=memberChangeSeq" json:"memberChangeSeq,omitempty"` + GuildInfoChangeSeq *uint32 `protobuf:"varint,5003,opt,name=guildInfoChangeSeq" json:"guildInfoChangeSeq,omitempty"` + ChannelChangeSeq *uint32 `protobuf:"varint,5004,opt,name=channelChangeSeq" json:"channelChangeSeq,omitempty"` +} + +func (x *GuildInfoFilter) Reset() { + *x = GuildInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildInfoFilter) ProtoMessage() {} + +func (x *GuildInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildInfoFilter.ProtoReflect.Descriptor instead. +func (*GuildInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{16} +} + +func (x *GuildInfoFilter) GetGuildCode() uint32 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *GuildInfoFilter) GetOwnerId() uint32 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +func (x *GuildInfoFilter) GetCreateTime() uint32 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *GuildInfoFilter) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +func (x *GuildInfoFilter) GetMemberNum() uint32 { + if x != nil && x.MemberNum != nil { + return *x.MemberNum + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildType() uint32 { + if x != nil && x.GuildType != nil { + return *x.GuildType + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildName() uint32 { + if x != nil && x.GuildName != nil { + return *x.GuildName + } + return 0 +} + +func (x *GuildInfoFilter) GetRobotList() uint32 { + if x != nil && x.RobotList != nil { + return *x.RobotList + } + return 0 +} + +func (x *GuildInfoFilter) GetAdminList() uint32 { + if x != nil && x.AdminList != nil { + return *x.AdminList + } + return 0 +} + +func (x *GuildInfoFilter) GetRobotMaxNum() uint32 { + if x != nil && x.RobotMaxNum != nil { + return *x.RobotMaxNum + } + return 0 +} + +func (x *GuildInfoFilter) GetAdminMaxNum() uint32 { + if x != nil && x.AdminMaxNum != nil { + return *x.AdminMaxNum + } + return 0 +} + +func (x *GuildInfoFilter) GetProfile() uint32 { + if x != nil && x.Profile != nil { + return *x.Profile + } + return 0 +} + +func (x *GuildInfoFilter) GetFaceSeq() uint32 { + if x != nil && x.FaceSeq != nil { + return *x.FaceSeq + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildStatus() uint32 { + if x != nil && x.GuildStatus != nil { + return *x.GuildStatus + } + return 0 +} + +func (x *GuildInfoFilter) GetChannelNum() uint32 { + if x != nil && x.ChannelNum != nil { + return *x.ChannelNum + } + return 0 +} + +func (x *GuildInfoFilter) GetMemberChangeSeq() uint32 { + if x != nil && x.MemberChangeSeq != nil { + return *x.MemberChangeSeq + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildInfoChangeSeq() uint32 { + if x != nil && x.GuildInfoChangeSeq != nil { + return *x.GuildInfoChangeSeq + } + return 0 +} + +func (x *GuildInfoFilter) GetChannelChangeSeq() uint32 { + if x != nil && x.ChannelChangeSeq != nil { + return *x.ChannelChangeSeq + } + return 0 +} + +type JoinGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId *uint64 `protobuf:"varint,3,opt,name=memberId" json:"memberId,omitempty"` + MemberType *uint32 `protobuf:"varint,4,opt,name=memberType" json:"memberType,omitempty"` + MemberTinyid *uint64 `protobuf:"varint,5,opt,name=memberTinyid" json:"memberTinyid,omitempty"` +} + +func (x *JoinGuild) Reset() { + *x = JoinGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinGuild) ProtoMessage() {} + +func (x *JoinGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinGuild.ProtoReflect.Descriptor instead. +func (*JoinGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{17} +} + +func (x *JoinGuild) GetMemberId() uint64 { + if x != nil && x.MemberId != nil { + return *x.MemberId + } + return 0 +} + +func (x *JoinGuild) GetMemberType() uint32 { + if x != nil && x.MemberType != nil { + return *x.MemberType + } + return 0 +} + +func (x *JoinGuild) GetMemberTinyid() uint64 { + if x != nil && x.MemberTinyid != nil { + return *x.MemberTinyid + } + return 0 +} + +type KickOffGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId *uint64 `protobuf:"varint,3,opt,name=memberId" json:"memberId,omitempty"` + SetBlack *uint32 `protobuf:"varint,4,opt,name=setBlack" json:"setBlack,omitempty"` + MemberTinyid *uint64 `protobuf:"varint,5,opt,name=memberTinyid" json:"memberTinyid,omitempty"` +} + +func (x *KickOffGuild) Reset() { + *x = KickOffGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KickOffGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KickOffGuild) ProtoMessage() {} + +func (x *KickOffGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KickOffGuild.ProtoReflect.Descriptor instead. +func (*KickOffGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{18} +} + +func (x *KickOffGuild) GetMemberId() uint64 { + if x != nil && x.MemberId != nil { + return *x.MemberId + } + return 0 +} + +func (x *KickOffGuild) GetSetBlack() uint32 { + if x != nil && x.SetBlack != nil { + return *x.SetBlack + } + return 0 +} + +func (x *KickOffGuild) GetMemberTinyid() uint64 { + if x != nil && x.MemberTinyid != nil { + return *x.MemberTinyid + } + return 0 +} + +type LiveChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId *uint64 `protobuf:"varint,1,opt,name=roomId" json:"roomId,omitempty"` + AnchorUin *uint64 `protobuf:"varint,2,opt,name=anchorUin" json:"anchorUin,omitempty"` + Name []byte `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` +} + +func (x *LiveChannelInfo) Reset() { + *x = LiveChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveChannelInfo) ProtoMessage() {} + +func (x *LiveChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveChannelInfo.ProtoReflect.Descriptor instead. +func (*LiveChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{19} +} + +func (x *LiveChannelInfo) GetRoomId() uint64 { + if x != nil && x.RoomId != nil { + return *x.RoomId + } + return 0 +} + +func (x *LiveChannelInfo) GetAnchorUin() uint64 { + if x != nil && x.AnchorUin != nil { + return *x.AnchorUin + } + return 0 +} + +func (x *LiveChannelInfo) GetName() []byte { + if x != nil { + return x.Name + } + return nil +} + +type LiveChannelInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsNeedRoomId *uint32 `protobuf:"varint,1,opt,name=isNeedRoomId" json:"isNeedRoomId,omitempty"` + IsNeedAnchorUin *uint32 `protobuf:"varint,2,opt,name=isNeedAnchorUin" json:"isNeedAnchorUin,omitempty"` + IsNeedName *uint32 `protobuf:"varint,3,opt,name=isNeedName" json:"isNeedName,omitempty"` +} + +func (x *LiveChannelInfoFilter) Reset() { + *x = LiveChannelInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveChannelInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveChannelInfoFilter) ProtoMessage() {} + +func (x *LiveChannelInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveChannelInfoFilter.ProtoReflect.Descriptor instead. +func (*LiveChannelInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{20} +} + +func (x *LiveChannelInfoFilter) GetIsNeedRoomId() uint32 { + if x != nil && x.IsNeedRoomId != nil { + return *x.IsNeedRoomId + } + return 0 +} + +func (x *LiveChannelInfoFilter) GetIsNeedAnchorUin() uint32 { + if x != nil && x.IsNeedAnchorUin != nil { + return *x.IsNeedAnchorUin + } + return 0 +} + +func (x *LiveChannelInfoFilter) GetIsNeedName() uint32 { + if x != nil && x.IsNeedName != nil { + return *x.IsNeedName + } + return 0 +} + +type LiveRoomStatusChangeMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + RoomId *uint64 `protobuf:"varint,3,opt,name=roomId" json:"roomId,omitempty"` + AnchorTinyid *uint64 `protobuf:"varint,4,opt,name=anchorTinyid" json:"anchorTinyid,omitempty"` + Action *uint32 `protobuf:"varint,5,opt,name=action" json:"action,omitempty"` +} + +func (x *LiveRoomStatusChangeMsg) Reset() { + *x = LiveRoomStatusChangeMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveRoomStatusChangeMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveRoomStatusChangeMsg) ProtoMessage() {} + +func (x *LiveRoomStatusChangeMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveRoomStatusChangeMsg.ProtoReflect.Descriptor instead. +func (*LiveRoomStatusChangeMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{21} +} + +func (x *LiveRoomStatusChangeMsg) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetRoomId() uint64 { + if x != nil && x.RoomId != nil { + return *x.RoomId + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetAnchorTinyid() uint64 { + if x != nil && x.AnchorTinyid != nil { + return *x.AnchorTinyid + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type MsgEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq *uint64 `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"` + EventType *uint64 `protobuf:"varint,2,opt,name=eventType" json:"eventType,omitempty"` + EventVersion *uint64 `protobuf:"varint,3,opt,name=eventVersion" json:"eventVersion,omitempty"` +} + +func (x *MsgEvent) Reset() { + *x = MsgEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgEvent) ProtoMessage() {} + +func (x *MsgEvent) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgEvent.ProtoReflect.Descriptor instead. +func (*MsgEvent) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{22} +} + +func (x *MsgEvent) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MsgEvent) GetEventType() uint64 { + if x != nil && x.EventType != nil { + return *x.EventType + } + return 0 +} + +func (x *MsgEvent) GetEventVersion() uint64 { + if x != nil && x.EventVersion != nil { + return *x.EventVersion + } + return 0 +} + +type MsgSeq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq *uint64 `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"` + Time *uint64 `protobuf:"varint,2,opt,name=time" json:"time,omitempty"` +} + +func (x *MsgSeq) Reset() { + *x = MsgSeq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSeq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSeq) ProtoMessage() {} + +func (x *MsgSeq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgSeq.ProtoReflect.Descriptor instead. +func (*MsgSeq) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{23} +} + +func (x *MsgSeq) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MsgSeq) GetTime() uint64 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +type QuitGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QuitGuild) Reset() { + *x = QuitGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuitGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuitGuild) ProtoMessage() {} + +func (x *QuitGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuitGuild.ProtoReflect.Descriptor instead. +func (*QuitGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{24} +} + +type ReadNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` + ReadMsgSeq *MsgSeq `protobuf:"bytes,3,opt,name=readMsgSeq" json:"readMsgSeq,omitempty"` + ReadCntMsgSeq *MsgSeq `protobuf:"bytes,4,opt,name=readCntMsgSeq" json:"readCntMsgSeq,omitempty"` + ReadMsgMeta []byte `protobuf:"bytes,5,opt,name=readMsgMeta" json:"readMsgMeta,omitempty"` +} + +func (x *ReadNotify) Reset() { + *x = ReadNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadNotify) ProtoMessage() {} + +func (x *ReadNotify) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadNotify.ProtoReflect.Descriptor instead. +func (*ReadNotify) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{25} +} + +func (x *ReadNotify) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ReadNotify) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ReadNotify) GetReadMsgSeq() *MsgSeq { + if x != nil { + return x.ReadMsgSeq + } + return nil +} + +func (x *ReadNotify) GetReadCntMsgSeq() *MsgSeq { + if x != nil { + return x.ReadCntMsgSeq + } + return nil +} + +func (x *ReadNotify) GetReadMsgMeta() []byte { + if x != nil { + return x.ReadMsgMeta + } + return nil +} + +type SchedulerMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatorHeadUrl []byte `protobuf:"bytes,1,opt,name=creatorHeadUrl" json:"creatorHeadUrl,omitempty"` + Wording *string `protobuf:"bytes,2,opt,name=wording" json:"wording,omitempty"` + ExpireTimeMs *uint64 `protobuf:"varint,3,opt,name=expireTimeMs" json:"expireTimeMs,omitempty"` +} + +func (x *SchedulerMsg) Reset() { + *x = SchedulerMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SchedulerMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SchedulerMsg) ProtoMessage() {} + +func (x *SchedulerMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SchedulerMsg.ProtoReflect.Descriptor instead. +func (*SchedulerMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{26} +} + +func (x *SchedulerMsg) GetCreatorHeadUrl() []byte { + if x != nil { + return x.CreatorHeadUrl + } + return nil +} + +func (x *SchedulerMsg) GetWording() string { + if x != nil && x.Wording != nil { + return *x.Wording + } + return "" +} + +func (x *SchedulerMsg) GetExpireTimeMs() uint64 { + if x != nil && x.ExpireTimeMs != nil { + return *x.ExpireTimeMs + } + return 0 +} + +type SetAdmin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChanId *uint64 `protobuf:"varint,2,opt,name=chanId" json:"chanId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + AdminId *uint64 `protobuf:"varint,4,opt,name=adminId" json:"adminId,omitempty"` + AdminTinyid *uint64 `protobuf:"varint,5,opt,name=adminTinyid" json:"adminTinyid,omitempty"` + OperateType *uint32 `protobuf:"varint,6,opt,name=operateType" json:"operateType,omitempty"` +} + +func (x *SetAdmin) Reset() { + *x = SetAdmin{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetAdmin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetAdmin) ProtoMessage() {} + +func (x *SetAdmin) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetAdmin.ProtoReflect.Descriptor instead. +func (*SetAdmin) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{27} +} + +func (x *SetAdmin) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SetAdmin) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +func (x *SetAdmin) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *SetAdmin) GetAdminId() uint64 { + if x != nil && x.AdminId != nil { + return *x.AdminId + } + return 0 +} + +func (x *SetAdmin) GetAdminTinyid() uint64 { + if x != nil && x.AdminTinyid != nil { + return *x.AdminTinyid + } + return 0 +} + +func (x *SetAdmin) GetOperateType() uint32 { + if x != nil && x.OperateType != nil { + return *x.OperateType + } + return 0 +} + +type SetMsgRecvType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChanId *uint64 `protobuf:"varint,2,opt,name=chanId" json:"chanId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + MsgNotifyType *uint32 `protobuf:"varint,4,opt,name=msgNotifyType" json:"msgNotifyType,omitempty"` +} + +func (x *SetMsgRecvType) Reset() { + *x = SetMsgRecvType{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMsgRecvType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMsgRecvType) ProtoMessage() {} + +func (x *SetMsgRecvType) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMsgRecvType.ProtoReflect.Descriptor instead. +func (*SetMsgRecvType) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{28} +} + +func (x *SetMsgRecvType) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SetMsgRecvType) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +func (x *SetMsgRecvType) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *SetMsgRecvType) GetMsgNotifyType() uint32 { + if x != nil && x.MsgNotifyType != nil { + return *x.MsgNotifyType + } + return 0 +} + +type SetMute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action *uint32 `protobuf:"varint,1,opt,name=action" json:"action,omitempty"` + TinyID *uint64 `protobuf:"varint,2,opt,name=tinyID" json:"tinyID,omitempty"` +} + +func (x *SetMute) Reset() { + *x = SetMute{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMute) ProtoMessage() {} + +func (x *SetMute) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMute.ProtoReflect.Descriptor instead. +func (*SetMute) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{29} +} + +func (x *SetMute) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +func (x *SetMute) GetTinyID() uint64 { + if x != nil && x.TinyID != nil { + return *x.TinyID + } + return 0 +} + +type SetTop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action *uint32 `protobuf:"varint,1,opt,name=action" json:"action,omitempty"` +} + +func (x *SetTop) Reset() { + *x = SetTop{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetTop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetTop) ProtoMessage() {} + +func (x *SetTop) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetTop.ProtoReflect.Descriptor instead. +func (*SetTop) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{30} +} + +func (x *SetTop) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type SwitchDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + Platform *uint32 `protobuf:"varint,3,opt,name=platform" json:"platform,omitempty"` +} + +func (x *SwitchDetail) Reset() { + *x = SwitchDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchDetail) ProtoMessage() {} + +func (x *SwitchDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchDetail.ProtoReflect.Descriptor instead. +func (*SwitchDetail) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{31} +} + +func (x *SwitchDetail) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SwitchDetail) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *SwitchDetail) GetPlatform() uint32 { + if x != nil && x.Platform != nil { + return *x.Platform + } + return 0 +} + +type SwitchLiveRoom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + RoomId *uint64 `protobuf:"varint,3,opt,name=roomId" json:"roomId,omitempty"` + Tinyid *uint64 `protobuf:"varint,4,opt,name=tinyid" json:"tinyid,omitempty"` + Action *uint32 `protobuf:"varint,5,opt,name=action" json:"action,omitempty"` +} + +func (x *SwitchLiveRoom) Reset() { + *x = SwitchLiveRoom{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchLiveRoom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchLiveRoom) ProtoMessage() {} + +func (x *SwitchLiveRoom) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchLiveRoom.ProtoReflect.Descriptor instead. +func (*SwitchLiveRoom) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{32} +} + +func (x *SwitchLiveRoom) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SwitchLiveRoom) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *SwitchLiveRoom) GetRoomId() uint64 { + if x != nil && x.RoomId != nil { + return *x.RoomId + } + return 0 +} + +func (x *SwitchLiveRoom) GetTinyid() uint64 { + if x != nil && x.Tinyid != nil { + return *x.Tinyid + } + return 0 +} + +func (x *SwitchLiveRoom) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type SwitchVoiceChannel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId *uint64 `protobuf:"varint,1,opt,name=memberId" json:"memberId,omitempty"` + EnterDetail *SwitchDetail `protobuf:"bytes,2,opt,name=enterDetail" json:"enterDetail,omitempty"` + LeaveDetail *SwitchDetail `protobuf:"bytes,3,opt,name=leaveDetail" json:"leaveDetail,omitempty"` +} + +func (x *SwitchVoiceChannel) Reset() { + *x = SwitchVoiceChannel{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchVoiceChannel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchVoiceChannel) ProtoMessage() {} + +func (x *SwitchVoiceChannel) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchVoiceChannel.ProtoReflect.Descriptor instead. +func (*SwitchVoiceChannel) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{33} +} + +func (x *SwitchVoiceChannel) GetMemberId() uint64 { + if x != nil && x.MemberId != nil { + return *x.MemberId + } + return 0 +} + +func (x *SwitchVoiceChannel) GetEnterDetail() *SwitchDetail { + if x != nil { + return x.EnterDetail + } + return nil +} + +func (x *SwitchVoiceChannel) GetLeaveDetail() *SwitchDetail { + if x != nil { + return x.LeaveDetail + } + return nil +} + +type UpdateCategory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CategoryInfo []*CategoryInfo `protobuf:"bytes,1,rep,name=categoryInfo" json:"categoryInfo,omitempty"` + NoClassifyCategoryInfo *CategoryInfo `protobuf:"bytes,2,opt,name=noClassifyCategoryInfo" json:"noClassifyCategoryInfo,omitempty"` +} + +func (x *UpdateCategory) Reset() { + *x = UpdateCategory{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCategory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCategory) ProtoMessage() {} + +func (x *UpdateCategory) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCategory.ProtoReflect.Descriptor instead. +func (*UpdateCategory) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{34} +} + +func (x *UpdateCategory) GetCategoryInfo() []*CategoryInfo { + if x != nil { + return x.CategoryInfo + } + return nil +} + +func (x *UpdateCategory) GetNoClassifyCategoryInfo() *CategoryInfo { + if x != nil { + return x.NoClassifyCategoryInfo + } + return nil +} + +type UpdateMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgSeq *uint64 `protobuf:"varint,1,opt,name=msgSeq" json:"msgSeq,omitempty"` + OrigMsgUncountable *bool `protobuf:"varint,2,opt,name=origMsgUncountable" json:"origMsgUncountable,omitempty"` + EventType *uint64 `protobuf:"varint,3,opt,name=eventType" json:"eventType,omitempty"` + EventVersion *uint64 `protobuf:"varint,4,opt,name=eventVersion" json:"eventVersion,omitempty"` + OperatorTinyid *uint64 `protobuf:"varint,5,opt,name=operatorTinyid" json:"operatorTinyid,omitempty"` + OperatorRole *uint64 `protobuf:"varint,6,opt,name=operatorRole" json:"operatorRole,omitempty"` + Reason *uint64 `protobuf:"varint,7,opt,name=reason" json:"reason,omitempty"` + Timestamp *uint64 `protobuf:"varint,8,opt,name=timestamp" json:"timestamp,omitempty"` +} + +func (x *UpdateMsg) Reset() { + *x = UpdateMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMsg) ProtoMessage() {} + +func (x *UpdateMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMsg.ProtoReflect.Descriptor instead. +func (*UpdateMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{35} +} + +func (x *UpdateMsg) GetMsgSeq() uint64 { + if x != nil && x.MsgSeq != nil { + return *x.MsgSeq + } + return 0 +} + +func (x *UpdateMsg) GetOrigMsgUncountable() bool { + if x != nil && x.OrigMsgUncountable != nil { + return *x.OrigMsgUncountable + } + return false +} + +func (x *UpdateMsg) GetEventType() uint64 { + if x != nil && x.EventType != nil { + return *x.EventType + } + return 0 +} + +func (x *UpdateMsg) GetEventVersion() uint64 { + if x != nil && x.EventVersion != nil { + return *x.EventVersion + } + return 0 +} + +func (x *UpdateMsg) GetOperatorTinyid() uint64 { + if x != nil && x.OperatorTinyid != nil { + return *x.OperatorTinyid + } + return 0 +} + +func (x *UpdateMsg) GetOperatorRole() uint64 { + if x != nil && x.OperatorRole != nil { + return *x.OperatorRole + } + return 0 +} + +func (x *UpdateMsg) GetReason() uint64 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +func (x *UpdateMsg) GetTimestamp() uint64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +type UpdateVoiceBlockList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action *uint32 `protobuf:"varint,1,opt,name=action" json:"action,omitempty"` + ObjectTinyid *uint64 `protobuf:"varint,2,opt,name=objectTinyid" json:"objectTinyid,omitempty"` +} + +func (x *UpdateVoiceBlockList) Reset() { + *x = UpdateVoiceBlockList{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateVoiceBlockList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateVoiceBlockList) ProtoMessage() {} + +func (x *UpdateVoiceBlockList) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateVoiceBlockList.ProtoReflect.Descriptor instead. +func (*UpdateVoiceBlockList) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{36} +} + +func (x *UpdateVoiceBlockList) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +func (x *UpdateVoiceBlockList) GetObjectTinyid() uint64 { + if x != nil && x.ObjectTinyid != nil { + return *x.ObjectTinyid + } + return 0 +} + +type VoiceChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberMaxNum *uint32 `protobuf:"varint,1,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` +} + +func (x *VoiceChannelInfo) Reset() { + *x = VoiceChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VoiceChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VoiceChannelInfo) ProtoMessage() {} + +func (x *VoiceChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VoiceChannelInfo.ProtoReflect.Descriptor instead. +func (*VoiceChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{37} +} + +func (x *VoiceChannelInfo) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +type VoiceChannelInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberMaxNum *uint32 `protobuf:"varint,1,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` +} + +func (x *VoiceChannelInfoFilter) Reset() { + *x = VoiceChannelInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VoiceChannelInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VoiceChannelInfoFilter) ProtoMessage() {} + +func (x *VoiceChannelInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VoiceChannelInfoFilter.ProtoReflect.Descriptor instead. +func (*VoiceChannelInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{38} +} + +func (x *VoiceChannelInfoFilter) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +type CommGrayTips_TemplParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name []byte `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CommGrayTips_TemplParam) Reset() { + *x = CommGrayTips_TemplParam{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommGrayTips_TemplParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommGrayTips_TemplParam) ProtoMessage() {} + +func (x *CommGrayTips_TemplParam) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommGrayTips_TemplParam.ProtoReflect.Descriptor instead. +func (*CommGrayTips_TemplParam) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *CommGrayTips_TemplParam) GetName() []byte { + if x != nil { + return x.Name + } + return nil +} + +func (x *CommGrayTips_TemplParam) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +var File_pb_channel_servtype_proto protoreflect.FileDescriptor + +var file_pb_channel_servtype_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x4d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x57, + 0x0a, 0x13, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x64, 0x22, 0x93, 0x04, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x61, 0x6b, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, + 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x57, 0x0a, 0x16, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x16, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x54, 0x0a, 0x15, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x15, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x22, 0xa4, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x63, 0x68, 0x61, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0xb7, 0x02, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x23, 0x0a, 0x09, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x22, 0xb0, + 0x04, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x73, + 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x70, 0x65, + 0x61, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, + 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x35, 0x0a, + 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, 0x74, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x10, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x6c, + 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, + 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, + 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x65, 0x61, + 0x6b, 0x22, 0xc6, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x62, 0x75, 0x73, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x62, 0x75, 0x73, 0x69, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x46, 0x6c, + 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x46, 0x6c, + 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0a, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x47, + 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x70, 0x73, + 0x53, 0x65, 0x71, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x70, + 0x73, 0x53, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x1a, 0x36, 0x0a, 0x0a, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x76, 0x0a, 0x0a, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x0b, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0xc2, + 0x0b, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x52, 0x0c, + 0x63, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x12, 0x36, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, + 0x30, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, + 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x6b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x0c, + 0x6b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x09, + 0x71, 0x75, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x52, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x42, + 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x43, 0x68, + 0x61, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x12, + 0x3f, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2d, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, + 0x3f, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0e, 0x73, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x30, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x73, 0x67, 0x12, 0x27, 0x0a, 0x06, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x54, 0x6f, 0x70, 0x52, 0x06, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x12, 0x41, 0x0a, 0x0d, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x0d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3f, + 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x51, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, + 0x74, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x07, 0x73, 0x65, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x54, + 0x0a, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x14, + 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x3f, 0x0a, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, 0x69, + 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x76, + 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x76, + 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x4d, 0x73, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x33, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x28, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x44, 0x0a, + 0x11, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x73, 0x67, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, + 0x52, 0x11, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x73, 0x67, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0x64, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x73, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x69, 0x73, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0xac, 0x05, 0x0a, 0x09, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x6f, 0x62, + 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x53, + 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x53, 0x65, + 0x71, 0x12, 0x39, 0x0a, 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x0f, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, + 0x8a, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x12, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8b, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x12, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x10, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8c, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x22, 0xe6, 0x04, 0x0a, 0x0f, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, + 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x61, 0x63, 0x65, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, + 0x61, 0x63, 0x65, 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8a, 0x27, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x53, 0x65, 0x71, 0x12, 0x2f, 0x0a, 0x12, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8b, 0x27, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x12, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x53, 0x65, 0x71, 0x12, 0x2b, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8c, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, + 0x71, 0x22, 0x6b, 0x0a, 0x09, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x22, 0x6a, + 0x0a, 0x0c, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x0f, 0x4c, 0x69, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x55, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x76, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x52, + 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0xa5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0c, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5e, 0x0a, 0x08, 0x4d, 0x73, 0x67, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x06, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x0b, 0x0a, 0x09, 0x51, 0x75, 0x69, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, + 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x35, 0x0a, 0x0d, + 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x4d, 0x65, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, + 0x67, 0x4d, 0x65, 0x74, 0x61, 0x22, 0x74, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x77, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x77, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x08, + 0x53, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6e, + 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x74, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, + 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x44, 0x22, 0x20, + 0x0a, 0x06, 0x53, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x0e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, + 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x9a, 0x01, 0x0a, + 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x39, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x16, 0x6e, 0x6f, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x16, 0x6e, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x97, 0x02, 0x0a, 0x09, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, + 0x2e, 0x0a, 0x12, 0x6f, 0x72, 0x69, 0x67, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6f, 0x72, 0x69, + 0x67, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, + 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0x52, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, + 0x79, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x22, 0x36, 0x0a, 0x10, 0x56, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x22, + 0x3c, 0x0a, 0x16, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x42, 0x14, 0x5a, + 0x12, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_servtype_proto_rawDescOnce sync.Once + file_pb_channel_servtype_proto_rawDescData = file_pb_channel_servtype_proto_rawDesc +) + +func file_pb_channel_servtype_proto_rawDescGZIP() []byte { + file_pb_channel_servtype_proto_rawDescOnce.Do(func() { + file_pb_channel_servtype_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_servtype_proto_rawDescData) + }) + return file_pb_channel_servtype_proto_rawDescData +} + +var file_pb_channel_servtype_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_pb_channel_servtype_proto_goTypes = []interface{}{ + (*AppChannelMsg)(nil), // 0: channel.AppChannelMsg + (*CategoryChannelInfo)(nil), // 1: channel.CategoryChannelInfo + (*CategoryInfo)(nil), // 2: channel.CategoryInfo + (*ChanInfoFilter)(nil), // 3: channel.ChanInfoFilter + (*ChangeChanInfo)(nil), // 4: channel.ChangeChanInfo + (*ChangeGuildInfo)(nil), // 5: channel.ChangeGuildInfo + (*ChannelID)(nil), // 6: channel.ChannelID + (*ServChannelInfo)(nil), // 7: channel.ServChannelInfo + (*CommGrayTips)(nil), // 8: channel.CommGrayTips + (*CreateChan)(nil), // 9: channel.CreateChan + (*CreateGuild)(nil), // 10: channel.CreateGuild + (*DestroyChan)(nil), // 11: channel.DestroyChan + (*DestroyGuild)(nil), // 12: channel.DestroyGuild + (*EventBody)(nil), // 13: channel.EventBody + (*GroupProStatus)(nil), // 14: channel.GroupProStatus + (*GuildInfo)(nil), // 15: channel.GuildInfo + (*GuildInfoFilter)(nil), // 16: channel.GuildInfoFilter + (*JoinGuild)(nil), // 17: channel.JoinGuild + (*KickOffGuild)(nil), // 18: channel.KickOffGuild + (*LiveChannelInfo)(nil), // 19: channel.LiveChannelInfo + (*LiveChannelInfoFilter)(nil), // 20: channel.LiveChannelInfoFilter + (*LiveRoomStatusChangeMsg)(nil), // 21: channel.LiveRoomStatusChangeMsg + (*MsgEvent)(nil), // 22: channel.MsgEvent + (*MsgSeq)(nil), // 23: channel.MsgSeq + (*QuitGuild)(nil), // 24: channel.QuitGuild + (*ReadNotify)(nil), // 25: channel.ReadNotify + (*SchedulerMsg)(nil), // 26: channel.SchedulerMsg + (*SetAdmin)(nil), // 27: channel.SetAdmin + (*SetMsgRecvType)(nil), // 28: channel.SetMsgRecvType + (*SetMute)(nil), // 29: channel.SetMute + (*SetTop)(nil), // 30: channel.SetTop + (*SwitchDetail)(nil), // 31: channel.SwitchDetail + (*SwitchLiveRoom)(nil), // 32: channel.SwitchLiveRoom + (*SwitchVoiceChannel)(nil), // 33: channel.SwitchVoiceChannel + (*UpdateCategory)(nil), // 34: channel.UpdateCategory + (*UpdateMsg)(nil), // 35: channel.UpdateMsg + (*UpdateVoiceBlockList)(nil), // 36: channel.UpdateVoiceBlockList + (*VoiceChannelInfo)(nil), // 37: channel.VoiceChannelInfo + (*VoiceChannelInfoFilter)(nil), // 38: channel.VoiceChannelInfoFilter + (*CommGrayTips_TemplParam)(nil), // 39: channel.CommGrayTips.TemplParam +} +var file_pb_channel_servtype_proto_depIdxs = []int32{ + 1, // 0: channel.CategoryInfo.channelInfo:type_name -> channel.CategoryChannelInfo + 38, // 1: channel.ChanInfoFilter.voiceChannelInfoFilter:type_name -> channel.VoiceChannelInfoFilter + 20, // 2: channel.ChanInfoFilter.liveChannelInfoFilter:type_name -> channel.LiveChannelInfoFilter + 23, // 3: channel.ChangeChanInfo.infoSeq:type_name -> channel.MsgSeq + 3, // 4: channel.ChangeChanInfo.chanInfoFilter:type_name -> channel.ChanInfoFilter + 7, // 5: channel.ChangeChanInfo.chanInfo:type_name -> channel.ServChannelInfo + 23, // 6: channel.ChangeGuildInfo.infoSeq:type_name -> channel.MsgSeq + 23, // 7: channel.ChangeGuildInfo.faceSeq:type_name -> channel.MsgSeq + 16, // 8: channel.ChangeGuildInfo.guildInfoFilter:type_name -> channel.GuildInfoFilter + 15, // 9: channel.ChangeGuildInfo.guildInfo:type_name -> channel.GuildInfo + 23, // 10: channel.ServChannelInfo.lastMsgSeq:type_name -> channel.MsgSeq + 23, // 11: channel.ServChannelInfo.lastCntMsgSeq:type_name -> channel.MsgSeq + 37, // 12: channel.ServChannelInfo.voiceChannelInfo:type_name -> channel.VoiceChannelInfo + 19, // 13: channel.ServChannelInfo.liveChannelInfo:type_name -> channel.LiveChannelInfo + 39, // 14: channel.CommGrayTips.templParam:type_name -> channel.CommGrayTips.TemplParam + 6, // 15: channel.CreateChan.createId:type_name -> channel.ChannelID + 6, // 16: channel.DestroyChan.deleteId:type_name -> channel.ChannelID + 25, // 17: channel.EventBody.readNotify:type_name -> channel.ReadNotify + 8, // 18: channel.EventBody.commGrayTips:type_name -> channel.CommGrayTips + 10, // 19: channel.EventBody.createGuild:type_name -> channel.CreateGuild + 12, // 20: channel.EventBody.destroyGuild:type_name -> channel.DestroyGuild + 17, // 21: channel.EventBody.joinGuild:type_name -> channel.JoinGuild + 18, // 22: channel.EventBody.kickOffGuild:type_name -> channel.KickOffGuild + 24, // 23: channel.EventBody.quitGuild:type_name -> channel.QuitGuild + 5, // 24: channel.EventBody.changeGuildInfo:type_name -> channel.ChangeGuildInfo + 9, // 25: channel.EventBody.createChan:type_name -> channel.CreateChan + 11, // 26: channel.EventBody.destroyChan:type_name -> channel.DestroyChan + 4, // 27: channel.EventBody.changeChanInfo:type_name -> channel.ChangeChanInfo + 27, // 28: channel.EventBody.setAdmin:type_name -> channel.SetAdmin + 28, // 29: channel.EventBody.setMsgRecvType:type_name -> channel.SetMsgRecvType + 35, // 30: channel.EventBody.updateMsg:type_name -> channel.UpdateMsg + 30, // 31: channel.EventBody.setTop:type_name -> channel.SetTop + 33, // 32: channel.EventBody.switchChannel:type_name -> channel.SwitchVoiceChannel + 34, // 33: channel.EventBody.updateCategory:type_name -> channel.UpdateCategory + 36, // 34: channel.EventBody.updateVoiceBlockList:type_name -> channel.UpdateVoiceBlockList + 29, // 35: channel.EventBody.setMute:type_name -> channel.SetMute + 21, // 36: channel.EventBody.liveStatusChangeRoom:type_name -> channel.LiveRoomStatusChangeMsg + 32, // 37: channel.EventBody.switchLiveRoom:type_name -> channel.SwitchLiveRoom + 22, // 38: channel.EventBody.events:type_name -> channel.MsgEvent + 26, // 39: channel.EventBody.scheduler:type_name -> channel.SchedulerMsg + 0, // 40: channel.EventBody.appChannel:type_name -> channel.AppChannelMsg + 0, // 41: channel.EventBody.weakMsgAppChannel:type_name -> channel.AppChannelMsg + 14, // 42: channel.GuildInfo.guildStatus:type_name -> channel.GroupProStatus + 23, // 43: channel.GuildInfo.memberChangeSeq:type_name -> channel.MsgSeq + 23, // 44: channel.GuildInfo.guildInfoChangeSeq:type_name -> channel.MsgSeq + 23, // 45: channel.GuildInfo.channelChangeSeq:type_name -> channel.MsgSeq + 23, // 46: channel.ReadNotify.readMsgSeq:type_name -> channel.MsgSeq + 23, // 47: channel.ReadNotify.readCntMsgSeq:type_name -> channel.MsgSeq + 31, // 48: channel.SwitchVoiceChannel.enterDetail:type_name -> channel.SwitchDetail + 31, // 49: channel.SwitchVoiceChannel.leaveDetail:type_name -> channel.SwitchDetail + 2, // 50: channel.UpdateCategory.categoryInfo:type_name -> channel.CategoryInfo + 2, // 51: channel.UpdateCategory.noClassifyCategoryInfo:type_name -> channel.CategoryInfo + 52, // [52:52] is the sub-list for method output_type + 52, // [52:52] is the sub-list for method input_type + 52, // [52:52] is the sub-list for extension type_name + 52, // [52:52] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name +} + +func init() { file_pb_channel_servtype_proto_init() } +func file_pb_channel_servtype_proto_init() { + if File_pb_channel_servtype_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_channel_servtype_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppChannelMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CategoryChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CategoryInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChanInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeChanInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeGuildInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommGrayTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateChan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroyChan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroyGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupProStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickOffGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveChannelInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveRoomStatusChangeMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSeq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchedulerMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetAdmin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMsgRecvType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetTop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchLiveRoom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchVoiceChannel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCategory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateVoiceBlockList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoiceChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoiceChannelInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommGrayTips_TemplParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_servtype_proto_rawDesc, + NumEnums: 0, + NumMessages: 40, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_servtype_proto_goTypes, + DependencyIndexes: file_pb_channel_servtype_proto_depIdxs, + MessageInfos: file_pb_channel_servtype_proto_msgTypes, + }.Build() + File_pb_channel_servtype_proto = out.File + file_pb_channel_servtype_proto_rawDesc = nil + file_pb_channel_servtype_proto_goTypes = nil + file_pb_channel_servtype_proto_depIdxs = nil +} diff --git a/client/pb/channel/servtype.proto b/client/pb/channel/servtype.proto new file mode 100644 index 00000000..92d84768 --- /dev/null +++ b/client/pb/channel/servtype.proto @@ -0,0 +1,327 @@ +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; + +message AppChannelMsg { + optional string summary = 1; + optional string msg = 2; + optional uint64 expireTimeMs = 3; + optional uint32 schemaType = 4; + optional string schema = 5; +} + +message CategoryChannelInfo { + optional uint32 channelIndex = 1; + optional uint64 channelId = 2; +} + +message CategoryInfo { + optional uint32 categoryIndex = 1; + repeated CategoryChannelInfo channelInfo = 2; + optional bytes categoryName = 3; + optional uint64 categoryId = 4; +} + +message ChanInfoFilter { + optional uint32 channelName = 2; + optional uint32 creatorId = 3; + optional uint32 createTime = 4; + optional uint32 guildId = 5; + optional uint32 msgNotifyType = 6; + optional uint32 channelType = 7; + optional uint32 speakPermission = 8; + optional uint32 lastMsgSeq = 11; + optional uint32 lastCntMsgSeq = 12; + optional VoiceChannelInfoFilter voiceChannelInfoFilter = 14; + optional LiveChannelInfoFilter liveChannelInfoFilter = 15; + optional uint32 bannedSpeak = 16; +} + +message ChangeChanInfo { + optional uint64 guildId = 1; + optional uint64 chanId = 2; + optional uint64 operatorId = 3; + optional MsgSeq infoSeq = 4; + optional uint32 updateType = 5; + optional ChanInfoFilter chanInfoFilter = 6; + optional ServChannelInfo chanInfo = 7; +} + +message ChangeGuildInfo { + optional uint64 guildId = 1; + optional uint64 operatorId = 2; + optional MsgSeq infoSeq = 3; + optional MsgSeq faceSeq = 4; + optional uint32 updateType = 5; + optional GuildInfoFilter guildInfoFilter = 6; + optional GuildInfo guildInfo = 7; +} + +message ChannelID { + optional uint64 chanId = 1; +} + +message ServChannelInfo { + optional uint64 channelId = 1; + optional bytes channelName = 2; + optional uint64 creatorId = 3; + optional uint64 createTime = 4; + optional uint64 guildId = 5; + optional uint32 msgNotifyType = 6; + optional uint32 channelType = 7; + optional uint32 speakPermission = 8; + optional MsgSeq lastMsgSeq = 11; + optional MsgSeq lastCntMsgSeq = 12; + optional VoiceChannelInfo voiceChannelInfo = 14; + optional LiveChannelInfo liveChannelInfo = 15; + optional uint32 bannedSpeak = 16; +} + +message CommGrayTips { + optional uint64 busiType = 1; + optional uint64 busiId = 2; + optional uint32 ctrlFlag = 3; + optional uint64 templId = 4; + repeated TemplParam templParam = 5; + optional bytes content = 6; + optional uint64 tipsSeqId = 10; + optional bytes pbReserv = 100; + + message TemplParam { + optional bytes name = 1; + optional bytes value = 2; + } +} + +message CreateChan { + optional uint64 guildId = 1; + optional uint64 operatorId = 3; + repeated ChannelID createId = 4; +} + +message CreateGuild { + optional uint64 operatorId = 1; + optional uint64 guildId = 2; +} + +message DestroyChan { + optional uint64 guildId = 1; + optional uint64 operatorId = 3; + repeated ChannelID deleteId = 4; +} + +message DestroyGuild { + optional uint64 operatorId = 1; + optional uint64 guildId = 2; +} + +message EventBody { + optional ReadNotify readNotify = 1; + optional CommGrayTips commGrayTips = 2; + optional CreateGuild createGuild = 3; + optional DestroyGuild destroyGuild = 4; + optional JoinGuild joinGuild = 5; + optional KickOffGuild kickOffGuild = 6; + optional QuitGuild quitGuild = 7; + optional ChangeGuildInfo changeGuildInfo = 8; + optional CreateChan createChan = 9; + optional DestroyChan destroyChan = 10; + optional ChangeChanInfo changeChanInfo = 11; + optional SetAdmin setAdmin = 12; + optional SetMsgRecvType setMsgRecvType = 13; + optional UpdateMsg updateMsg = 14; + optional SetTop setTop = 17; + optional SwitchVoiceChannel switchChannel = 18; + optional UpdateCategory updateCategory = 21; + optional UpdateVoiceBlockList updateVoiceBlockList = 22; + optional SetMute setMute = 23; + optional LiveRoomStatusChangeMsg liveStatusChangeRoom = 24; + optional SwitchLiveRoom switchLiveRoom = 25; + repeated MsgEvent events = 39; + optional SchedulerMsg scheduler = 40; + optional AppChannelMsg appChannel = 41; + optional AppChannelMsg weakMsgAppChannel = 46; +} + +message GroupProStatus { + optional uint32 isEnable = 1; + optional uint32 isBanned = 2; + optional uint32 isFrozen = 3; +} + +message GuildInfo { + optional uint64 guildCode = 2; + optional uint64 ownerId = 3; + optional uint64 createTime = 4; + optional uint32 memberMaxNum = 5; + optional uint32 memberNum = 6; + optional uint32 guildType = 7; + optional bytes guildName = 8; + repeated uint64 robotList = 9; + repeated uint64 adminList = 10; + optional uint32 robotMaxNum = 11; + optional uint32 adminMaxNum = 12; + optional bytes profile = 13; + optional uint64 faceSeq = 14; + optional GroupProStatus guildStatus = 15; + optional uint32 channelNum = 16; + optional MsgSeq memberChangeSeq = 5002; + optional MsgSeq guildInfoChangeSeq = 5003; + optional MsgSeq channelChangeSeq = 5004; +} + +message GuildInfoFilter { + optional uint32 guildCode = 2; + optional uint32 ownerId = 3; + optional uint32 createTime = 4; + optional uint32 memberMaxNum = 5; + optional uint32 memberNum = 6; + optional uint32 guildType = 7; + optional uint32 guildName = 8; + optional uint32 robotList = 9; + optional uint32 adminList = 10; + optional uint32 robotMaxNum = 11; + optional uint32 adminMaxNum = 12; + optional uint32 profile = 13; + optional uint32 faceSeq = 14; + optional uint32 guildStatus = 15; + optional uint32 channelNum = 16; + optional uint32 memberChangeSeq = 5002; + optional uint32 guildInfoChangeSeq = 5003; + optional uint32 channelChangeSeq = 5004; +} + +message JoinGuild { + optional uint64 memberId = 3; + optional uint32 memberType = 4; + optional uint64 memberTinyid = 5; +} + +message KickOffGuild { + optional uint64 memberId = 3; + optional uint32 setBlack = 4; + optional uint64 memberTinyid = 5; +} + +message LiveChannelInfo { + optional uint64 roomId = 1; + optional uint64 anchorUin = 2; + optional bytes name = 3; +} + +message LiveChannelInfoFilter { + optional uint32 isNeedRoomId = 1; + optional uint32 isNeedAnchorUin = 2; + optional uint32 isNeedName = 3; +} + +message LiveRoomStatusChangeMsg { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint64 roomId = 3; + optional uint64 anchorTinyid = 4; + optional uint32 action = 5; +} + +message MsgEvent { + optional uint64 seq = 1; + optional uint64 eventType = 2; + optional uint64 eventVersion = 3; +} + +message MsgSeq { + optional uint64 seq = 1; + optional uint64 time = 2; +} + +message QuitGuild {} + +message ReadNotify { + optional uint64 channelId = 1; + optional uint64 guildId = 2; + optional MsgSeq readMsgSeq = 3; + optional MsgSeq readCntMsgSeq = 4; + optional bytes readMsgMeta = 5; +} + +message SchedulerMsg { + optional bytes creatorHeadUrl = 1; + optional string wording = 2; + optional uint64 expireTimeMs = 3; +} + +message SetAdmin { + optional uint64 guildId = 1; + optional uint64 chanId = 2; + optional uint64 operatorId = 3; + optional uint64 adminId = 4; + optional uint64 adminTinyid = 5; + optional uint32 operateType = 6; +} + +message SetMsgRecvType { + optional uint64 guildId = 1; + optional uint64 chanId = 2; + optional uint64 operatorId = 3; + optional uint32 msgNotifyType = 4; +} + +message SetMute { + optional uint32 action = 1; + optional uint64 tinyID = 2; +} + +message SetTop { + optional uint32 action = 1; +} + +message SwitchDetail { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint32 platform = 3; +} + +message SwitchLiveRoom { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint64 roomId = 3; + optional uint64 tinyid = 4; + optional uint32 action = 5; +} + +message SwitchVoiceChannel { + optional uint64 memberId = 1; + optional SwitchDetail enterDetail = 2; + optional SwitchDetail leaveDetail = 3; +} + +message UpdateCategory { + repeated CategoryInfo categoryInfo = 1; + optional CategoryInfo noClassifyCategoryInfo = 2; +} + +message UpdateMsg { + optional uint64 msgSeq = 1; + optional bool origMsgUncountable = 2; + optional uint64 eventType = 3; + optional uint64 eventVersion = 4; + optional uint64 operatorTinyid = 5; + optional uint64 operatorRole = 6; + optional uint64 reason = 7; + optional uint64 timestamp = 8; +} + +message UpdateVoiceBlockList { + optional uint32 action = 1; + optional uint64 objectTinyid = 2; +} + +message VoiceChannelInfo { + optional uint32 memberMaxNum = 1; +} + +message VoiceChannelInfoFilter { + optional uint32 memberMaxNum = 1; +} diff --git a/client/pb/msg/msg.pb.go b/client/pb/msg/msg.pb.go index f5d9403b..dbbf5183 100644 --- a/client/pb/msg/msg.pb.go +++ b/client/pb/msg/msg.pb.go @@ -2,16 +2,15 @@ // versions: // protoc-gen-go v1.27.1 // protoc v3.14.0 -// source: msg.proto +// source: pb/msg/msg.proto package msg import ( - reflect "reflect" - sync "sync" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( @@ -54,11 +53,11 @@ func (x SyncFlag) String() string { } func (SyncFlag) Descriptor() protoreflect.EnumDescriptor { - return file_msg_proto_enumTypes[0].Descriptor() + return file_pb_msg_msg_proto_enumTypes[0].Descriptor() } func (SyncFlag) Type() protoreflect.EnumType { - return &file_msg_proto_enumTypes[0] + return &file_pb_msg_msg_proto_enumTypes[0] } func (x SyncFlag) Number() protoreflect.EnumNumber { @@ -77,7 +76,7 @@ func (x *SyncFlag) UnmarshalJSON(b []byte) error { // Deprecated: Use SyncFlag.Descriptor instead. func (SyncFlag) EnumDescriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{0} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{0} } type GetMessageRequest struct { @@ -85,7 +84,7 @@ type GetMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SyncFlag *SyncFlag `protobuf:"varint,1,opt,name=syncFlag,enum=SyncFlag" json:"syncFlag,omitempty"` + SyncFlag *SyncFlag `protobuf:"varint,1,opt,name=syncFlag,enum=msg.SyncFlag" json:"syncFlag,omitempty"` SyncCookie []byte `protobuf:"bytes,2,opt,name=syncCookie" json:"syncCookie,omitempty"` RambleFlag *int32 `protobuf:"varint,3,opt,name=rambleFlag" json:"rambleFlag,omitempty"` LatestRambleNumber *int32 `protobuf:"varint,4,opt,name=latestRambleNumber" json:"latestRambleNumber,omitempty"` @@ -102,7 +101,7 @@ type GetMessageRequest struct { func (x *GetMessageRequest) Reset() { *x = GetMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[0] + mi := &file_pb_msg_msg_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -115,7 +114,7 @@ func (x *GetMessageRequest) String() string { func (*GetMessageRequest) ProtoMessage() {} func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[0] + mi := &file_pb_msg_msg_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -128,7 +127,7 @@ func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessageRequest.ProtoReflect.Descriptor instead. func (*GetMessageRequest) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{0} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{0} } func (x *GetMessageRequest) GetSyncFlag() SyncFlag { @@ -239,7 +238,7 @@ type SendMessageRequest struct { func (x *SendMessageRequest) Reset() { *x = SendMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[1] + mi := &file_pb_msg_msg_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -252,7 +251,7 @@ func (x *SendMessageRequest) String() string { func (*SendMessageRequest) ProtoMessage() {} func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[1] + mi := &file_pb_msg_msg_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -265,7 +264,7 @@ func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. func (*SendMessageRequest) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{1} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{1} } func (x *SendMessageRequest) GetRoutingHead() *RoutingHead { @@ -350,7 +349,7 @@ type SendMessageResponse struct { func (x *SendMessageResponse) Reset() { *x = SendMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[2] + mi := &file_pb_msg_msg_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -363,7 +362,7 @@ func (x *SendMessageResponse) String() string { func (*SendMessageResponse) ProtoMessage() {} func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[2] + mi := &file_pb_msg_msg_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -376,7 +375,7 @@ func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. func (*SendMessageResponse) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{2} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{2} } func (x *SendMessageResponse) GetResult() int32 { @@ -405,7 +404,7 @@ type MsgWithDrawReq struct { func (x *MsgWithDrawReq) Reset() { *x = MsgWithDrawReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[3] + mi := &file_pb_msg_msg_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -418,7 +417,7 @@ func (x *MsgWithDrawReq) String() string { func (*MsgWithDrawReq) ProtoMessage() {} func (x *MsgWithDrawReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[3] + mi := &file_pb_msg_msg_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -431,7 +430,7 @@ func (x *MsgWithDrawReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgWithDrawReq.ProtoReflect.Descriptor instead. func (*MsgWithDrawReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{3} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{3} } func (x *MsgWithDrawReq) GetC2CWithDraw() []*C2CMsgWithDrawReq { @@ -462,7 +461,7 @@ type C2CMsgWithDrawReq struct { func (x *C2CMsgWithDrawReq) Reset() { *x = C2CMsgWithDrawReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[4] + mi := &file_pb_msg_msg_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -475,7 +474,7 @@ func (x *C2CMsgWithDrawReq) String() string { func (*C2CMsgWithDrawReq) ProtoMessage() {} func (x *C2CMsgWithDrawReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[4] + mi := &file_pb_msg_msg_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -488,7 +487,7 @@ func (x *C2CMsgWithDrawReq) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CMsgWithDrawReq.ProtoReflect.Descriptor instead. func (*C2CMsgWithDrawReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{4} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{4} } func (x *C2CMsgWithDrawReq) GetMsgInfo() []*C2CMsgInfo { @@ -534,7 +533,7 @@ type GroupMsgWithDrawReq struct { func (x *GroupMsgWithDrawReq) Reset() { *x = GroupMsgWithDrawReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[5] + mi := &file_pb_msg_msg_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -547,7 +546,7 @@ func (x *GroupMsgWithDrawReq) String() string { func (*GroupMsgWithDrawReq) ProtoMessage() {} func (x *GroupMsgWithDrawReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[5] + mi := &file_pb_msg_msg_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -560,7 +559,7 @@ func (x *GroupMsgWithDrawReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMsgWithDrawReq.ProtoReflect.Descriptor instead. func (*GroupMsgWithDrawReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{5} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{5} } func (x *GroupMsgWithDrawReq) GetSubCmd() int32 { @@ -610,7 +609,7 @@ type MsgWithDrawResp struct { func (x *MsgWithDrawResp) Reset() { *x = MsgWithDrawResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[6] + mi := &file_pb_msg_msg_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -623,7 +622,7 @@ func (x *MsgWithDrawResp) String() string { func (*MsgWithDrawResp) ProtoMessage() {} func (x *MsgWithDrawResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[6] + mi := &file_pb_msg_msg_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -636,7 +635,7 @@ func (x *MsgWithDrawResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgWithDrawResp.ProtoReflect.Descriptor instead. func (*MsgWithDrawResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{6} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{6} } func (x *MsgWithDrawResp) GetC2CWithDraw() []*C2CMsgWithDrawResp { @@ -665,7 +664,7 @@ type C2CMsgWithDrawResp struct { func (x *C2CMsgWithDrawResp) Reset() { *x = C2CMsgWithDrawResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[7] + mi := &file_pb_msg_msg_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -678,7 +677,7 @@ func (x *C2CMsgWithDrawResp) String() string { func (*C2CMsgWithDrawResp) ProtoMessage() {} func (x *C2CMsgWithDrawResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[7] + mi := &file_pb_msg_msg_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -691,7 +690,7 @@ func (x *C2CMsgWithDrawResp) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CMsgWithDrawResp.ProtoReflect.Descriptor instead. func (*C2CMsgWithDrawResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{7} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{7} } func (x *C2CMsgWithDrawResp) GetResult() int32 { @@ -720,7 +719,7 @@ type GroupMsgWithDrawResp struct { func (x *GroupMsgWithDrawResp) Reset() { *x = GroupMsgWithDrawResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[8] + mi := &file_pb_msg_msg_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -733,7 +732,7 @@ func (x *GroupMsgWithDrawResp) String() string { func (*GroupMsgWithDrawResp) ProtoMessage() {} func (x *GroupMsgWithDrawResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[8] + mi := &file_pb_msg_msg_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -746,7 +745,7 @@ func (x *GroupMsgWithDrawResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMsgWithDrawResp.ProtoReflect.Descriptor instead. func (*GroupMsgWithDrawResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{8} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{8} } func (x *GroupMsgWithDrawResp) GetResult() int32 { @@ -776,7 +775,7 @@ type GroupMsgInfo struct { func (x *GroupMsgInfo) Reset() { *x = GroupMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[9] + mi := &file_pb_msg_msg_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -789,7 +788,7 @@ func (x *GroupMsgInfo) String() string { func (*GroupMsgInfo) ProtoMessage() {} func (x *GroupMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[9] + mi := &file_pb_msg_msg_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -802,7 +801,7 @@ func (x *GroupMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMsgInfo.ProtoReflect.Descriptor instead. func (*GroupMsgInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{9} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{9} } func (x *GroupMsgInfo) GetMsgSeq() int32 { @@ -847,7 +846,7 @@ type C2CMsgInfo struct { func (x *C2CMsgInfo) Reset() { *x = C2CMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[10] + mi := &file_pb_msg_msg_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -860,7 +859,7 @@ func (x *C2CMsgInfo) String() string { func (*C2CMsgInfo) ProtoMessage() {} func (x *C2CMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[10] + mi := &file_pb_msg_msg_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -873,7 +872,7 @@ func (x *C2CMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CMsgInfo.ProtoReflect.Descriptor instead. func (*C2CMsgInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{10} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{10} } func (x *C2CMsgInfo) GetFromUin() int64 { @@ -967,7 +966,7 @@ type RoutingHead struct { func (x *RoutingHead) Reset() { *x = RoutingHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[11] + mi := &file_pb_msg_msg_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +979,7 @@ func (x *RoutingHead) String() string { func (*RoutingHead) ProtoMessage() {} func (x *RoutingHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[11] + mi := &file_pb_msg_msg_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +992,7 @@ func (x *RoutingHead) ProtoReflect() protoreflect.Message { // Deprecated: Use RoutingHead.ProtoReflect.Descriptor instead. func (*RoutingHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{11} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{11} } func (x *RoutingHead) GetC2C() *C2C { @@ -1036,7 +1035,7 @@ type WPATmp struct { func (x *WPATmp) Reset() { *x = WPATmp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[12] + mi := &file_pb_msg_msg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1049,7 +1048,7 @@ func (x *WPATmp) String() string { func (*WPATmp) ProtoMessage() {} func (x *WPATmp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[12] + mi := &file_pb_msg_msg_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1062,7 +1061,7 @@ func (x *WPATmp) ProtoReflect() protoreflect.Message { // Deprecated: Use WPATmp.ProtoReflect.Descriptor instead. func (*WPATmp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{12} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{12} } func (x *WPATmp) GetToUin() uint64 { @@ -1090,7 +1089,7 @@ type C2C struct { func (x *C2C) Reset() { *x = C2C{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[13] + mi := &file_pb_msg_msg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1103,7 +1102,7 @@ func (x *C2C) String() string { func (*C2C) ProtoMessage() {} func (x *C2C) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[13] + mi := &file_pb_msg_msg_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1116,7 +1115,7 @@ func (x *C2C) ProtoReflect() protoreflect.Message { // Deprecated: Use C2C.ProtoReflect.Descriptor instead. func (*C2C) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{13} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{13} } func (x *C2C) GetToUin() int64 { @@ -1137,7 +1136,7 @@ type Grp struct { func (x *Grp) Reset() { *x = Grp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[14] + mi := &file_pb_msg_msg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1150,7 +1149,7 @@ func (x *Grp) String() string { func (*Grp) ProtoMessage() {} func (x *Grp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[14] + mi := &file_pb_msg_msg_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1163,7 +1162,7 @@ func (x *Grp) ProtoReflect() protoreflect.Message { // Deprecated: Use Grp.ProtoReflect.Descriptor instead. func (*Grp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{14} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{14} } func (x *Grp) GetGroupCode() int64 { @@ -1185,7 +1184,7 @@ type GrpTmp struct { func (x *GrpTmp) Reset() { *x = GrpTmp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[15] + mi := &file_pb_msg_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1198,7 +1197,7 @@ func (x *GrpTmp) String() string { func (*GrpTmp) ProtoMessage() {} func (x *GrpTmp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[15] + mi := &file_pb_msg_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1211,7 +1210,7 @@ func (x *GrpTmp) ProtoReflect() protoreflect.Message { // Deprecated: Use GrpTmp.ProtoReflect.Descriptor instead. func (*GrpTmp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{15} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{15} } func (x *GrpTmp) GetGroupUin() int64 { @@ -1239,7 +1238,7 @@ type MsgCtrl struct { func (x *MsgCtrl) Reset() { *x = MsgCtrl{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[16] + mi := &file_pb_msg_msg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1252,7 +1251,7 @@ func (x *MsgCtrl) String() string { func (*MsgCtrl) ProtoMessage() {} func (x *MsgCtrl) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[16] + mi := &file_pb_msg_msg_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1265,7 +1264,7 @@ func (x *MsgCtrl) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgCtrl.ProtoReflect.Descriptor instead. func (*MsgCtrl) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{16} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{16} } func (x *MsgCtrl) GetMsgFlag() int32 { @@ -1283,7 +1282,7 @@ type GetMessageResponse struct { Result *int32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrorMessage *string `protobuf:"bytes,2,opt,name=errorMessage" json:"errorMessage,omitempty"` SyncCookie []byte `protobuf:"bytes,3,opt,name=syncCookie" json:"syncCookie,omitempty"` - SyncFlag *SyncFlag `protobuf:"varint,4,opt,name=syncFlag,enum=SyncFlag" json:"syncFlag,omitempty"` + SyncFlag *SyncFlag `protobuf:"varint,4,opt,name=syncFlag,enum=msg.SyncFlag" json:"syncFlag,omitempty"` UinPairMsgs []*UinPairMessage `protobuf:"bytes,5,rep,name=uinPairMsgs" json:"uinPairMsgs,omitempty"` BindUin *int64 `protobuf:"varint,6,opt,name=bindUin" json:"bindUin,omitempty"` MsgRspType *int32 `protobuf:"varint,7,opt,name=msgRspType" json:"msgRspType,omitempty"` @@ -1295,7 +1294,7 @@ type GetMessageResponse struct { func (x *GetMessageResponse) Reset() { *x = GetMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[17] + mi := &file_pb_msg_msg_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1308,7 +1307,7 @@ func (x *GetMessageResponse) String() string { func (*GetMessageResponse) ProtoMessage() {} func (x *GetMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[17] + mi := &file_pb_msg_msg_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1321,7 +1320,7 @@ func (x *GetMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessageResponse.ProtoReflect.Descriptor instead. func (*GetMessageResponse) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{17} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{17} } func (x *GetMessageResponse) GetResult() int32 { @@ -1409,7 +1408,7 @@ type PushMessagePacket struct { func (x *PushMessagePacket) Reset() { *x = PushMessagePacket{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[18] + mi := &file_pb_msg_msg_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1422,7 +1421,7 @@ func (x *PushMessagePacket) String() string { func (*PushMessagePacket) ProtoMessage() {} func (x *PushMessagePacket) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[18] + mi := &file_pb_msg_msg_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1435,7 +1434,7 @@ func (x *PushMessagePacket) ProtoReflect() protoreflect.Message { // Deprecated: Use PushMessagePacket.ProtoReflect.Descriptor instead. func (*PushMessagePacket) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{18} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{18} } func (x *PushMessagePacket) GetMessage() *Message { @@ -1487,7 +1486,7 @@ type UinPairMessage struct { func (x *UinPairMessage) Reset() { *x = UinPairMessage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[19] + mi := &file_pb_msg_msg_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +1499,7 @@ func (x *UinPairMessage) String() string { func (*UinPairMessage) ProtoMessage() {} func (x *UinPairMessage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[19] + mi := &file_pb_msg_msg_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,7 +1512,7 @@ func (x *UinPairMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UinPairMessage.ProtoReflect.Descriptor instead. func (*UinPairMessage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{19} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{19} } func (x *UinPairMessage) GetLastReadTime() int32 { @@ -1557,7 +1556,7 @@ type Message struct { func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[20] + mi := &file_pb_msg_msg_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1570,7 +1569,7 @@ func (x *Message) String() string { func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[20] + mi := &file_pb_msg_msg_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1583,7 +1582,7 @@ func (x *Message) ProtoReflect() protoreflect.Message { // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{20} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{20} } func (x *Message) GetHead() *MessageHead { @@ -1620,7 +1619,7 @@ type MessageBody struct { func (x *MessageBody) Reset() { *x = MessageBody{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[21] + mi := &file_pb_msg_msg_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1633,7 +1632,7 @@ func (x *MessageBody) String() string { func (*MessageBody) ProtoMessage() {} func (x *MessageBody) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[21] + mi := &file_pb_msg_msg_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1646,7 +1645,7 @@ func (x *MessageBody) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageBody.ProtoReflect.Descriptor instead. func (*MessageBody) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{21} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{21} } func (x *MessageBody) GetRichText() *RichText { @@ -1684,7 +1683,7 @@ type RichText struct { func (x *RichText) Reset() { *x = RichText{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[22] + mi := &file_pb_msg_msg_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1697,7 +1696,7 @@ func (x *RichText) String() string { func (*RichText) ProtoMessage() {} func (x *RichText) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[22] + mi := &file_pb_msg_msg_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1710,7 +1709,7 @@ func (x *RichText) ProtoReflect() protoreflect.Message { // Deprecated: Use RichText.ProtoReflect.Descriptor instead. func (*RichText) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{22} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{22} } func (x *RichText) GetAttr() *Attr { @@ -1804,7 +1803,7 @@ type Elem struct { func (x *Elem) Reset() { *x = Elem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[23] + mi := &file_pb_msg_msg_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1817,7 +1816,7 @@ func (x *Elem) String() string { func (*Elem) ProtoMessage() {} func (x *Elem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[23] + mi := &file_pb_msg_msg_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1830,7 +1829,7 @@ func (x *Elem) ProtoReflect() protoreflect.Message { // Deprecated: Use Elem.ProtoReflect.Descriptor instead. func (*Elem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{23} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{23} } func (x *Elem) GetText() *Text { @@ -1989,7 +1988,7 @@ type MarketFace struct { func (x *MarketFace) Reset() { *x = MarketFace{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[24] + mi := &file_pb_msg_msg_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2002,7 +2001,7 @@ func (x *MarketFace) String() string { func (*MarketFace) ProtoMessage() {} func (x *MarketFace) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[24] + mi := &file_pb_msg_msg_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2015,7 +2014,7 @@ func (x *MarketFace) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketFace.ProtoReflect.Descriptor instead. func (*MarketFace) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{24} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{24} } func (x *MarketFace) GetFaceName() []byte { @@ -2133,7 +2132,7 @@ type ElemFlags2 struct { func (x *ElemFlags2) Reset() { *x = ElemFlags2{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[25] + mi := &file_pb_msg_msg_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2146,7 +2145,7 @@ func (x *ElemFlags2) String() string { func (*ElemFlags2) ProtoMessage() {} func (x *ElemFlags2) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[25] + mi := &file_pb_msg_msg_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2159,7 +2158,7 @@ func (x *ElemFlags2) ProtoReflect() protoreflect.Message { // Deprecated: Use ElemFlags2.ProtoReflect.Descriptor instead. func (*ElemFlags2) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{25} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{25} } func (x *ElemFlags2) GetColorTextId() uint32 { @@ -2276,7 +2275,7 @@ type PcSupportDef struct { func (x *PcSupportDef) Reset() { *x = PcSupportDef{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[26] + mi := &file_pb_msg_msg_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2289,7 +2288,7 @@ func (x *PcSupportDef) String() string { func (*PcSupportDef) ProtoMessage() {} func (x *PcSupportDef) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[26] + mi := &file_pb_msg_msg_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2302,7 +2301,7 @@ func (x *PcSupportDef) ProtoReflect() protoreflect.Message { // Deprecated: Use PcSupportDef.ProtoReflect.Descriptor instead. func (*PcSupportDef) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{26} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{26} } func (x *PcSupportDef) GetPcPtlBegin() uint32 { @@ -2360,7 +2359,7 @@ type CommonElem struct { func (x *CommonElem) Reset() { *x = CommonElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[27] + mi := &file_pb_msg_msg_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2373,7 +2372,7 @@ func (x *CommonElem) String() string { func (*CommonElem) ProtoMessage() {} func (x *CommonElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[27] + mi := &file_pb_msg_msg_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2386,7 +2385,7 @@ func (x *CommonElem) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonElem.ProtoReflect.Descriptor instead. func (*CommonElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{27} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{27} } func (x *CommonElem) GetServiceType() int32 { @@ -2421,7 +2420,7 @@ type QQWalletMsg struct { func (x *QQWalletMsg) Reset() { *x = QQWalletMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[28] + mi := &file_pb_msg_msg_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2434,7 +2433,7 @@ func (x *QQWalletMsg) String() string { func (*QQWalletMsg) ProtoMessage() {} func (x *QQWalletMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[28] + mi := &file_pb_msg_msg_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2447,7 +2446,7 @@ func (x *QQWalletMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use QQWalletMsg.ProtoReflect.Descriptor instead. func (*QQWalletMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{28} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{28} } func (x *QQWalletMsg) GetAioBody() *QQWalletAioBody { @@ -2488,7 +2487,7 @@ type QQWalletAioBody struct { func (x *QQWalletAioBody) Reset() { *x = QQWalletAioBody{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[29] + mi := &file_pb_msg_msg_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2501,7 +2500,7 @@ func (x *QQWalletAioBody) String() string { func (*QQWalletAioBody) ProtoMessage() {} func (x *QQWalletAioBody) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[29] + mi := &file_pb_msg_msg_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2514,7 +2513,7 @@ func (x *QQWalletAioBody) ProtoReflect() protoreflect.Message { // Deprecated: Use QQWalletAioBody.ProtoReflect.Descriptor instead. func (*QQWalletAioBody) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{29} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{29} } func (x *QQWalletAioBody) GetSendUin() uint64 { @@ -2695,7 +2694,7 @@ type QQWalletAioElem struct { func (x *QQWalletAioElem) Reset() { *x = QQWalletAioElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[30] + mi := &file_pb_msg_msg_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2708,7 +2707,7 @@ func (x *QQWalletAioElem) String() string { func (*QQWalletAioElem) ProtoMessage() {} func (x *QQWalletAioElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[30] + mi := &file_pb_msg_msg_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2721,7 +2720,7 @@ func (x *QQWalletAioElem) ProtoReflect() protoreflect.Message { // Deprecated: Use QQWalletAioElem.ProtoReflect.Descriptor instead. func (*QQWalletAioElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{30} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{30} } func (x *QQWalletAioElem) GetBackground() uint32 { @@ -2886,7 +2885,7 @@ type RichMsg struct { func (x *RichMsg) Reset() { *x = RichMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[31] + mi := &file_pb_msg_msg_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2899,7 +2898,7 @@ func (x *RichMsg) String() string { func (*RichMsg) ProtoMessage() {} func (x *RichMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[31] + mi := &file_pb_msg_msg_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2912,7 +2911,7 @@ func (x *RichMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use RichMsg.ProtoReflect.Descriptor instead. func (*RichMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{31} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{31} } func (x *RichMsg) GetTemplate1() []byte { @@ -2965,7 +2964,7 @@ type CustomElem struct { func (x *CustomElem) Reset() { *x = CustomElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[32] + mi := &file_pb_msg_msg_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2978,7 +2977,7 @@ func (x *CustomElem) String() string { func (*CustomElem) ProtoMessage() {} func (x *CustomElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[32] + mi := &file_pb_msg_msg_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2991,7 +2990,7 @@ func (x *CustomElem) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomElem.ProtoReflect.Descriptor instead. func (*CustomElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{32} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{32} } func (x *CustomElem) GetDesc() []byte { @@ -3045,7 +3044,7 @@ type Text struct { func (x *Text) Reset() { *x = Text{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[33] + mi := &file_pb_msg_msg_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3058,7 +3057,7 @@ func (x *Text) String() string { func (*Text) ProtoMessage() {} func (x *Text) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[33] + mi := &file_pb_msg_msg_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3071,7 +3070,7 @@ func (x *Text) ProtoReflect() protoreflect.Message { // Deprecated: Use Text.ProtoReflect.Descriptor instead. func (*Text) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{33} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{33} } func (x *Text) GetStr() string { @@ -3136,7 +3135,7 @@ type Attr struct { func (x *Attr) Reset() { *x = Attr{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[34] + mi := &file_pb_msg_msg_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3149,7 +3148,7 @@ func (x *Attr) String() string { func (*Attr) ProtoMessage() {} func (x *Attr) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[34] + mi := &file_pb_msg_msg_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3162,7 +3161,7 @@ func (x *Attr) ProtoReflect() protoreflect.Message { // Deprecated: Use Attr.ProtoReflect.Descriptor instead. func (*Attr) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{34} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{34} } func (x *Attr) GetCodePage() int32 { @@ -3269,7 +3268,7 @@ type Ptt struct { func (x *Ptt) Reset() { *x = Ptt{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[35] + mi := &file_pb_msg_msg_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3282,7 +3281,7 @@ func (x *Ptt) String() string { func (*Ptt) ProtoMessage() {} func (x *Ptt) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[35] + mi := &file_pb_msg_msg_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3295,7 +3294,7 @@ func (x *Ptt) ProtoReflect() protoreflect.Message { // Deprecated: Use Ptt.ProtoReflect.Descriptor instead. func (*Ptt) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{35} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{35} } func (x *Ptt) GetFileType() int32 { @@ -3479,7 +3478,7 @@ type OnlineImage struct { func (x *OnlineImage) Reset() { *x = OnlineImage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[36] + mi := &file_pb_msg_msg_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3492,7 +3491,7 @@ func (x *OnlineImage) String() string { func (*OnlineImage) ProtoMessage() {} func (x *OnlineImage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[36] + mi := &file_pb_msg_msg_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3505,7 +3504,7 @@ func (x *OnlineImage) ProtoReflect() protoreflect.Message { // Deprecated: Use OnlineImage.ProtoReflect.Descriptor instead. func (*OnlineImage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{36} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{36} } func (x *OnlineImage) GetGuid() []byte { @@ -3565,7 +3564,7 @@ type NotOnlineImage struct { func (x *NotOnlineImage) Reset() { *x = NotOnlineImage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[37] + mi := &file_pb_msg_msg_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3578,7 +3577,7 @@ func (x *NotOnlineImage) String() string { func (*NotOnlineImage) ProtoMessage() {} func (x *NotOnlineImage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[37] + mi := &file_pb_msg_msg_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3591,7 +3590,7 @@ func (x *NotOnlineImage) ProtoReflect() protoreflect.Message { // Deprecated: Use NotOnlineImage.ProtoReflect.Descriptor instead. func (*NotOnlineImage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{37} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{37} } func (x *NotOnlineImage) GetFilePath() string { @@ -3805,7 +3804,7 @@ type NotOnlineFile struct { func (x *NotOnlineFile) Reset() { *x = NotOnlineFile{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[38] + mi := &file_pb_msg_msg_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3818,7 +3817,7 @@ func (x *NotOnlineFile) String() string { func (*NotOnlineFile) ProtoMessage() {} func (x *NotOnlineFile) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[38] + mi := &file_pb_msg_msg_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3831,7 +3830,7 @@ func (x *NotOnlineFile) ProtoReflect() protoreflect.Message { // Deprecated: Use NotOnlineFile.ProtoReflect.Descriptor instead. func (*NotOnlineFile) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{38} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{38} } func (x *NotOnlineFile) GetFileType() int32 { @@ -3979,7 +3978,7 @@ type TransElem struct { func (x *TransElem) Reset() { *x = TransElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[39] + mi := &file_pb_msg_msg_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3992,7 +3991,7 @@ func (x *TransElem) String() string { func (*TransElem) ProtoMessage() {} func (x *TransElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[39] + mi := &file_pb_msg_msg_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4005,7 +4004,7 @@ func (x *TransElem) ProtoReflect() protoreflect.Message { // Deprecated: Use TransElem.ProtoReflect.Descriptor instead. func (*TransElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{39} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{39} } func (x *TransElem) GetElemType() int32 { @@ -4044,7 +4043,7 @@ type ExtraInfo struct { func (x *ExtraInfo) Reset() { *x = ExtraInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[40] + mi := &file_pb_msg_msg_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4057,7 +4056,7 @@ func (x *ExtraInfo) String() string { func (*ExtraInfo) ProtoMessage() {} func (x *ExtraInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[40] + mi := &file_pb_msg_msg_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4070,7 +4069,7 @@ func (x *ExtraInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtraInfo.ProtoReflect.Descriptor instead. func (*ExtraInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{40} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{40} } func (x *ExtraInfo) GetNick() []byte { @@ -4177,7 +4176,7 @@ type GroupFile struct { func (x *GroupFile) Reset() { *x = GroupFile{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[41] + mi := &file_pb_msg_msg_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4190,7 +4189,7 @@ func (x *GroupFile) String() string { func (*GroupFile) ProtoMessage() {} func (x *GroupFile) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[41] + mi := &file_pb_msg_msg_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4203,7 +4202,7 @@ func (x *GroupFile) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupFile.ProtoReflect.Descriptor instead. func (*GroupFile) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{41} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{41} } func (x *GroupFile) GetFilename() []byte { @@ -4293,7 +4292,7 @@ type AnonymousGroupMessage struct { func (x *AnonymousGroupMessage) Reset() { *x = AnonymousGroupMessage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[42] + mi := &file_pb_msg_msg_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4306,7 +4305,7 @@ func (x *AnonymousGroupMessage) String() string { func (*AnonymousGroupMessage) ProtoMessage() {} func (x *AnonymousGroupMessage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[42] + mi := &file_pb_msg_msg_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4319,7 +4318,7 @@ func (x *AnonymousGroupMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use AnonymousGroupMessage.ProtoReflect.Descriptor instead. func (*AnonymousGroupMessage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{42} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{42} } func (x *AnonymousGroupMessage) GetFlags() int32 { @@ -4405,7 +4404,7 @@ type VideoFile struct { func (x *VideoFile) Reset() { *x = VideoFile{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[43] + mi := &file_pb_msg_msg_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4418,7 +4417,7 @@ func (x *VideoFile) String() string { func (*VideoFile) ProtoMessage() {} func (x *VideoFile) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[43] + mi := &file_pb_msg_msg_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4431,7 +4430,7 @@ func (x *VideoFile) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoFile.ProtoReflect.Descriptor instead. func (*VideoFile) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{43} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{43} } func (x *VideoFile) GetFileUuid() []byte { @@ -4623,7 +4622,7 @@ type SourceMsg struct { func (x *SourceMsg) Reset() { *x = SourceMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[44] + mi := &file_pb_msg_msg_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4636,7 +4635,7 @@ func (x *SourceMsg) String() string { func (*SourceMsg) ProtoMessage() {} func (x *SourceMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[44] + mi := &file_pb_msg_msg_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4649,7 +4648,7 @@ func (x *SourceMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use SourceMsg.ProtoReflect.Descriptor instead. func (*SourceMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{44} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{44} } func (x *SourceMsg) GetOrigSeqs() []int32 { @@ -4742,7 +4741,7 @@ type Face struct { func (x *Face) Reset() { *x = Face{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[45] + mi := &file_pb_msg_msg_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4755,7 +4754,7 @@ func (x *Face) String() string { func (*Face) ProtoMessage() {} func (x *Face) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[45] + mi := &file_pb_msg_msg_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4768,7 +4767,7 @@ func (x *Face) ProtoReflect() protoreflect.Message { // Deprecated: Use Face.ProtoReflect.Descriptor instead. func (*Face) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{45} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{45} } func (x *Face) GetIndex() int32 { @@ -4804,7 +4803,7 @@ type LightAppElem struct { func (x *LightAppElem) Reset() { *x = LightAppElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[46] + mi := &file_pb_msg_msg_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4817,7 +4816,7 @@ func (x *LightAppElem) String() string { func (*LightAppElem) ProtoMessage() {} func (x *LightAppElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[46] + mi := &file_pb_msg_msg_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4830,7 +4829,7 @@ func (x *LightAppElem) ProtoReflect() protoreflect.Message { // Deprecated: Use LightAppElem.ProtoReflect.Descriptor instead. func (*LightAppElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{46} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{46} } func (x *LightAppElem) GetData() []byte { @@ -4891,7 +4890,7 @@ type CustomFace struct { func (x *CustomFace) Reset() { *x = CustomFace{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[47] + mi := &file_pb_msg_msg_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4904,7 +4903,7 @@ func (x *CustomFace) String() string { func (*CustomFace) ProtoMessage() {} func (x *CustomFace) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[47] + mi := &file_pb_msg_msg_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4917,7 +4916,7 @@ func (x *CustomFace) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomFace.ProtoReflect.Descriptor instead. func (*CustomFace) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{47} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{47} } func (x *CustomFace) GetGuid() []byte { @@ -5172,7 +5171,7 @@ type ContentHead struct { func (x *ContentHead) Reset() { *x = ContentHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[48] + mi := &file_pb_msg_msg_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5185,7 +5184,7 @@ func (x *ContentHead) String() string { func (*ContentHead) ProtoMessage() {} func (x *ContentHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[48] + mi := &file_pb_msg_msg_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5198,7 +5197,7 @@ func (x *ContentHead) ProtoReflect() protoreflect.Message { // Deprecated: Use ContentHead.ProtoReflect.Descriptor instead. func (*ContentHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{48} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{48} } func (x *ContentHead) GetPkgNum() int32 { @@ -5267,7 +5266,7 @@ type MessageHead struct { func (x *MessageHead) Reset() { *x = MessageHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[49] + mi := &file_pb_msg_msg_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5280,7 +5279,7 @@ func (x *MessageHead) String() string { func (*MessageHead) ProtoMessage() {} func (x *MessageHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[49] + mi := &file_pb_msg_msg_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5293,7 +5292,7 @@ func (x *MessageHead) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageHead.ProtoReflect.Descriptor instead. func (*MessageHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{49} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{49} } func (x *MessageHead) GetFromUin() int64 { @@ -5510,7 +5509,7 @@ type GroupInfo struct { func (x *GroupInfo) Reset() { *x = GroupInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[50] + mi := &file_pb_msg_msg_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5523,7 +5522,7 @@ func (x *GroupInfo) String() string { func (*GroupInfo) ProtoMessage() {} func (x *GroupInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[50] + mi := &file_pb_msg_msg_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5536,7 +5535,7 @@ func (x *GroupInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. func (*GroupInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{50} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{50} } func (x *GroupInfo) GetGroupCode() int64 { @@ -5610,7 +5609,7 @@ type DiscussInfo struct { func (x *DiscussInfo) Reset() { *x = DiscussInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[51] + mi := &file_pb_msg_msg_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5623,7 +5622,7 @@ func (x *DiscussInfo) String() string { func (*DiscussInfo) ProtoMessage() {} func (x *DiscussInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[51] + mi := &file_pb_msg_msg_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5636,7 +5635,7 @@ func (x *DiscussInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscussInfo.ProtoReflect.Descriptor instead. func (*DiscussInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{51} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{51} } func (x *DiscussInfo) GetDiscussUin() int64 { @@ -5686,7 +5685,7 @@ type MutilTransHead struct { func (x *MutilTransHead) Reset() { *x = MutilTransHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[52] + mi := &file_pb_msg_msg_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5699,7 +5698,7 @@ func (x *MutilTransHead) String() string { func (*MutilTransHead) ProtoMessage() {} func (x *MutilTransHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[52] + mi := &file_pb_msg_msg_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5712,7 +5711,7 @@ func (x *MutilTransHead) ProtoReflect() protoreflect.Message { // Deprecated: Use MutilTransHead.ProtoReflect.Descriptor instead. func (*MutilTransHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{52} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{52} } func (x *MutilTransHead) GetStatus() int32 { @@ -5750,7 +5749,7 @@ type C2CTempMessageHead struct { func (x *C2CTempMessageHead) Reset() { *x = C2CTempMessageHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[53] + mi := &file_pb_msg_msg_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5763,7 +5762,7 @@ func (x *C2CTempMessageHead) String() string { func (*C2CTempMessageHead) ProtoMessage() {} func (x *C2CTempMessageHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[53] + mi := &file_pb_msg_msg_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5776,7 +5775,7 @@ func (x *C2CTempMessageHead) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CTempMessageHead.ProtoReflect.Descriptor instead. func (*C2CTempMessageHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{53} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{53} } func (x *C2CTempMessageHead) GetC2CType() int32 { @@ -5869,7 +5868,7 @@ type InstCtrl struct { func (x *InstCtrl) Reset() { *x = InstCtrl{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[54] + mi := &file_pb_msg_msg_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5882,7 +5881,7 @@ func (x *InstCtrl) String() string { func (*InstCtrl) ProtoMessage() {} func (x *InstCtrl) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[54] + mi := &file_pb_msg_msg_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5895,7 +5894,7 @@ func (x *InstCtrl) ProtoReflect() protoreflect.Message { // Deprecated: Use InstCtrl.ProtoReflect.Descriptor instead. func (*InstCtrl) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{54} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{54} } func (x *InstCtrl) GetMsgSendToInst() []*InstInfo { @@ -5933,7 +5932,7 @@ type InstInfo struct { func (x *InstInfo) Reset() { *x = InstInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[55] + mi := &file_pb_msg_msg_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5946,7 +5945,7 @@ func (x *InstInfo) String() string { func (*InstInfo) ProtoMessage() {} func (x *InstInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[55] + mi := &file_pb_msg_msg_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5959,7 +5958,7 @@ func (x *InstInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use InstInfo.ProtoReflect.Descriptor instead. func (*InstInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{55} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{55} } func (x *InstInfo) GetApppid() int32 { @@ -6002,7 +6001,7 @@ type ExtGroupKeyInfo struct { func (x *ExtGroupKeyInfo) Reset() { *x = ExtGroupKeyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[56] + mi := &file_pb_msg_msg_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6015,7 +6014,7 @@ func (x *ExtGroupKeyInfo) String() string { func (*ExtGroupKeyInfo) ProtoMessage() {} func (x *ExtGroupKeyInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[56] + mi := &file_pb_msg_msg_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6028,7 +6027,7 @@ func (x *ExtGroupKeyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtGroupKeyInfo.ProtoReflect.Descriptor instead. func (*ExtGroupKeyInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{56} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{56} } func (x *ExtGroupKeyInfo) GetCurMaxSeq() int32 { @@ -6064,7 +6063,7 @@ type SyncCookie struct { func (x *SyncCookie) Reset() { *x = SyncCookie{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[57] + mi := &file_pb_msg_msg_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6077,7 +6076,7 @@ func (x *SyncCookie) String() string { func (*SyncCookie) ProtoMessage() {} func (x *SyncCookie) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[57] + mi := &file_pb_msg_msg_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6090,7 +6089,7 @@ func (x *SyncCookie) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncCookie.ProtoReflect.Descriptor instead. func (*SyncCookie) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{57} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{57} } func (x *SyncCookie) GetTime1() int64 { @@ -6179,7 +6178,7 @@ type TransMsgInfo struct { func (x *TransMsgInfo) Reset() { *x = TransMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[58] + mi := &file_pb_msg_msg_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6192,7 +6191,7 @@ func (x *TransMsgInfo) String() string { func (*TransMsgInfo) ProtoMessage() {} func (x *TransMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[58] + mi := &file_pb_msg_msg_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6205,7 +6204,7 @@ func (x *TransMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TransMsgInfo.ProtoReflect.Descriptor instead. func (*TransMsgInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{58} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{58} } func (x *TransMsgInfo) GetFromUin() int64 { @@ -6328,7 +6327,7 @@ type GeneralFlags struct { func (x *GeneralFlags) Reset() { *x = GeneralFlags{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[59] + mi := &file_pb_msg_msg_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6341,7 +6340,7 @@ func (x *GeneralFlags) String() string { func (*GeneralFlags) ProtoMessage() {} func (x *GeneralFlags) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[59] + mi := &file_pb_msg_msg_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6354,7 +6353,7 @@ func (x *GeneralFlags) ProtoReflect() protoreflect.Message { // Deprecated: Use GeneralFlags.ProtoReflect.Descriptor instead. func (*GeneralFlags) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{59} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{59} } func (x *GeneralFlags) GetBubbleDiyTextId() int32 { @@ -6502,7 +6501,7 @@ type PbMultiMsgItem struct { func (x *PbMultiMsgItem) Reset() { *x = PbMultiMsgItem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[60] + mi := &file_pb_msg_msg_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6515,7 +6514,7 @@ func (x *PbMultiMsgItem) String() string { func (*PbMultiMsgItem) ProtoMessage() {} func (x *PbMultiMsgItem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[60] + mi := &file_pb_msg_msg_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6528,7 +6527,7 @@ func (x *PbMultiMsgItem) ProtoReflect() protoreflect.Message { // Deprecated: Use PbMultiMsgItem.ProtoReflect.Descriptor instead. func (*PbMultiMsgItem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{60} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{60} } func (x *PbMultiMsgItem) GetFileName() string { @@ -6556,7 +6555,7 @@ type PbMultiMsgNew struct { func (x *PbMultiMsgNew) Reset() { *x = PbMultiMsgNew{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[61] + mi := &file_pb_msg_msg_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6569,7 +6568,7 @@ func (x *PbMultiMsgNew) String() string { func (*PbMultiMsgNew) ProtoMessage() {} func (x *PbMultiMsgNew) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[61] + mi := &file_pb_msg_msg_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6582,7 +6581,7 @@ func (x *PbMultiMsgNew) ProtoReflect() protoreflect.Message { // Deprecated: Use PbMultiMsgNew.ProtoReflect.Descriptor instead. func (*PbMultiMsgNew) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{61} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{61} } func (x *PbMultiMsgNew) GetMsg() []*Message { @@ -6604,7 +6603,7 @@ type PbMultiMsgTransmit struct { func (x *PbMultiMsgTransmit) Reset() { *x = PbMultiMsgTransmit{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[62] + mi := &file_pb_msg_msg_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6617,7 +6616,7 @@ func (x *PbMultiMsgTransmit) String() string { func (*PbMultiMsgTransmit) ProtoMessage() {} func (x *PbMultiMsgTransmit) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[62] + mi := &file_pb_msg_msg_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6630,7 +6629,7 @@ func (x *PbMultiMsgTransmit) ProtoReflect() protoreflect.Message { // Deprecated: Use PbMultiMsgTransmit.ProtoReflect.Descriptor instead. func (*PbMultiMsgTransmit) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{62} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{62} } func (x *PbMultiMsgTransmit) GetMsg() []*Message { @@ -6659,7 +6658,7 @@ type MsgElemInfoServtype3 struct { func (x *MsgElemInfoServtype3) Reset() { *x = MsgElemInfoServtype3{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[63] + mi := &file_pb_msg_msg_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6672,7 +6671,7 @@ func (x *MsgElemInfoServtype3) String() string { func (*MsgElemInfoServtype3) ProtoMessage() {} func (x *MsgElemInfoServtype3) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[63] + mi := &file_pb_msg_msg_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6685,7 +6684,7 @@ func (x *MsgElemInfoServtype3) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgElemInfoServtype3.ProtoReflect.Descriptor instead. func (*MsgElemInfoServtype3) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{63} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{63} } func (x *MsgElemInfoServtype3) GetFlashTroopPic() *CustomFace { @@ -6716,7 +6715,7 @@ type MsgElemInfoServtype33 struct { func (x *MsgElemInfoServtype33) Reset() { *x = MsgElemInfoServtype33{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[64] + mi := &file_pb_msg_msg_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6729,7 +6728,7 @@ func (x *MsgElemInfoServtype33) String() string { func (*MsgElemInfoServtype33) ProtoMessage() {} func (x *MsgElemInfoServtype33) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[64] + mi := &file_pb_msg_msg_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6742,7 +6741,7 @@ func (x *MsgElemInfoServtype33) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgElemInfoServtype33.ProtoReflect.Descriptor instead. func (*MsgElemInfoServtype33) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{64} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{64} } func (x *MsgElemInfoServtype33) GetIndex() uint32 { @@ -6773,6 +6772,61 @@ func (x *MsgElemInfoServtype33) GetBuf() []byte { return nil } +type MsgElemInfoServtype38 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReactData []byte `protobuf:"bytes,1,opt,name=reactData" json:"reactData,omitempty"` + ReplyData []byte `protobuf:"bytes,2,opt,name=replyData" json:"replyData,omitempty"` +} + +func (x *MsgElemInfoServtype38) Reset() { + *x = MsgElemInfoServtype38{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_msg_msg_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgElemInfoServtype38) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgElemInfoServtype38) ProtoMessage() {} + +func (x *MsgElemInfoServtype38) ProtoReflect() protoreflect.Message { + mi := &file_pb_msg_msg_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgElemInfoServtype38.ProtoReflect.Descriptor instead. +func (*MsgElemInfoServtype38) Descriptor() ([]byte, []int) { + return file_pb_msg_msg_proto_rawDescGZIP(), []int{65} +} + +func (x *MsgElemInfoServtype38) GetReactData() []byte { + if x != nil { + return x.ReactData + } + return nil +} + +func (x *MsgElemInfoServtype38) GetReplyData() []byte { + if x != nil { + return x.ReplyData + } + return nil +} + type SubMsgType0X4Body struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6786,7 +6840,7 @@ type SubMsgType0X4Body struct { func (x *SubMsgType0X4Body) Reset() { *x = SubMsgType0X4Body{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[65] + mi := &file_pb_msg_msg_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6799,7 +6853,7 @@ func (x *SubMsgType0X4Body) String() string { func (*SubMsgType0X4Body) ProtoMessage() {} func (x *SubMsgType0X4Body) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[65] + mi := &file_pb_msg_msg_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6812,7 +6866,7 @@ func (x *SubMsgType0X4Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SubMsgType0X4Body.ProtoReflect.Descriptor instead. func (*SubMsgType0X4Body) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{65} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{66} } func (x *SubMsgType0X4Body) GetNotOnlineFile() *NotOnlineFile { @@ -6848,7 +6902,7 @@ type ResvAttr struct { func (x *ResvAttr) Reset() { *x = ResvAttr{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[66] + mi := &file_pb_msg_msg_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6861,7 +6915,7 @@ func (x *ResvAttr) String() string { func (*ResvAttr) ProtoMessage() {} func (x *ResvAttr) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[66] + mi := &file_pb_msg_msg_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6874,7 +6928,7 @@ func (x *ResvAttr) ProtoReflect() protoreflect.Message { // Deprecated: Use ResvAttr.ProtoReflect.Descriptor instead. func (*ResvAttr) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{66} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{67} } func (x *ResvAttr) GetImageBizType() uint32 { @@ -6903,7 +6957,7 @@ type AnimationImageShow struct { func (x *AnimationImageShow) Reset() { *x = AnimationImageShow{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[67] + mi := &file_pb_msg_msg_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6916,7 +6970,7 @@ func (x *AnimationImageShow) String() string { func (*AnimationImageShow) ProtoMessage() {} func (x *AnimationImageShow) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[67] + mi := &file_pb_msg_msg_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6929,7 +6983,7 @@ func (x *AnimationImageShow) ProtoReflect() protoreflect.Message { // Deprecated: Use AnimationImageShow.ProtoReflect.Descriptor instead. func (*AnimationImageShow) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{67} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{68} } func (x *AnimationImageShow) GetEffectId() int32 { @@ -6959,7 +7013,7 @@ type UinTypeUserDef struct { func (x *UinTypeUserDef) Reset() { *x = UinTypeUserDef{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[68] + mi := &file_pb_msg_msg_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6972,7 +7026,7 @@ func (x *UinTypeUserDef) String() string { func (*UinTypeUserDef) ProtoMessage() {} func (x *UinTypeUserDef) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[68] + mi := &file_pb_msg_msg_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6985,7 +7039,7 @@ func (x *UinTypeUserDef) ProtoReflect() protoreflect.Message { // Deprecated: Use UinTypeUserDef.ProtoReflect.Descriptor instead. func (*UinTypeUserDef) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{68} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{69} } func (x *UinTypeUserDef) GetFromUinType() int32 { @@ -7027,7 +7081,7 @@ type GetGroupMsgReq struct { func (x *GetGroupMsgReq) Reset() { *x = GetGroupMsgReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[69] + mi := &file_pb_msg_msg_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7040,7 +7094,7 @@ func (x *GetGroupMsgReq) String() string { func (*GetGroupMsgReq) ProtoMessage() {} func (x *GetGroupMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[69] + mi := &file_pb_msg_msg_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7053,7 +7107,7 @@ func (x *GetGroupMsgReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMsgReq.ProtoReflect.Descriptor instead. func (*GetGroupMsgReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{69} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{70} } func (x *GetGroupMsgReq) GetGroupCode() uint64 { @@ -7128,7 +7182,7 @@ type GetGroupMsgResp struct { func (x *GetGroupMsgResp) Reset() { *x = GetGroupMsgResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[70] + mi := &file_pb_msg_msg_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7141,7 +7195,7 @@ func (x *GetGroupMsgResp) String() string { func (*GetGroupMsgResp) ProtoMessage() {} func (x *GetGroupMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[70] + mi := &file_pb_msg_msg_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7154,7 +7208,7 @@ func (x *GetGroupMsgResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMsgResp.ProtoReflect.Descriptor instead. func (*GetGroupMsgResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{70} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{71} } func (x *GetGroupMsgResp) GetResult() uint32 { @@ -7213,7 +7267,7 @@ type PbGetOneDayRoamMsgReq struct { func (x *PbGetOneDayRoamMsgReq) Reset() { *x = PbGetOneDayRoamMsgReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[71] + mi := &file_pb_msg_msg_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7226,7 +7280,7 @@ func (x *PbGetOneDayRoamMsgReq) String() string { func (*PbGetOneDayRoamMsgReq) ProtoMessage() {} func (x *PbGetOneDayRoamMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[71] + mi := &file_pb_msg_msg_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7239,7 +7293,7 @@ func (x *PbGetOneDayRoamMsgReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PbGetOneDayRoamMsgReq.ProtoReflect.Descriptor instead. func (*PbGetOneDayRoamMsgReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{71} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{72} } func (x *PbGetOneDayRoamMsgReq) GetPeerUin() uint64 { @@ -7287,7 +7341,7 @@ type PbGetOneDayRoamMsgResp struct { func (x *PbGetOneDayRoamMsgResp) Reset() { *x = PbGetOneDayRoamMsgResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[72] + mi := &file_pb_msg_msg_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7300,7 +7354,7 @@ func (x *PbGetOneDayRoamMsgResp) String() string { func (*PbGetOneDayRoamMsgResp) ProtoMessage() {} func (x *PbGetOneDayRoamMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[72] + mi := &file_pb_msg_msg_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7313,7 +7367,7 @@ func (x *PbGetOneDayRoamMsgResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PbGetOneDayRoamMsgResp.ProtoReflect.Descriptor instead. func (*PbGetOneDayRoamMsgResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{72} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{73} } func (x *PbGetOneDayRoamMsgResp) GetResult() uint32 { @@ -7381,7 +7435,7 @@ type PbPushMsg struct { func (x *PbPushMsg) Reset() { *x = PbPushMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[73] + mi := &file_pb_msg_msg_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7394,7 +7448,7 @@ func (x *PbPushMsg) String() string { func (*PbPushMsg) ProtoMessage() {} func (x *PbPushMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[73] + mi := &file_pb_msg_msg_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7407,7 +7461,7 @@ func (x *PbPushMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use PbPushMsg.ProtoReflect.Descriptor instead. func (*PbPushMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{73} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{74} } func (x *PbPushMsg) GetMsg() *Message { @@ -7464,7 +7518,7 @@ type ElemFlags2_Inst struct { func (x *ElemFlags2_Inst) Reset() { *x = ElemFlags2_Inst{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[74] + mi := &file_pb_msg_msg_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7477,7 +7531,7 @@ func (x *ElemFlags2_Inst) String() string { func (*ElemFlags2_Inst) ProtoMessage() {} func (x *ElemFlags2_Inst) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[74] + mi := &file_pb_msg_msg_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7490,7 +7544,7 @@ func (x *ElemFlags2_Inst) ProtoReflect() protoreflect.Message { // Deprecated: Use ElemFlags2_Inst.ProtoReflect.Descriptor instead. func (*ElemFlags2_Inst) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{25, 0} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{25, 0} } func (x *ElemFlags2_Inst) GetAppId() uint32 { @@ -7507,13 +7561,14 @@ func (x *ElemFlags2_Inst) GetInstId() uint32 { return 0 } -var File_msg_proto protoreflect.FileDescriptor +var File_pb_msg_msg_proto protoreflect.FileDescriptor -var file_msg_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x03, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x25, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, +var file_pb_msg_msg_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x70, 0x62, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdc, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, + 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x0d, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6d, 0x62, @@ -7540,27 +7595,28 @@ var file_msg_proto_rawDesc = []byte{ 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x22, 0xf0, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x22, 0x80, 0x03, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, - 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x26, 0x0a, - 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, - 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, - 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, - 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x07, 0x6d, 0x73, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, + 0x52, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x52, + 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, + 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x22, 0x45, 0x0a, 0x13, 0x53, 0x65, 0x6e, @@ -7568,1096 +7624,1119 @@ var file_msg_proto_rawDesc = []byte{ 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, - 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, - 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, - 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0b, 0x63, 0x32, - 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3a, 0x0a, 0x0d, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, - 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, - 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x98, 0x01, 0x0a, 0x11, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, - 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, - 0x32, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, - 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, - 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, - 0x22, 0xac, 0x01, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, - 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, - 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x07, - 0x6d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, + 0x52, 0x65, 0x71, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, + 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, + 0x52, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3e, 0x0a, + 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x9c, 0x01, + 0x0a, 0x11, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, + 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, + 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x22, 0xb0, 0x01, 0x0a, + 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, + 0x77, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x22, - 0x85, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, - 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, - 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0b, 0x63, - 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3b, 0x0a, 0x0d, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, - 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, - 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x4d, 0x73, - 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x46, 0x0a, - 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, + 0x8d, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, + 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3f, + 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, + 0x44, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, - 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5e, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, - 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, - 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0a, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, - 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, - 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, - 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, - 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, - 0x61, 0x64, 0x22, 0x7f, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, - 0x64, 0x12, 0x16, 0x0a, 0x03, 0x63, 0x32, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, - 0x2e, 0x43, 0x32, 0x43, 0x52, 0x03, 0x63, 0x32, 0x63, 0x12, 0x16, 0x0a, 0x03, 0x67, 0x72, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x47, 0x72, 0x70, 0x52, 0x03, 0x67, 0x72, - 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x07, 0x2e, 0x47, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x67, 0x72, 0x70, 0x54, - 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x77, 0x70, 0x61, 0x54, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x77, 0x70, 0x61, - 0x54, 0x6d, 0x70, 0x22, 0x30, 0x0a, 0x06, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, - 0x55, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x1b, 0x0a, 0x03, 0x43, 0x32, 0x43, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, - 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x03, 0x47, 0x72, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x06, 0x47, 0x72, 0x70, 0x54, 0x6d, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x55, 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xf6, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x73, - 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, - 0x61, 0x67, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x69, 0x6e, 0x50, 0x61, 0x69, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, - 0x72, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, - 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, - 0x6b, 0x69, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, - 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, - 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, - 0x66, 0x22, 0xa9, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, - 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x4c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x4c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x98, 0x01, - 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x12, 0x24, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, - 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, - 0x82, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, - 0x25, 0x0a, 0x08, 0x72, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x72, 0x69, - 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, - 0x74, 0x12, 0x19, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x05, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x05, - 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, - 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, - 0x16, 0x0a, 0x03, 0x70, 0x74, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x50, - 0x74, 0x74, 0x52, 0x03, 0x70, 0x74, 0x74, 0x22, 0xc8, 0x06, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, - 0x12, 0x19, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, - 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x66, - 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x46, 0x61, 0x63, 0x65, - 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, - 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, - 0x30, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, - 0x65, 0x6d, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x2b, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, - 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x2b, - 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x0a, 0x65, - 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x52, 0x0a, 0x65, 0x6c, - 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x12, 0x22, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, - 0x4d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x69, 0x63, 0x68, - 0x4d, 0x73, 0x67, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x28, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x52, - 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x61, 0x6e, - 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x51, 0x51, - 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, - 0x6c, 0x65, 0x6d, 0x12, 0x31, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x73, 0x67, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x08, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4c, - 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, - 0x6c, 0x65, 0x6d, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, - 0x65, 0x6d, 0x22, 0xf0, 0x02, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, - 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, 0x64, 0x74, - 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, - 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x6f, 0x62, 0x69, - 0x6c, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xa9, 0x04, 0x0a, 0x0a, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, - 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x74, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x70, 0x74, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x76, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x76, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x05, 0x69, 0x6e, 0x73, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, - 0x05, 0x69, 0x6e, 0x73, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, 0x74, - 0x43, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, - 0x74, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, 0x73, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x0c, - 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x50, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, - 0x66, 0x52, 0x0c, 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x1a, 0x34, 0x0a, 0x04, 0x49, - 0x6e, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, - 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, - 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x50, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, - 0x65, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, - 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, - 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x6a, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x62, 0x45, 0x6c, - 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, - 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, - 0x4d, 0x73, 0x67, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, - 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x22, - 0xf3, 0x04, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, - 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, 0x28, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, - 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, - 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, - 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, - 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, - 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, - 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x6e, - 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x6b, - 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x72, 0x69, - 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, - 0x74, 0x72, 0x69, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x49, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x49, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, - 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, - 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x63, - 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x66, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x69, - 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, - 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x69, 0x63, 0x68, 0x4d, 0x73, - 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, - 0x78, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73, - 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, - 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x04, 0x54, 0x65, - 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x36, 0x42, 0x75, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x36, 0x42, 0x75, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, 0x75, 0x66, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, 0x75, 0x66, - 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, - 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x22, 0x90, 0x02, 0x0a, 0x04, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x64, - 0x65, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x64, - 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, - 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, - 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x22, 0xb9, 0x05, 0x0a, 0x03, 0x50, 0x74, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, - 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, - 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, - 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, - 0x63, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, - 0x63, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, - 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, - 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x22, - 0x65, 0x0a, 0x0b, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x67, 0x75, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, - 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, - 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xf0, 0x05, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x12, - 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, - 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, - 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6d, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x69, 0x63, - 0x4d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, - 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, - 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x46, - 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x70, - 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x50, 0x69, - 0x63, 0x4d, 0x64, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x50, - 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, - 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, - 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xb9, 0x04, 0x0a, 0x0d, 0x4e, 0x6f, - 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, - 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x66, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x69, 0x66, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x46, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, - 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, 0x02, 0x0a, - 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, - 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x54, 0x61, 0x69, - 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x54, 0x61, - 0x69, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x6e, 0x73, 0x54, 0x69, - 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x70, 0x6e, 0x73, 0x54, 0x69, - 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x75, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x6e, 0x73, - 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x61, 0x70, 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, - 0x61, 0x67, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, - 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, - 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x64, 0x4d, 0x73, - 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x65, 0x65, - 0x64, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x41, 0x6e, 0x6f, 0x6e, 0x79, - 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, - 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, - 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, - 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xc9, 0x06, 0x0a, 0x09, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, - 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, - 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4d, - 0x64, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, - 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, - 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, - 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, - 0x18, 0x14, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, - 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, - 0x18, 0x15, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x68, - 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, - 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x46, 0x61, 0x63, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0x3e, 0x0a, 0x0c, 0x4c, - 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, 0x64, 0x22, 0x99, 0x07, 0x0a, 0x0a, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, - 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x6d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, - 0x55, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, - 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, - 0x69, 0x64, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, - 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, - 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, - 0x4c, 0x65, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, - 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, - 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x5f, 0x34, 0x30, 0x30, 0x55, 0x72, 0x6c, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x34, 0x30, 0x30, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x5f, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x5f, 0x34, - 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x77, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, - 0x76, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, - 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0xe0, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, + 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5e, 0x0a, + 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbe, 0x02, + 0x0a, 0x0a, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, + 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, + 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, + 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x0b, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x22, 0x8f, + 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1a, + 0x0a, 0x03, 0x63, 0x32, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x43, 0x32, 0x43, 0x52, 0x03, 0x63, 0x32, 0x63, 0x12, 0x1a, 0x0a, 0x03, 0x67, 0x72, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, + 0x70, 0x52, 0x03, 0x67, 0x72, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x70, + 0x54, 0x6d, 0x70, 0x52, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x77, + 0x70, 0x61, 0x54, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x77, 0x70, 0x61, 0x54, 0x6d, 0x70, + 0x22, 0x30, 0x0a, 0x06, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, + 0x69, 0x67, 0x22, 0x1b, 0x0a, 0x03, 0x43, 0x32, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x22, + 0x23, 0x0a, 0x03, 0x47, 0x72, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x06, 0x47, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x12, 0x1a, + 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x32, - 0x63, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x32, 0x63, 0x43, - 0x6d, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0d, - 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, - 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x2e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x75, - 0x74, 0x68, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x69, 0x63, - 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x69, 0x63, - 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x6d, 0x75, 0x74, - 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, - 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x75, 0x74, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, - 0x61, 0x64, 0x12, 0x2b, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, - 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, - 0x72, 0x6c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, - 0x3e, 0x0a, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x2a, 0x0a, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, - 0x65, 0x61, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, - 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x70, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x70, 0x69, 0x64, 0x12, - 0x3a, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, - 0x4d, 0x73, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, - 0x4d, 0x73, 0x67, 0x22, 0x8b, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, - 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, - 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, - 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x69, 0x73, - 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x64, - 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, - 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x0e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x73, - 0x67, 0x49, 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x32, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x32, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, - 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, - 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, - 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x73, - 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, - 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, - 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, - 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0b, 0x6d, 0x73, 0x67, - 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, - 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x22, 0x7e, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, - 0x73, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x26, - 0x0a, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, - 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, - 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, - 0x6e, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x12, 0x12, - 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, - 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, - 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, 0x22, 0x8e, 0x03, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, - 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, - 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, - 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x62, 0x62, - 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x4e, - 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, - 0x6c, 0x61, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, - 0x72, 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, - 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, - 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, - 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, - 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x53, - 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, 0x70, 0x69, - 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x6c, - 0x79, 0x6d, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x61, - 0x62, 0x79, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x62, 0x61, 0x62, 0x79, 0x71, 0x47, 0x75, - 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, - 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, - 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x62, - 0x62, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x6e, 0x64, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x6e, - 0x64, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x54, - 0x0a, 0x0e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x50, - 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x52, 0x06, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x0d, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, - 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x61, 0x0a, 0x12, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x12, 0x33, - 0x0a, 0x0f, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x70, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x46, 0x61, 0x63, 0x65, 0x52, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x54, 0x72, 0x6f, 0x6f, 0x70, - 0x50, 0x69, 0x63, 0x12, 0x33, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x32, 0x63, - 0x5f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4e, 0x6f, 0x74, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x61, - 0x73, 0x68, 0x43, 0x32, 0x63, 0x50, 0x69, 0x63, 0x22, 0x6c, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x45, - 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, - 0x33, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0xa3, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x4d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x30, 0x78, 0x34, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x34, 0x0a, 0x0d, - 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, + 0x22, 0x23, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xfe, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, + 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, + 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, + 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x35, 0x0a, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x55, + 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x75, + 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, + 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x69, 0x6e, + 0x64, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, + 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, + 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, + 0x6c, 0x42, 0x75, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, + 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x22, 0xad, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x73, 0x68, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, + 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, + 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, + 0x46, 0x4c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, + 0x46, 0x4c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, + 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x50, 0x61, + 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, + 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x08, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x24, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, + 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, + 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x0b, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x29, 0x0a, 0x08, 0x72, 0x69, 0x63, + 0x68, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x72, 0x69, 0x63, 0x68, + 0x54, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x08, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x12, 0x1f, + 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, + 0x38, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4e, 0x6f, 0x74, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x70, 0x74, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x50, 0x74, 0x74, + 0x52, 0x03, 0x70, 0x74, 0x74, 0x22, 0x94, 0x07, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1d, + 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6d, + 0x73, 0x67, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, + 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x0b, + 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x3b, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4e, + 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x6e, + 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, + 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x46, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, + 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, + 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x52, 0x0a, 0x65, 0x6c, 0x65, 0x6d, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x12, 0x26, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, + 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x52, 0x69, + 0x63, 0x68, 0x4d, 0x73, 0x67, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x2c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x09, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x09, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, + 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, + 0x6d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x35, 0x0a, + 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x25, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x73, 0x67, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x08, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, + 0x6d, 0x52, 0x08, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x22, 0xf0, 0x02, 0x0a, + 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, + 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, + 0xb5, 0x04, 0x0a, 0x0a, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x74, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x74, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x69, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x6e, 0x73, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, + 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, 0x05, 0x69, + 0x6e, 0x73, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, 0x74, 0x43, 0x6e, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, 0x74, 0x43, + 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x12, 0x35, + 0x0a, 0x0c, 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x50, 0x63, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x52, 0x0c, 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x44, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x1a, 0x34, 0x0a, 0x04, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x50, 0x63, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x63, 0x50, 0x74, + 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x63, + 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x63, 0x50, 0x74, + 0x6c, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x63, 0x50, 0x74, + 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, + 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, + 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, + 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, + 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, + 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x6a, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, + 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x0b, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x07, 0x61, 0x69, 0x6f, + 0x42, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, + 0x52, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xfb, 0x04, 0x0a, 0x0f, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x6c, + 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, + 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x65, 0x6e, 0x76, + 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x6e, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x63, + 0x6f, 0x6e, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, + 0x6f, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, + 0x69, 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, + 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, + 0x72, 0x69, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, + 0x6b, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x66, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x6f, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x63, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x69, 0x63, 0x68, + 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, + 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, + 0x71, 0x22, 0x78, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x65, 0x73, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x04, + 0x54, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x36, 0x42, 0x75, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x36, 0x42, 0x75, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, + 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, + 0x75, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x03, 0x62, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x22, 0x90, 0x02, 0x0a, 0x04, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, + 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, + 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x05, 0x0a, 0x03, 0x50, 0x74, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, + 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x12, + 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x22, 0x65, 0x0a, 0x0b, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, + 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xf0, 0x05, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, + 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, + 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, + 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x69, 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, + 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, + 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, + 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x6f, + 0x70, 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x6f, 0x70, 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6c, 0x64, + 0x50, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x6c, + 0x64, 0x50, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xb9, 0x04, 0x0a, 0x0d, + 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, + 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, + 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, + 0x63, 0x6d, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, + 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, + 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x62, + 0x73, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, + 0x02, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x54, + 0x61, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, + 0x54, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x6e, 0x73, + 0x54, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x70, 0x6e, 0x73, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, + 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x61, 0x70, 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x46, 0x6c, 0x61, 0x67, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x64, + 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, + 0x65, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, + 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x41, 0x6e, 0x6f, + 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, + 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xc9, 0x06, 0x0a, 0x09, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, + 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x66, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, + 0x65, 0x4d, 0x64, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, + 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, + 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, + 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2e, 0x0a, 0x12, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, + 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x12, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, 0x65, 0x6d, + 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x69, + 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x40, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, + 0x66, 0x22, 0x3e, 0x0a, 0x0c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, + 0x64, 0x22, 0x99, 0x07, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x5f, 0x34, + 0x30, 0x30, 0x55, 0x72, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x34, 0x30, 0x30, + 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x5f, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x1d, 0x0a, 0x0a, 0x5f, 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x77, 0x0a, + 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, + 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xf8, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x32, 0x63, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x63, 0x32, 0x63, 0x43, 0x6d, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, + 0x67, 0x55, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, + 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, + 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x73, 0x67, 0x2e, + 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, + 0x61, 0x64, 0x52, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x32, 0x0a, + 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, + 0x69, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, + 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x6d, + 0x75, 0x74, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x75, 0x74, 0x69, 0x6c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2f, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x49, + 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x0b, 0x6d, 0x73, + 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x1a, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x73, 0x65, + 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, 0x65, 0x61, 0x64, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, + 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x69, 0x64, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x70, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x78, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x75, + 0x74, 0x68, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, 0x4d, 0x73, + 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, 0x4d, 0x73, + 0x67, 0x22, 0x8b, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0xbf, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, + 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, + 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x3e, 0x0a, 0x0e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x48, + 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, + 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, + 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x32, 0x63, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x32, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, + 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x43, + 0x74, 0x72, 0x6c, 0x12, 0x33, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, + 0x49, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x12, + 0x2f, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, + 0x22, 0x7e, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x70, + 0x70, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x75, 0x6d, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x49, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x0a, + 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, + 0x6d, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x32, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x32, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x32, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, + 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, + 0x22, 0x92, 0x03, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, + 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, + 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x6c, + 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, + 0x72, 0x49, 0x70, 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, + 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, + 0x73, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, + 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, + 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x4e, 0x65, 0x77, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, + 0x67, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, + 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x72, 0x70, + 0x46, 0x6f, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, + 0x54, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, + 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x6c, + 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x71, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, + 0x6b, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, 0x70, 0x69, 0x63, 0x54, + 0x6f, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, + 0x70, 0x69, 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x61, 0x62, 0x79, + 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x62, 0x61, 0x62, 0x79, 0x71, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x69, + 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x53, 0x75, + 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, + 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x58, 0x0a, 0x0e, + 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x52, 0x06, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x0d, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x1e, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x69, 0x0a, 0x12, 0x50, 0x62, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, + 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, + 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x12, 0x37, 0x0a, 0x0f, + 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x54, 0x72, 0x6f, + 0x6f, 0x70, 0x50, 0x69, 0x63, 0x12, 0x37, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x63, + 0x32, 0x63, 0x5f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, + 0x73, 0x67, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x43, 0x32, 0x63, 0x50, 0x69, 0x63, 0x22, 0x6c, + 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x65, + 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, + 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0x54, 0x0a, 0x16, + 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x74, 0x79, 0x70, 0x65, 0x33, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, + 0x74, 0x61, 0x22, 0xa7, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x30, 0x78, 0x34, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x38, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, - 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x62, 0x0a, 0x08, + 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x66, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x76, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, - 0x22, 0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x61, 0x6e, - 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x74, 0x0a, 0x0e, - 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x12, 0x20, - 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, - 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x28, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, - 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x1c, 0x0a, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, - 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x64, - 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, - 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, - 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, - 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x16, + 0x32, 0x17, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x53, 0x68, 0x6f, 0x77, 0x22, 0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0e, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x22, 0x74, 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x6f, + 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x61, + 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xcb, 0x01, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, + 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, + 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x50, 0x62, 0x50, 0x75, 0x73, - 0x68, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x64, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, + 0x43, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x16, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, + 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, + 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x50, 0x62, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x73, 0x67, + 0x12, 0x1e, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, @@ -8669,178 +8748,179 @@ var file_msg_proto_rawDesc = []byte{ 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x2a, 0x2e, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4d, 0x45, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, - 0x2e, 0x2f, 0x3b, 0x6d, 0x73, 0x67, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x42, 0x0c, 0x5a, 0x0a, + 0x70, 0x62, 0x2f, 0x6d, 0x73, 0x67, 0x3b, 0x6d, 0x73, 0x67, } var ( - file_msg_proto_rawDescOnce sync.Once - file_msg_proto_rawDescData = file_msg_proto_rawDesc + file_pb_msg_msg_proto_rawDescOnce sync.Once + file_pb_msg_msg_proto_rawDescData = file_pb_msg_msg_proto_rawDesc ) -func file_msg_proto_rawDescGZIP() []byte { - file_msg_proto_rawDescOnce.Do(func() { - file_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_msg_proto_rawDescData) +func file_pb_msg_msg_proto_rawDescGZIP() []byte { + file_pb_msg_msg_proto_rawDescOnce.Do(func() { + file_pb_msg_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_msg_msg_proto_rawDescData) }) - return file_msg_proto_rawDescData + return file_pb_msg_msg_proto_rawDescData } -var file_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 75) -var file_msg_proto_goTypes = []interface{}{ - (SyncFlag)(0), // 0: SyncFlag - (*GetMessageRequest)(nil), // 1: GetMessageRequest - (*SendMessageRequest)(nil), // 2: SendMessageRequest - (*SendMessageResponse)(nil), // 3: SendMessageResponse - (*MsgWithDrawReq)(nil), // 4: MsgWithDrawReq - (*C2CMsgWithDrawReq)(nil), // 5: C2CMsgWithDrawReq - (*GroupMsgWithDrawReq)(nil), // 6: GroupMsgWithDrawReq - (*MsgWithDrawResp)(nil), // 7: MsgWithDrawResp - (*C2CMsgWithDrawResp)(nil), // 8: C2CMsgWithDrawResp - (*GroupMsgWithDrawResp)(nil), // 9: GroupMsgWithDrawResp - (*GroupMsgInfo)(nil), // 10: GroupMsgInfo - (*C2CMsgInfo)(nil), // 11: C2CMsgInfo - (*RoutingHead)(nil), // 12: RoutingHead - (*WPATmp)(nil), // 13: WPATmp - (*C2C)(nil), // 14: C2C - (*Grp)(nil), // 15: Grp - (*GrpTmp)(nil), // 16: GrpTmp - (*MsgCtrl)(nil), // 17: MsgCtrl - (*GetMessageResponse)(nil), // 18: GetMessageResponse - (*PushMessagePacket)(nil), // 19: PushMessagePacket - (*UinPairMessage)(nil), // 20: UinPairMessage - (*Message)(nil), // 21: Message - (*MessageBody)(nil), // 22: MessageBody - (*RichText)(nil), // 23: RichText - (*Elem)(nil), // 24: Elem - (*MarketFace)(nil), // 25: MarketFace - (*ElemFlags2)(nil), // 26: ElemFlags2 - (*PcSupportDef)(nil), // 27: PcSupportDef - (*CommonElem)(nil), // 28: CommonElem - (*QQWalletMsg)(nil), // 29: QQWalletMsg - (*QQWalletAioBody)(nil), // 30: QQWalletAioBody - (*QQWalletAioElem)(nil), // 31: QQWalletAioElem - (*RichMsg)(nil), // 32: RichMsg - (*CustomElem)(nil), // 33: CustomElem - (*Text)(nil), // 34: Text - (*Attr)(nil), // 35: Attr - (*Ptt)(nil), // 36: Ptt - (*OnlineImage)(nil), // 37: OnlineImage - (*NotOnlineImage)(nil), // 38: NotOnlineImage - (*NotOnlineFile)(nil), // 39: NotOnlineFile - (*TransElem)(nil), // 40: TransElem - (*ExtraInfo)(nil), // 41: ExtraInfo - (*GroupFile)(nil), // 42: GroupFile - (*AnonymousGroupMessage)(nil), // 43: AnonymousGroupMessage - (*VideoFile)(nil), // 44: VideoFile - (*SourceMsg)(nil), // 45: SourceMsg - (*Face)(nil), // 46: Face - (*LightAppElem)(nil), // 47: LightAppElem - (*CustomFace)(nil), // 48: CustomFace - (*ContentHead)(nil), // 49: ContentHead - (*MessageHead)(nil), // 50: MessageHead - (*GroupInfo)(nil), // 51: GroupInfo - (*DiscussInfo)(nil), // 52: DiscussInfo - (*MutilTransHead)(nil), // 53: MutilTransHead - (*C2CTempMessageHead)(nil), // 54: C2CTempMessageHead - (*InstCtrl)(nil), // 55: InstCtrl - (*InstInfo)(nil), // 56: InstInfo - (*ExtGroupKeyInfo)(nil), // 57: ExtGroupKeyInfo - (*SyncCookie)(nil), // 58: SyncCookie - (*TransMsgInfo)(nil), // 59: TransMsgInfo - (*GeneralFlags)(nil), // 60: GeneralFlags - (*PbMultiMsgItem)(nil), // 61: PbMultiMsgItem - (*PbMultiMsgNew)(nil), // 62: PbMultiMsgNew - (*PbMultiMsgTransmit)(nil), // 63: PbMultiMsgTransmit - (*MsgElemInfoServtype3)(nil), // 64: MsgElemInfo_servtype3 - (*MsgElemInfoServtype33)(nil), // 65: MsgElemInfo_servtype33 - (*SubMsgType0X4Body)(nil), // 66: SubMsgType0x4Body - (*ResvAttr)(nil), // 67: ResvAttr - (*AnimationImageShow)(nil), // 68: AnimationImageShow - (*UinTypeUserDef)(nil), // 69: UinTypeUserDef - (*GetGroupMsgReq)(nil), // 70: GetGroupMsgReq - (*GetGroupMsgResp)(nil), // 71: GetGroupMsgResp - (*PbGetOneDayRoamMsgReq)(nil), // 72: PbGetOneDayRoamMsgReq - (*PbGetOneDayRoamMsgResp)(nil), // 73: PbGetOneDayRoamMsgResp - (*PbPushMsg)(nil), // 74: PbPushMsg - (*ElemFlags2_Inst)(nil), // 75: ElemFlags2.Inst +var file_pb_msg_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_pb_msg_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 76) +var file_pb_msg_msg_proto_goTypes = []interface{}{ + (SyncFlag)(0), // 0: msg.SyncFlag + (*GetMessageRequest)(nil), // 1: msg.GetMessageRequest + (*SendMessageRequest)(nil), // 2: msg.SendMessageRequest + (*SendMessageResponse)(nil), // 3: msg.SendMessageResponse + (*MsgWithDrawReq)(nil), // 4: msg.MsgWithDrawReq + (*C2CMsgWithDrawReq)(nil), // 5: msg.C2CMsgWithDrawReq + (*GroupMsgWithDrawReq)(nil), // 6: msg.GroupMsgWithDrawReq + (*MsgWithDrawResp)(nil), // 7: msg.MsgWithDrawResp + (*C2CMsgWithDrawResp)(nil), // 8: msg.C2CMsgWithDrawResp + (*GroupMsgWithDrawResp)(nil), // 9: msg.GroupMsgWithDrawResp + (*GroupMsgInfo)(nil), // 10: msg.GroupMsgInfo + (*C2CMsgInfo)(nil), // 11: msg.C2CMsgInfo + (*RoutingHead)(nil), // 12: msg.RoutingHead + (*WPATmp)(nil), // 13: msg.WPATmp + (*C2C)(nil), // 14: msg.C2C + (*Grp)(nil), // 15: msg.Grp + (*GrpTmp)(nil), // 16: msg.GrpTmp + (*MsgCtrl)(nil), // 17: msg.MsgCtrl + (*GetMessageResponse)(nil), // 18: msg.GetMessageResponse + (*PushMessagePacket)(nil), // 19: msg.PushMessagePacket + (*UinPairMessage)(nil), // 20: msg.UinPairMessage + (*Message)(nil), // 21: msg.Message + (*MessageBody)(nil), // 22: msg.MessageBody + (*RichText)(nil), // 23: msg.RichText + (*Elem)(nil), // 24: msg.Elem + (*MarketFace)(nil), // 25: msg.MarketFace + (*ElemFlags2)(nil), // 26: msg.ElemFlags2 + (*PcSupportDef)(nil), // 27: msg.PcSupportDef + (*CommonElem)(nil), // 28: msg.CommonElem + (*QQWalletMsg)(nil), // 29: msg.QQWalletMsg + (*QQWalletAioBody)(nil), // 30: msg.QQWalletAioBody + (*QQWalletAioElem)(nil), // 31: msg.QQWalletAioElem + (*RichMsg)(nil), // 32: msg.RichMsg + (*CustomElem)(nil), // 33: msg.CustomElem + (*Text)(nil), // 34: msg.Text + (*Attr)(nil), // 35: msg.Attr + (*Ptt)(nil), // 36: msg.Ptt + (*OnlineImage)(nil), // 37: msg.OnlineImage + (*NotOnlineImage)(nil), // 38: msg.NotOnlineImage + (*NotOnlineFile)(nil), // 39: msg.NotOnlineFile + (*TransElem)(nil), // 40: msg.TransElem + (*ExtraInfo)(nil), // 41: msg.ExtraInfo + (*GroupFile)(nil), // 42: msg.GroupFile + (*AnonymousGroupMessage)(nil), // 43: msg.AnonymousGroupMessage + (*VideoFile)(nil), // 44: msg.VideoFile + (*SourceMsg)(nil), // 45: msg.SourceMsg + (*Face)(nil), // 46: msg.Face + (*LightAppElem)(nil), // 47: msg.LightAppElem + (*CustomFace)(nil), // 48: msg.CustomFace + (*ContentHead)(nil), // 49: msg.ContentHead + (*MessageHead)(nil), // 50: msg.MessageHead + (*GroupInfo)(nil), // 51: msg.GroupInfo + (*DiscussInfo)(nil), // 52: msg.DiscussInfo + (*MutilTransHead)(nil), // 53: msg.MutilTransHead + (*C2CTempMessageHead)(nil), // 54: msg.C2CTempMessageHead + (*InstCtrl)(nil), // 55: msg.InstCtrl + (*InstInfo)(nil), // 56: msg.InstInfo + (*ExtGroupKeyInfo)(nil), // 57: msg.ExtGroupKeyInfo + (*SyncCookie)(nil), // 58: msg.SyncCookie + (*TransMsgInfo)(nil), // 59: msg.TransMsgInfo + (*GeneralFlags)(nil), // 60: msg.GeneralFlags + (*PbMultiMsgItem)(nil), // 61: msg.PbMultiMsgItem + (*PbMultiMsgNew)(nil), // 62: msg.PbMultiMsgNew + (*PbMultiMsgTransmit)(nil), // 63: msg.PbMultiMsgTransmit + (*MsgElemInfoServtype3)(nil), // 64: msg.MsgElemInfo_servtype3 + (*MsgElemInfoServtype33)(nil), // 65: msg.MsgElemInfo_servtype33 + (*MsgElemInfoServtype38)(nil), // 66: msg.MsgElemInfo_servtype38 + (*SubMsgType0X4Body)(nil), // 67: msg.SubMsgType0x4Body + (*ResvAttr)(nil), // 68: msg.ResvAttr + (*AnimationImageShow)(nil), // 69: msg.AnimationImageShow + (*UinTypeUserDef)(nil), // 70: msg.UinTypeUserDef + (*GetGroupMsgReq)(nil), // 71: msg.GetGroupMsgReq + (*GetGroupMsgResp)(nil), // 72: msg.GetGroupMsgResp + (*PbGetOneDayRoamMsgReq)(nil), // 73: msg.PbGetOneDayRoamMsgReq + (*PbGetOneDayRoamMsgResp)(nil), // 74: msg.PbGetOneDayRoamMsgResp + (*PbPushMsg)(nil), // 75: msg.PbPushMsg + (*ElemFlags2_Inst)(nil), // 76: msg.ElemFlags2.Inst } -var file_msg_proto_depIdxs = []int32{ - 0, // 0: GetMessageRequest.syncFlag:type_name -> SyncFlag - 12, // 1: SendMessageRequest.routingHead:type_name -> RoutingHead - 49, // 2: SendMessageRequest.contentHead:type_name -> ContentHead - 22, // 3: SendMessageRequest.msgBody:type_name -> MessageBody - 17, // 4: SendMessageRequest.msgCtrl:type_name -> MsgCtrl - 5, // 5: MsgWithDrawReq.c2cWithDraw:type_name -> C2CMsgWithDrawReq - 6, // 6: MsgWithDrawReq.groupWithDraw:type_name -> GroupMsgWithDrawReq - 11, // 7: C2CMsgWithDrawReq.msgInfo:type_name -> C2CMsgInfo - 10, // 8: GroupMsgWithDrawReq.msgList:type_name -> GroupMsgInfo - 8, // 9: MsgWithDrawResp.c2cWithDraw:type_name -> C2CMsgWithDrawResp - 9, // 10: MsgWithDrawResp.groupWithDraw:type_name -> GroupMsgWithDrawResp - 12, // 11: C2CMsgInfo.routingHead:type_name -> RoutingHead - 14, // 12: RoutingHead.c2c:type_name -> C2C - 15, // 13: RoutingHead.grp:type_name -> Grp - 16, // 14: RoutingHead.grpTmp:type_name -> GrpTmp - 13, // 15: RoutingHead.wpaTmp:type_name -> WPATmp - 0, // 16: GetMessageResponse.syncFlag:type_name -> SyncFlag - 20, // 17: GetMessageResponse.uinPairMsgs:type_name -> UinPairMessage - 21, // 18: PushMessagePacket.message:type_name -> Message - 21, // 19: UinPairMessage.messages:type_name -> Message - 50, // 20: Message.head:type_name -> MessageHead - 49, // 21: Message.content:type_name -> ContentHead - 22, // 22: Message.body:type_name -> MessageBody - 23, // 23: MessageBody.richText:type_name -> RichText - 35, // 24: RichText.attr:type_name -> Attr - 24, // 25: RichText.elems:type_name -> Elem - 39, // 26: RichText.notOnlineFile:type_name -> NotOnlineFile - 36, // 27: RichText.ptt:type_name -> Ptt - 34, // 28: Elem.text:type_name -> Text - 46, // 29: Elem.face:type_name -> Face - 37, // 30: Elem.onlineImage:type_name -> OnlineImage - 38, // 31: Elem.notOnlineImage:type_name -> NotOnlineImage - 40, // 32: Elem.transElemInfo:type_name -> TransElem - 25, // 33: Elem.marketFace:type_name -> MarketFace - 48, // 34: Elem.customFace:type_name -> CustomFace - 26, // 35: Elem.elemFlags2:type_name -> ElemFlags2 - 32, // 36: Elem.richMsg:type_name -> RichMsg - 42, // 37: Elem.groupFile:type_name -> GroupFile - 41, // 38: Elem.extraInfo:type_name -> ExtraInfo - 44, // 39: Elem.videoFile:type_name -> VideoFile - 43, // 40: Elem.anonGroupMsg:type_name -> AnonymousGroupMessage - 29, // 41: Elem.QQWalletMsg:type_name -> QQWalletMsg - 33, // 42: Elem.customElem:type_name -> CustomElem - 60, // 43: Elem.generalFlags:type_name -> GeneralFlags - 45, // 44: Elem.srcMsg:type_name -> SourceMsg - 47, // 45: Elem.lightApp:type_name -> LightAppElem - 28, // 46: Elem.commonElem:type_name -> CommonElem - 75, // 47: ElemFlags2.insts:type_name -> ElemFlags2.Inst - 75, // 48: ElemFlags2.srcInst:type_name -> ElemFlags2.Inst - 27, // 49: ElemFlags2.pcSupportDef:type_name -> PcSupportDef - 30, // 50: QQWalletMsg.aioBody:type_name -> QQWalletAioBody - 31, // 51: QQWalletAioBody.sender:type_name -> QQWalletAioElem - 31, // 52: QQWalletAioBody.receiver:type_name -> QQWalletAioElem - 24, // 53: SourceMsg.elems:type_name -> Elem - 54, // 54: MessageHead.c2cTmpMsgHead:type_name -> C2CTempMessageHead - 51, // 55: MessageHead.groupInfo:type_name -> GroupInfo - 52, // 56: MessageHead.discussInfo:type_name -> DiscussInfo - 53, // 57: MessageHead.mutiltransHead:type_name -> MutilTransHead - 55, // 58: MessageHead.msgInstCtrl:type_name -> InstCtrl - 57, // 59: MessageHead.extGroupKeyInfo:type_name -> ExtGroupKeyInfo - 56, // 60: InstCtrl.msgSendToInst:type_name -> InstInfo - 56, // 61: InstCtrl.msgExcludeInst:type_name -> InstInfo - 56, // 62: InstCtrl.msgFromInst:type_name -> InstInfo - 57, // 63: TransMsgInfo.extGroupKeyInfo:type_name -> ExtGroupKeyInfo - 62, // 64: PbMultiMsgItem.buffer:type_name -> PbMultiMsgNew - 21, // 65: PbMultiMsgNew.msg:type_name -> Message - 21, // 66: PbMultiMsgTransmit.msg:type_name -> Message - 61, // 67: PbMultiMsgTransmit.pbItemList:type_name -> PbMultiMsgItem - 48, // 68: MsgElemInfo_servtype3.flash_troop_pic:type_name -> CustomFace - 38, // 69: MsgElemInfo_servtype3.flash_c2c_pic:type_name -> NotOnlineImage - 39, // 70: SubMsgType0x4Body.notOnlineFile:type_name -> NotOnlineFile - 68, // 71: ResvAttr.image_show:type_name -> AnimationImageShow - 21, // 72: GetGroupMsgResp.msg:type_name -> Message - 21, // 73: PbGetOneDayRoamMsgResp.msg:type_name -> Message - 21, // 74: PbPushMsg.msg:type_name -> Message +var file_pb_msg_msg_proto_depIdxs = []int32{ + 0, // 0: msg.GetMessageRequest.syncFlag:type_name -> msg.SyncFlag + 12, // 1: msg.SendMessageRequest.routingHead:type_name -> msg.RoutingHead + 49, // 2: msg.SendMessageRequest.contentHead:type_name -> msg.ContentHead + 22, // 3: msg.SendMessageRequest.msgBody:type_name -> msg.MessageBody + 17, // 4: msg.SendMessageRequest.msgCtrl:type_name -> msg.MsgCtrl + 5, // 5: msg.MsgWithDrawReq.c2cWithDraw:type_name -> msg.C2CMsgWithDrawReq + 6, // 6: msg.MsgWithDrawReq.groupWithDraw:type_name -> msg.GroupMsgWithDrawReq + 11, // 7: msg.C2CMsgWithDrawReq.msgInfo:type_name -> msg.C2CMsgInfo + 10, // 8: msg.GroupMsgWithDrawReq.msgList:type_name -> msg.GroupMsgInfo + 8, // 9: msg.MsgWithDrawResp.c2cWithDraw:type_name -> msg.C2CMsgWithDrawResp + 9, // 10: msg.MsgWithDrawResp.groupWithDraw:type_name -> msg.GroupMsgWithDrawResp + 12, // 11: msg.C2CMsgInfo.routingHead:type_name -> msg.RoutingHead + 14, // 12: msg.RoutingHead.c2c:type_name -> msg.C2C + 15, // 13: msg.RoutingHead.grp:type_name -> msg.Grp + 16, // 14: msg.RoutingHead.grpTmp:type_name -> msg.GrpTmp + 13, // 15: msg.RoutingHead.wpaTmp:type_name -> msg.WPATmp + 0, // 16: msg.GetMessageResponse.syncFlag:type_name -> msg.SyncFlag + 20, // 17: msg.GetMessageResponse.uinPairMsgs:type_name -> msg.UinPairMessage + 21, // 18: msg.PushMessagePacket.message:type_name -> msg.Message + 21, // 19: msg.UinPairMessage.messages:type_name -> msg.Message + 50, // 20: msg.Message.head:type_name -> msg.MessageHead + 49, // 21: msg.Message.content:type_name -> msg.ContentHead + 22, // 22: msg.Message.body:type_name -> msg.MessageBody + 23, // 23: msg.MessageBody.richText:type_name -> msg.RichText + 35, // 24: msg.RichText.attr:type_name -> msg.Attr + 24, // 25: msg.RichText.elems:type_name -> msg.Elem + 39, // 26: msg.RichText.notOnlineFile:type_name -> msg.NotOnlineFile + 36, // 27: msg.RichText.ptt:type_name -> msg.Ptt + 34, // 28: msg.Elem.text:type_name -> msg.Text + 46, // 29: msg.Elem.face:type_name -> msg.Face + 37, // 30: msg.Elem.onlineImage:type_name -> msg.OnlineImage + 38, // 31: msg.Elem.notOnlineImage:type_name -> msg.NotOnlineImage + 40, // 32: msg.Elem.transElemInfo:type_name -> msg.TransElem + 25, // 33: msg.Elem.marketFace:type_name -> msg.MarketFace + 48, // 34: msg.Elem.customFace:type_name -> msg.CustomFace + 26, // 35: msg.Elem.elemFlags2:type_name -> msg.ElemFlags2 + 32, // 36: msg.Elem.richMsg:type_name -> msg.RichMsg + 42, // 37: msg.Elem.groupFile:type_name -> msg.GroupFile + 41, // 38: msg.Elem.extraInfo:type_name -> msg.ExtraInfo + 44, // 39: msg.Elem.videoFile:type_name -> msg.VideoFile + 43, // 40: msg.Elem.anonGroupMsg:type_name -> msg.AnonymousGroupMessage + 29, // 41: msg.Elem.QQWalletMsg:type_name -> msg.QQWalletMsg + 33, // 42: msg.Elem.customElem:type_name -> msg.CustomElem + 60, // 43: msg.Elem.generalFlags:type_name -> msg.GeneralFlags + 45, // 44: msg.Elem.srcMsg:type_name -> msg.SourceMsg + 47, // 45: msg.Elem.lightApp:type_name -> msg.LightAppElem + 28, // 46: msg.Elem.commonElem:type_name -> msg.CommonElem + 76, // 47: msg.ElemFlags2.insts:type_name -> msg.ElemFlags2.Inst + 76, // 48: msg.ElemFlags2.srcInst:type_name -> msg.ElemFlags2.Inst + 27, // 49: msg.ElemFlags2.pcSupportDef:type_name -> msg.PcSupportDef + 30, // 50: msg.QQWalletMsg.aioBody:type_name -> msg.QQWalletAioBody + 31, // 51: msg.QQWalletAioBody.sender:type_name -> msg.QQWalletAioElem + 31, // 52: msg.QQWalletAioBody.receiver:type_name -> msg.QQWalletAioElem + 24, // 53: msg.SourceMsg.elems:type_name -> msg.Elem + 54, // 54: msg.MessageHead.c2cTmpMsgHead:type_name -> msg.C2CTempMessageHead + 51, // 55: msg.MessageHead.groupInfo:type_name -> msg.GroupInfo + 52, // 56: msg.MessageHead.discussInfo:type_name -> msg.DiscussInfo + 53, // 57: msg.MessageHead.mutiltransHead:type_name -> msg.MutilTransHead + 55, // 58: msg.MessageHead.msgInstCtrl:type_name -> msg.InstCtrl + 57, // 59: msg.MessageHead.extGroupKeyInfo:type_name -> msg.ExtGroupKeyInfo + 56, // 60: msg.InstCtrl.msgSendToInst:type_name -> msg.InstInfo + 56, // 61: msg.InstCtrl.msgExcludeInst:type_name -> msg.InstInfo + 56, // 62: msg.InstCtrl.msgFromInst:type_name -> msg.InstInfo + 57, // 63: msg.TransMsgInfo.extGroupKeyInfo:type_name -> msg.ExtGroupKeyInfo + 62, // 64: msg.PbMultiMsgItem.buffer:type_name -> msg.PbMultiMsgNew + 21, // 65: msg.PbMultiMsgNew.msg:type_name -> msg.Message + 21, // 66: msg.PbMultiMsgTransmit.msg:type_name -> msg.Message + 61, // 67: msg.PbMultiMsgTransmit.pbItemList:type_name -> msg.PbMultiMsgItem + 48, // 68: msg.MsgElemInfo_servtype3.flash_troop_pic:type_name -> msg.CustomFace + 38, // 69: msg.MsgElemInfo_servtype3.flash_c2c_pic:type_name -> msg.NotOnlineImage + 39, // 70: msg.SubMsgType0x4Body.notOnlineFile:type_name -> msg.NotOnlineFile + 69, // 71: msg.ResvAttr.image_show:type_name -> msg.AnimationImageShow + 21, // 72: msg.GetGroupMsgResp.msg:type_name -> msg.Message + 21, // 73: msg.PbGetOneDayRoamMsgResp.msg:type_name -> msg.Message + 21, // 74: msg.PbPushMsg.msg:type_name -> msg.Message 75, // [75:75] is the sub-list for method output_type 75, // [75:75] is the sub-list for method input_type 75, // [75:75] is the sub-list for extension type_name @@ -8848,13 +8928,13 @@ var file_msg_proto_depIdxs = []int32{ 0, // [0:75] is the sub-list for field type_name } -func init() { file_msg_proto_init() } -func file_msg_proto_init() { - if File_msg_proto != nil { +func init() { file_pb_msg_msg_proto_init() } +func file_pb_msg_msg_proto_init() { + if File_pb_msg_msg_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessageRequest); i { case 0: return &v.state @@ -8866,7 +8946,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageRequest); i { case 0: return &v.state @@ -8878,7 +8958,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageResponse); i { case 0: return &v.state @@ -8890,7 +8970,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgWithDrawReq); i { case 0: return &v.state @@ -8902,7 +8982,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgWithDrawReq); i { case 0: return &v.state @@ -8914,7 +8994,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgWithDrawReq); i { case 0: return &v.state @@ -8926,7 +9006,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgWithDrawResp); i { case 0: return &v.state @@ -8938,7 +9018,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgWithDrawResp); i { case 0: return &v.state @@ -8950,7 +9030,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgWithDrawResp); i { case 0: return &v.state @@ -8962,7 +9042,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgInfo); i { case 0: return &v.state @@ -8974,7 +9054,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgInfo); i { case 0: return &v.state @@ -8986,7 +9066,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoutingHead); i { case 0: return &v.state @@ -8998,7 +9078,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WPATmp); i { case 0: return &v.state @@ -9010,7 +9090,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2C); i { case 0: return &v.state @@ -9022,7 +9102,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Grp); i { case 0: return &v.state @@ -9034,7 +9114,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrpTmp); i { case 0: return &v.state @@ -9046,7 +9126,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgCtrl); i { case 0: return &v.state @@ -9058,7 +9138,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessageResponse); i { case 0: return &v.state @@ -9070,7 +9150,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PushMessagePacket); i { case 0: return &v.state @@ -9082,7 +9162,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UinPairMessage); i { case 0: return &v.state @@ -9094,7 +9174,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state @@ -9106,7 +9186,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageBody); i { case 0: return &v.state @@ -9118,7 +9198,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichText); i { case 0: return &v.state @@ -9130,7 +9210,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Elem); i { case 0: return &v.state @@ -9142,7 +9222,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketFace); i { case 0: return &v.state @@ -9154,7 +9234,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElemFlags2); i { case 0: return &v.state @@ -9166,7 +9246,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PcSupportDef); i { case 0: return &v.state @@ -9178,7 +9258,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonElem); i { case 0: return &v.state @@ -9190,7 +9270,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletMsg); i { case 0: return &v.state @@ -9202,7 +9282,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletAioBody); i { case 0: return &v.state @@ -9214,7 +9294,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletAioElem); i { case 0: return &v.state @@ -9226,7 +9306,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichMsg); i { case 0: return &v.state @@ -9238,7 +9318,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomElem); i { case 0: return &v.state @@ -9250,7 +9330,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Text); i { case 0: return &v.state @@ -9262,7 +9342,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attr); i { case 0: return &v.state @@ -9274,7 +9354,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ptt); i { case 0: return &v.state @@ -9286,7 +9366,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineImage); i { case 0: return &v.state @@ -9298,7 +9378,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotOnlineImage); i { case 0: return &v.state @@ -9310,7 +9390,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotOnlineFile); i { case 0: return &v.state @@ -9322,7 +9402,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransElem); i { case 0: return &v.state @@ -9334,7 +9414,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtraInfo); i { case 0: return &v.state @@ -9346,7 +9426,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupFile); i { case 0: return &v.state @@ -9358,7 +9438,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnonymousGroupMessage); i { case 0: return &v.state @@ -9370,7 +9450,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VideoFile); i { case 0: return &v.state @@ -9382,7 +9462,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceMsg); i { case 0: return &v.state @@ -9394,7 +9474,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Face); i { case 0: return &v.state @@ -9406,7 +9486,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LightAppElem); i { case 0: return &v.state @@ -9418,7 +9498,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomFace); i { case 0: return &v.state @@ -9430,7 +9510,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContentHead); i { case 0: return &v.state @@ -9442,7 +9522,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageHead); i { case 0: return &v.state @@ -9454,7 +9534,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfo); i { case 0: return &v.state @@ -9466,7 +9546,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiscussInfo); i { case 0: return &v.state @@ -9478,7 +9558,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MutilTransHead); i { case 0: return &v.state @@ -9490,7 +9570,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CTempMessageHead); i { case 0: return &v.state @@ -9502,7 +9582,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstCtrl); i { case 0: return &v.state @@ -9514,7 +9594,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstInfo); i { case 0: return &v.state @@ -9526,7 +9606,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtGroupKeyInfo); i { case 0: return &v.state @@ -9538,7 +9618,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCookie); i { case 0: return &v.state @@ -9550,7 +9630,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransMsgInfo); i { case 0: return &v.state @@ -9562,7 +9642,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneralFlags); i { case 0: return &v.state @@ -9574,7 +9654,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgItem); i { case 0: return &v.state @@ -9586,7 +9666,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgNew); i { case 0: return &v.state @@ -9598,7 +9678,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgTransmit); i { case 0: return &v.state @@ -9610,7 +9690,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgElemInfoServtype3); i { case 0: return &v.state @@ -9622,7 +9702,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgElemInfoServtype33); i { case 0: return &v.state @@ -9634,7 +9714,19 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgElemInfoServtype38); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_msg_msg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubMsgType0X4Body); i { case 0: return &v.state @@ -9646,7 +9738,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResvAttr); i { case 0: return &v.state @@ -9658,7 +9750,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnimationImageShow); i { case 0: return &v.state @@ -9670,7 +9762,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UinTypeUserDef); i { case 0: return &v.state @@ -9682,7 +9774,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupMsgReq); i { case 0: return &v.state @@ -9694,7 +9786,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupMsgResp); i { case 0: return &v.state @@ -9706,7 +9798,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbGetOneDayRoamMsgReq); i { case 0: return &v.state @@ -9718,7 +9810,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbGetOneDayRoamMsgResp); i { case 0: return &v.state @@ -9730,7 +9822,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbPushMsg); i { case 0: return &v.state @@ -9742,7 +9834,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElemFlags2_Inst); i { case 0: return &v.state @@ -9759,19 +9851,19 @@ func file_msg_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_msg_proto_rawDesc, + RawDescriptor: file_pb_msg_msg_proto_rawDesc, NumEnums: 1, - NumMessages: 75, + NumMessages: 76, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_msg_proto_goTypes, - DependencyIndexes: file_msg_proto_depIdxs, - EnumInfos: file_msg_proto_enumTypes, - MessageInfos: file_msg_proto_msgTypes, + GoTypes: file_pb_msg_msg_proto_goTypes, + DependencyIndexes: file_pb_msg_msg_proto_depIdxs, + EnumInfos: file_pb_msg_msg_proto_enumTypes, + MessageInfos: file_pb_msg_msg_proto_msgTypes, }.Build() - File_msg_proto = out.File - file_msg_proto_rawDesc = nil - file_msg_proto_goTypes = nil - file_msg_proto_depIdxs = nil + File_pb_msg_msg_proto = out.File + file_pb_msg_msg_proto_rawDesc = nil + file_pb_msg_msg_proto_goTypes = nil + file_pb_msg_msg_proto_depIdxs = nil } diff --git a/client/pb/msg/msg.proto b/client/pb/msg/msg.proto index ecd1b985..92bb34c5 100644 --- a/client/pb/msg/msg.proto +++ b/client/pb/msg/msg.proto @@ -2,7 +2,7 @@ syntax = "proto2"; package msg; -option go_package = "github.com/Mrs4s/MiraiGo/client/pb/msg;msg"; +option go_package = "pb/msg;msg"; message GetMessageRequest { optional SyncFlag syncFlag = 1; @@ -776,6 +776,11 @@ message MsgElemInfo_servtype33 { optional bytes buf = 4; } +message MsgElemInfo_servtype38 { + optional bytes reactData = 1; + optional bytes replyData = 2; +} + message SubMsgType0x4Body { optional NotOnlineFile notOnlineFile = 1; optional uint32 msgTime = 2; diff --git a/message/message.go b/message/message.go index e8b76256..53b24c90 100644 --- a/message/message.go +++ b/message/message.go @@ -46,16 +46,6 @@ type ( // OriginalElements []*msg.Elem } - GuildChannelMessage struct { - Id uint64 - InternalId int32 - GuildId uint64 - ChannelId uint64 - Time int64 - Sender *GuildSender - Elements []IMessageElement - } - SendingMessage struct { Elements []IMessageElement } @@ -68,11 +58,6 @@ type ( IsFriend bool } - GuildSender struct { - TinyId uint64 - Nickname string - } - AnonymousInfo struct { AnonymousId string AnonymousNick string diff --git a/message/message_guild.go b/message/message_guild.go new file mode 100644 index 00000000..7297b0cc --- /dev/null +++ b/message/message_guild.go @@ -0,0 +1,26 @@ +package message + +type ( + GuildChannelMessage struct { + Id uint64 + InternalId int32 + GuildId uint64 + ChannelId uint64 + Time int64 + Sender *GuildSender + Elements []IMessageElement + } + + GuildMessageEmojiReaction struct { + EmojiId string + EmojiType uint64 + Face *FaceElement + Count int32 + Clicked bool + } + + GuildSender struct { + TinyId uint64 + Nickname string + } +)