From f924d4e8809face7672f85824421a5d195f2f5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E5=8B=87?= Date: Thu, 21 Sep 2023 17:09:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8A=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/imserver/chatmgr.go | 12 +- server/imserver/cs/cs_proto.pb.go | 1132 +++++++++++++++----------- server/imserver/guild.go | 24 +- server/imserver/handlermgr.go | 6 + server/imserver/mt/IMCluster.go | 13 +- server/imserver/player.go | 45 +- server/imserver/playermgr.go | 10 +- server/imserver/proto/cs_proto.proto | 19 +- 8 files changed, 746 insertions(+), 515 deletions(-) diff --git a/server/imserver/chatmgr.go b/server/imserver/chatmgr.go index adf97930..82bb498b 100644 --- a/server/imserver/chatmgr.go +++ b/server/imserver/chatmgr.go @@ -39,11 +39,11 @@ func NewChatMgr(pm *PlayerMgr, fm *FriendsMgr, gm *GuildMgr) *ChatMgr { func (cm *ChatMgr) init() {} -func (cm *ChatMgr) FillMFChatMsg(msg *cs.MFChatMsg, accountId *string, +func (cm *ChatMgr) FillMFChatMsg(msg *cs.MFChatMsg, sender *Player, msgAutoId uint64, chatChannel int32, msgType int32, msgBody *string) { msg.MsgUuid = &msgAutoId - msg.Sender = accountId + msg.Sender = sender.FillMFChatUser() msg.ChatChannel = &chatChannel msg.MsgType = &msgType msg.MsgBody = msgBody @@ -91,10 +91,9 @@ func (cm *ChatMgr) FillSMUpdatePrivateChatRedPointNotify(p *Player, msg *cs.SMUp } func (cm *ChatMgr) ProcWorldChat(p *Player, msg *cs.CMSendChatMsg) { - accountId := p.GetAccountId() chatMsg := new(cs.MFChatMsg) cm.worldMsgId++ - cm.FillMFChatMsg(chatMsg, &accountId, cm.worldMsgId, *msg.ChatChannel, *msg.MsgType, msg.MsgBody) + cm.FillMFChatMsg(chatMsg, p, cm.worldMsgId, *msg.ChatChannel, *msg.MsgType, msg.MsgBody) cm.worldMsgRec.CurrID = cm.worldMsgId cm.worldMsgRec.AddChatMsg(chatMsg) @@ -114,7 +113,7 @@ func (cm *ChatMgr) ProcGuildChat(p *Player, msg *cs.CMSendChatMsg) { cm.guildMsgId++ chatMsg := new(cs.MFChatMsg) - cm.FillMFChatMsg(chatMsg, &p.accountId, cm.guildMsgId, *msg.ChatChannel, *msg.MsgType, msg.MsgBody) + cm.FillMFChatMsg(chatMsg, p, cm.guildMsgId, *msg.ChatChannel, *msg.MsgType, msg.MsgBody) if msgRec, exists := cm.guildMsgRec[guildId]; exists { msgRec.AddChatMsg(chatMsg) @@ -138,6 +137,7 @@ func (cm *ChatMgr) ProcPrivateChat(p *Player, msg *cs.CMSendChatMsg) { if p.accountId == targetAccountId { return } + // 确定是否好友 targetAccount := cm.fm.GetFriendByAccountId(p.accountId, targetAccountId) if targetAccount == nil { @@ -145,7 +145,7 @@ func (cm *ChatMgr) ProcPrivateChat(p *Player, msg *cs.CMSendChatMsg) { } chatMsg := new(cs.MFChatMsg) - cm.FillMFChatMsg(chatMsg, &p.accountId, 0, *msg.ChatChannel, *msg.MsgType, msg.MsgBody) + cm.FillMFChatMsg(chatMsg, p, 0, *msg.ChatChannel, *msg.MsgType, msg.MsgBody) cm.AddChatUser(p.accountId, msg.GetTargetAccountId(), chatMsg, p.IncrPrivateChatLastId()) cm.SyncPrivateChatMsg(p) diff --git a/server/imserver/cs/cs_proto.pb.go b/server/imserver/cs/cs_proto.pb.go index 8ed3700c..6dac69d4 100644 --- a/server/imserver/cs/cs_proto.pb.go +++ b/server/imserver/cs/cs_proto.pb.go @@ -2560,13 +2560,13 @@ type MFChatMsg struct { // 消息唯一id,递增序列,客户端可以用chat_channel + msg_uuid作为主键 // !!!不同的频道msg_uuid可能重复 - MsgUuid *uint64 `protobuf:"varint,1,opt,name=msg_uuid,json=msgUuid" json:"msg_uuid,omitempty"` - Sender *string `protobuf:"bytes,2,opt,name=sender" json:"sender,omitempty"` //发送者 - Receiver *string `protobuf:"bytes,3,opt,name=receiver" json:"receiver,omitempty"` //接收者 - ChatChannel *int32 `protobuf:"varint,4,opt,name=chat_channel,json=chatChannel" json:"chat_channel,omitempty"` //聊天频道 - MsgType *int32 `protobuf:"varint,5,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` //消息类型 0:文本消息(json) 1:自定义协议 (json) 2:纯文本(但是任会做屏蔽字替换) - MsgBody *string `protobuf:"bytes,6,opt,name=msg_body,json=msgBody" json:"msg_body,omitempty"` //消息内容(json类型里的字段!开头的会做屏蔽替换) - SendTime *int64 `protobuf:"varint,7,opt,name=send_time,json=sendTime" json:"send_time,omitempty"` //消息发送时间 + MsgUuid *uint64 `protobuf:"varint,1,opt,name=msg_uuid,json=msgUuid" json:"msg_uuid,omitempty"` + Sender *MFChatUser `protobuf:"bytes,2,opt,name=sender" json:"sender,omitempty"` //发送者 + Receiver *MFChatUser `protobuf:"bytes,3,opt,name=receiver" json:"receiver,omitempty"` //接收者 + ChatChannel *int32 `protobuf:"varint,4,opt,name=chat_channel,json=chatChannel" json:"chat_channel,omitempty"` //聊天频道 + MsgType *int32 `protobuf:"varint,5,opt,name=msg_type,json=msgType" json:"msg_type,omitempty"` //消息类型 0:文本消息(json) 1:自定义协议 (json) 2:纯文本(但是任会做屏蔽字替换) + MsgBody *string `protobuf:"bytes,6,opt,name=msg_body,json=msgBody" json:"msg_body,omitempty"` //消息内容(json类型里的字段!开头的会做屏蔽替换) + SendTime *int64 `protobuf:"varint,7,opt,name=send_time,json=sendTime" json:"send_time,omitempty"` //消息发送时间 } func (x *MFChatMsg) Reset() { @@ -2608,18 +2608,18 @@ func (x *MFChatMsg) GetMsgUuid() uint64 { return 0 } -func (x *MFChatMsg) GetSender() string { - if x != nil && x.Sender != nil { - return *x.Sender +func (x *MFChatMsg) GetSender() *MFChatUser { + if x != nil { + return x.Sender } - return "" + return nil } -func (x *MFChatMsg) GetReceiver() string { - if x != nil && x.Receiver != nil { - return *x.Receiver +func (x *MFChatMsg) GetReceiver() *MFChatUser { + if x != nil { + return x.Receiver } - return "" + return nil } func (x *MFChatMsg) GetChatChannel() int32 { @@ -2650,6 +2650,126 @@ func (x *MFChatMsg) GetSendTime() int64 { return 0 } +// 聊天用户 +type MFChatUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountId *string `protobuf:"bytes,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"` + Username *string `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"` + Avatar *int32 `protobuf:"varint,3,opt,name=avatar" json:"avatar,omitempty"` + AvatarHead *int32 `protobuf:"varint,4,opt,name=avatar_head,json=avatarHead" json:"avatar_head,omitempty"` + GuildId *int64 `protobuf:"varint,5,opt,name=guild_id,json=guildId" json:"guild_id,omitempty"` + GuildName *string `protobuf:"bytes,6,opt,name=guild_name,json=guildName" json:"guild_name,omitempty"` + GuildLevel *int32 `protobuf:"varint,7,opt,name=guild_level,json=guildLevel" json:"guild_level,omitempty"` + OnlineStatus *int32 `protobuf:"varint,8,opt,name=online_status,json=onlineStatus" json:"online_status,omitempty"` + LastLoginTime *int32 `protobuf:"varint,9,opt,name=last_login_time,json=lastLoginTime" json:"last_login_time,omitempty"` + IsSysUser *int32 `protobuf:"varint,10,opt,name=is_sys_user,json=isSysUser" json:"is_sys_user,omitempty"` //是否系统用户(主要在聊天时判断) +} + +func (x *MFChatUser) Reset() { + *x = MFChatUser{} + if protoimpl.UnsafeEnabled { + mi := &file_cs_proto_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MFChatUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MFChatUser) ProtoMessage() {} + +func (x *MFChatUser) ProtoReflect() protoreflect.Message { + mi := &file_cs_proto_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MFChatUser.ProtoReflect.Descriptor instead. +func (*MFChatUser) Descriptor() ([]byte, []int) { + return file_cs_proto_proto_rawDescGZIP(), []int{44} +} + +func (x *MFChatUser) GetAccountId() string { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return "" +} + +func (x *MFChatUser) GetUsername() string { + if x != nil && x.Username != nil { + return *x.Username + } + return "" +} + +func (x *MFChatUser) GetAvatar() int32 { + if x != nil && x.Avatar != nil { + return *x.Avatar + } + return 0 +} + +func (x *MFChatUser) GetAvatarHead() int32 { + if x != nil && x.AvatarHead != nil { + return *x.AvatarHead + } + return 0 +} + +func (x *MFChatUser) GetGuildId() int64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *MFChatUser) GetGuildName() string { + if x != nil && x.GuildName != nil { + return *x.GuildName + } + return "" +} + +func (x *MFChatUser) GetGuildLevel() int32 { + if x != nil && x.GuildLevel != nil { + return *x.GuildLevel + } + return 0 +} + +func (x *MFChatUser) GetOnlineStatus() int32 { + if x != nil && x.OnlineStatus != nil { + return *x.OnlineStatus + } + return 0 +} + +func (x *MFChatUser) GetLastLoginTime() int32 { + if x != nil && x.LastLoginTime != nil { + return *x.LastLoginTime + } + return 0 +} + +func (x *MFChatUser) GetIsSysUser() int32 { + if x != nil && x.IsSysUser != nil { + return *x.IsSysUser + } + return 0 +} + // --- 公会 --- // 请求我的公会信息 type CMGuildInfo struct { @@ -2661,7 +2781,7 @@ type CMGuildInfo struct { func (x *CMGuildInfo) Reset() { *x = CMGuildInfo{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[44] + mi := &file_cs_proto_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2674,7 +2794,7 @@ func (x *CMGuildInfo) String() string { func (*CMGuildInfo) ProtoMessage() {} func (x *CMGuildInfo) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[44] + mi := &file_cs_proto_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2687,7 +2807,7 @@ func (x *CMGuildInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CMGuildInfo.ProtoReflect.Descriptor instead. func (*CMGuildInfo) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{44} + return file_cs_proto_proto_rawDescGZIP(), []int{45} } // 回复我的公会信息 @@ -2704,7 +2824,7 @@ type SMGuildInfo struct { func (x *SMGuildInfo) Reset() { *x = SMGuildInfo{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[45] + mi := &file_cs_proto_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2717,7 +2837,7 @@ func (x *SMGuildInfo) String() string { func (*SMGuildInfo) ProtoMessage() {} func (x *SMGuildInfo) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[45] + mi := &file_cs_proto_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2730,7 +2850,7 @@ func (x *SMGuildInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SMGuildInfo.ProtoReflect.Descriptor instead. func (*SMGuildInfo) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{45} + return file_cs_proto_proto_rawDescGZIP(), []int{46} } func (x *SMGuildInfo) GetErrcode() int32 { @@ -2764,7 +2884,7 @@ type CMRecommendGuildList struct { func (x *CMRecommendGuildList) Reset() { *x = CMRecommendGuildList{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[46] + mi := &file_cs_proto_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2777,7 +2897,7 @@ func (x *CMRecommendGuildList) String() string { func (*CMRecommendGuildList) ProtoMessage() {} func (x *CMRecommendGuildList) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[46] + mi := &file_cs_proto_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2790,7 +2910,7 @@ func (x *CMRecommendGuildList) ProtoReflect() protoreflect.Message { // Deprecated: Use CMRecommendGuildList.ProtoReflect.Descriptor instead. func (*CMRecommendGuildList) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{46} + return file_cs_proto_proto_rawDescGZIP(), []int{47} } // 回复推荐公会列表 @@ -2807,7 +2927,7 @@ type SMRecommendGuildList struct { func (x *SMRecommendGuildList) Reset() { *x = SMRecommendGuildList{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[47] + mi := &file_cs_proto_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2820,7 +2940,7 @@ func (x *SMRecommendGuildList) String() string { func (*SMRecommendGuildList) ProtoMessage() {} func (x *SMRecommendGuildList) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[47] + mi := &file_cs_proto_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2833,7 +2953,7 @@ func (x *SMRecommendGuildList) ProtoReflect() protoreflect.Message { // Deprecated: Use SMRecommendGuildList.ProtoReflect.Descriptor instead. func (*SMRecommendGuildList) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{47} + return file_cs_proto_proto_rawDescGZIP(), []int{48} } func (x *SMRecommendGuildList) GetErrcode() int32 { @@ -2870,7 +2990,7 @@ type CMCreateGuild struct { func (x *CMCreateGuild) Reset() { *x = CMCreateGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[48] + mi := &file_cs_proto_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2883,7 +3003,7 @@ func (x *CMCreateGuild) String() string { func (*CMCreateGuild) ProtoMessage() {} func (x *CMCreateGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[48] + mi := &file_cs_proto_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2896,7 +3016,7 @@ func (x *CMCreateGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use CMCreateGuild.ProtoReflect.Descriptor instead. func (*CMCreateGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{48} + return file_cs_proto_proto_rawDescGZIP(), []int{49} } func (x *CMCreateGuild) GetAvatar() int32 { @@ -2927,7 +3047,7 @@ type SMCreateGuild struct { func (x *SMCreateGuild) Reset() { *x = SMCreateGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[49] + mi := &file_cs_proto_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2940,7 +3060,7 @@ func (x *SMCreateGuild) String() string { func (*SMCreateGuild) ProtoMessage() {} func (x *SMCreateGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[49] + mi := &file_cs_proto_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2953,7 +3073,7 @@ func (x *SMCreateGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use SMCreateGuild.ProtoReflect.Descriptor instead. func (*SMCreateGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{49} + return file_cs_proto_proto_rawDescGZIP(), []int{50} } func (x *SMCreateGuild) GetErrcode() int32 { @@ -2989,7 +3109,7 @@ type CMApplyToGuild struct { func (x *CMApplyToGuild) Reset() { *x = CMApplyToGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[50] + mi := &file_cs_proto_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3002,7 +3122,7 @@ func (x *CMApplyToGuild) String() string { func (*CMApplyToGuild) ProtoMessage() {} func (x *CMApplyToGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[50] + mi := &file_cs_proto_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3015,7 +3135,7 @@ func (x *CMApplyToGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use CMApplyToGuild.ProtoReflect.Descriptor instead. func (*CMApplyToGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{50} + return file_cs_proto_proto_rawDescGZIP(), []int{51} } func (x *CMApplyToGuild) GetGuildId() int64 { @@ -3038,7 +3158,7 @@ type SMApplyToGuild struct { func (x *SMApplyToGuild) Reset() { *x = SMApplyToGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[51] + mi := &file_cs_proto_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3051,7 +3171,7 @@ func (x *SMApplyToGuild) String() string { func (*SMApplyToGuild) ProtoMessage() {} func (x *SMApplyToGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[51] + mi := &file_cs_proto_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3064,7 +3184,7 @@ func (x *SMApplyToGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use SMApplyToGuild.ProtoReflect.Descriptor instead. func (*SMApplyToGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{51} + return file_cs_proto_proto_rawDescGZIP(), []int{52} } func (x *SMApplyToGuild) GetErrcode() int32 { @@ -3096,7 +3216,7 @@ type SMApplyToGuildNotify struct { func (x *SMApplyToGuildNotify) Reset() { *x = SMApplyToGuildNotify{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[52] + mi := &file_cs_proto_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3109,7 +3229,7 @@ func (x *SMApplyToGuildNotify) String() string { func (*SMApplyToGuildNotify) ProtoMessage() {} func (x *SMApplyToGuildNotify) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[52] + mi := &file_cs_proto_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3122,7 +3242,7 @@ func (x *SMApplyToGuildNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SMApplyToGuildNotify.ProtoReflect.Descriptor instead. func (*SMApplyToGuildNotify) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{52} + return file_cs_proto_proto_rawDescGZIP(), []int{53} } func (x *SMApplyToGuildNotify) GetGuildId() int64 { @@ -3163,7 +3283,7 @@ type CMApplyList struct { func (x *CMApplyList) Reset() { *x = CMApplyList{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[53] + mi := &file_cs_proto_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3176,7 +3296,7 @@ func (x *CMApplyList) String() string { func (*CMApplyList) ProtoMessage() {} func (x *CMApplyList) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[53] + mi := &file_cs_proto_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3189,7 +3309,7 @@ func (x *CMApplyList) ProtoReflect() protoreflect.Message { // Deprecated: Use CMApplyList.ProtoReflect.Descriptor instead. func (*CMApplyList) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{53} + return file_cs_proto_proto_rawDescGZIP(), []int{54} } // 回复申请者列表 @@ -3206,7 +3326,7 @@ type SMApplyList struct { func (x *SMApplyList) Reset() { *x = SMApplyList{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[54] + mi := &file_cs_proto_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3219,7 +3339,7 @@ func (x *SMApplyList) String() string { func (*SMApplyList) ProtoMessage() {} func (x *SMApplyList) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[54] + mi := &file_cs_proto_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3232,7 +3352,7 @@ func (x *SMApplyList) ProtoReflect() protoreflect.Message { // Deprecated: Use SMApplyList.ProtoReflect.Descriptor instead. func (*SMApplyList) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{54} + return file_cs_proto_proto_rawDescGZIP(), []int{55} } func (x *SMApplyList) GetErrcode() int32 { @@ -3268,7 +3388,7 @@ type CMApprove struct { func (x *CMApprove) Reset() { *x = CMApprove{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[55] + mi := &file_cs_proto_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3281,7 +3401,7 @@ func (x *CMApprove) String() string { func (*CMApprove) ProtoMessage() {} func (x *CMApprove) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[55] + mi := &file_cs_proto_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3294,7 +3414,7 @@ func (x *CMApprove) ProtoReflect() protoreflect.Message { // Deprecated: Use CMApprove.ProtoReflect.Descriptor instead. func (*CMApprove) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{55} + return file_cs_proto_proto_rawDescGZIP(), []int{56} } func (x *CMApprove) GetApplicantAccountId() string { @@ -3317,7 +3437,7 @@ type SMApprove struct { func (x *SMApprove) Reset() { *x = SMApprove{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[56] + mi := &file_cs_proto_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3330,7 +3450,7 @@ func (x *SMApprove) String() string { func (*SMApprove) ProtoMessage() {} func (x *SMApprove) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[56] + mi := &file_cs_proto_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3343,7 +3463,7 @@ func (x *SMApprove) ProtoReflect() protoreflect.Message { // Deprecated: Use SMApprove.ProtoReflect.Descriptor instead. func (*SMApprove) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{56} + return file_cs_proto_proto_rawDescGZIP(), []int{57} } func (x *SMApprove) GetErrcode() int32 { @@ -3375,7 +3495,7 @@ type SMApproveJoinGuildNotify struct { func (x *SMApproveJoinGuildNotify) Reset() { *x = SMApproveJoinGuildNotify{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[57] + mi := &file_cs_proto_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3388,7 +3508,7 @@ func (x *SMApproveJoinGuildNotify) String() string { func (*SMApproveJoinGuildNotify) ProtoMessage() {} func (x *SMApproveJoinGuildNotify) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[57] + mi := &file_cs_proto_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3401,7 +3521,7 @@ func (x *SMApproveJoinGuildNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SMApproveJoinGuildNotify.ProtoReflect.Descriptor instead. func (*SMApproveJoinGuildNotify) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{57} + return file_cs_proto_proto_rawDescGZIP(), []int{58} } func (x *SMApproveJoinGuildNotify) GetGuildId() int64 { @@ -3444,7 +3564,7 @@ type CMReject struct { func (x *CMReject) Reset() { *x = CMReject{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[58] + mi := &file_cs_proto_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3457,7 +3577,7 @@ func (x *CMReject) String() string { func (*CMReject) ProtoMessage() {} func (x *CMReject) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[58] + mi := &file_cs_proto_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3470,7 +3590,7 @@ func (x *CMReject) ProtoReflect() protoreflect.Message { // Deprecated: Use CMReject.ProtoReflect.Descriptor instead. func (*CMReject) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{58} + return file_cs_proto_proto_rawDescGZIP(), []int{59} } func (x *CMReject) GetApplicantAccountId() string { @@ -3493,7 +3613,7 @@ type SMReject struct { func (x *SMReject) Reset() { *x = SMReject{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[59] + mi := &file_cs_proto_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3506,7 +3626,7 @@ func (x *SMReject) String() string { func (*SMReject) ProtoMessage() {} func (x *SMReject) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[59] + mi := &file_cs_proto_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3519,7 +3639,7 @@ func (x *SMReject) ProtoReflect() protoreflect.Message { // Deprecated: Use SMReject.ProtoReflect.Descriptor instead. func (*SMReject) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{59} + return file_cs_proto_proto_rawDescGZIP(), []int{60} } func (x *SMReject) GetErrcode() int32 { @@ -3546,7 +3666,7 @@ type CMLeaveGuild struct { func (x *CMLeaveGuild) Reset() { *x = CMLeaveGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[60] + mi := &file_cs_proto_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3559,7 +3679,7 @@ func (x *CMLeaveGuild) String() string { func (*CMLeaveGuild) ProtoMessage() {} func (x *CMLeaveGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[60] + mi := &file_cs_proto_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3572,7 +3692,7 @@ func (x *CMLeaveGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use CMLeaveGuild.ProtoReflect.Descriptor instead. func (*CMLeaveGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{60} + return file_cs_proto_proto_rawDescGZIP(), []int{61} } // 回复离开公会 @@ -3588,7 +3708,7 @@ type SMLeaveGuild struct { func (x *SMLeaveGuild) Reset() { *x = SMLeaveGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[61] + mi := &file_cs_proto_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3601,7 +3721,7 @@ func (x *SMLeaveGuild) String() string { func (*SMLeaveGuild) ProtoMessage() {} func (x *SMLeaveGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[61] + mi := &file_cs_proto_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3614,7 +3734,7 @@ func (x *SMLeaveGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use SMLeaveGuild.ProtoReflect.Descriptor instead. func (*SMLeaveGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{61} + return file_cs_proto_proto_rawDescGZIP(), []int{62} } func (x *SMLeaveGuild) GetErrcode() int32 { @@ -3646,7 +3766,7 @@ type SMLeaveGuildNotify struct { func (x *SMLeaveGuildNotify) Reset() { *x = SMLeaveGuildNotify{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[62] + mi := &file_cs_proto_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3659,7 +3779,7 @@ func (x *SMLeaveGuildNotify) String() string { func (*SMLeaveGuildNotify) ProtoMessage() {} func (x *SMLeaveGuildNotify) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[62] + mi := &file_cs_proto_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3672,7 +3792,7 @@ func (x *SMLeaveGuildNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SMLeaveGuildNotify.ProtoReflect.Descriptor instead. func (*SMLeaveGuildNotify) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{62} + return file_cs_proto_proto_rawDescGZIP(), []int{63} } func (x *SMLeaveGuildNotify) GetGuildId() int64 { @@ -3715,7 +3835,7 @@ type CMDismissMember struct { func (x *CMDismissMember) Reset() { *x = CMDismissMember{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[63] + mi := &file_cs_proto_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3728,7 +3848,7 @@ func (x *CMDismissMember) String() string { func (*CMDismissMember) ProtoMessage() {} func (x *CMDismissMember) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[63] + mi := &file_cs_proto_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3741,7 +3861,7 @@ func (x *CMDismissMember) ProtoReflect() protoreflect.Message { // Deprecated: Use CMDismissMember.ProtoReflect.Descriptor instead. func (*CMDismissMember) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{63} + return file_cs_proto_proto_rawDescGZIP(), []int{64} } func (x *CMDismissMember) GetDismissAccountId() string { @@ -3764,7 +3884,7 @@ type SMDismissMember struct { func (x *SMDismissMember) Reset() { *x = SMDismissMember{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[64] + mi := &file_cs_proto_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3777,7 +3897,7 @@ func (x *SMDismissMember) String() string { func (*SMDismissMember) ProtoMessage() {} func (x *SMDismissMember) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[64] + mi := &file_cs_proto_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3790,7 +3910,7 @@ func (x *SMDismissMember) ProtoReflect() protoreflect.Message { // Deprecated: Use SMDismissMember.ProtoReflect.Descriptor instead. func (*SMDismissMember) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{64} + return file_cs_proto_proto_rawDescGZIP(), []int{65} } func (x *SMDismissMember) GetErrcode() int32 { @@ -3822,7 +3942,7 @@ type SMDismissMemberNotify struct { func (x *SMDismissMemberNotify) Reset() { *x = SMDismissMemberNotify{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[65] + mi := &file_cs_proto_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3835,7 +3955,7 @@ func (x *SMDismissMemberNotify) String() string { func (*SMDismissMemberNotify) ProtoMessage() {} func (x *SMDismissMemberNotify) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[65] + mi := &file_cs_proto_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3848,7 +3968,7 @@ func (x *SMDismissMemberNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SMDismissMemberNotify.ProtoReflect.Descriptor instead. func (*SMDismissMemberNotify) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{65} + return file_cs_proto_proto_rawDescGZIP(), []int{66} } func (x *SMDismissMemberNotify) GetGuildId() int64 { @@ -3892,7 +4012,7 @@ type CMSetMemberLevel struct { func (x *CMSetMemberLevel) Reset() { *x = CMSetMemberLevel{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[66] + mi := &file_cs_proto_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3905,7 +4025,7 @@ func (x *CMSetMemberLevel) String() string { func (*CMSetMemberLevel) ProtoMessage() {} func (x *CMSetMemberLevel) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[66] + mi := &file_cs_proto_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3918,7 +4038,7 @@ func (x *CMSetMemberLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use CMSetMemberLevel.ProtoReflect.Descriptor instead. func (*CMSetMemberLevel) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{66} + return file_cs_proto_proto_rawDescGZIP(), []int{67} } func (x *CMSetMemberLevel) GetMemberAccountId() string { @@ -3948,7 +4068,7 @@ type SMSetMemberLevel struct { func (x *SMSetMemberLevel) Reset() { *x = SMSetMemberLevel{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[67] + mi := &file_cs_proto_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3961,7 +4081,7 @@ func (x *SMSetMemberLevel) String() string { func (*SMSetMemberLevel) ProtoMessage() {} func (x *SMSetMemberLevel) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[67] + mi := &file_cs_proto_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3974,7 +4094,7 @@ func (x *SMSetMemberLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSetMemberLevel.ProtoReflect.Descriptor instead. func (*SMSetMemberLevel) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{67} + return file_cs_proto_proto_rawDescGZIP(), []int{68} } func (x *SMSetMemberLevel) GetErrcode() int32 { @@ -4007,7 +4127,7 @@ type SMSetMemberLevelNotify struct { func (x *SMSetMemberLevelNotify) Reset() { *x = SMSetMemberLevelNotify{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[68] + mi := &file_cs_proto_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4020,7 +4140,7 @@ func (x *SMSetMemberLevelNotify) String() string { func (*SMSetMemberLevelNotify) ProtoMessage() {} func (x *SMSetMemberLevelNotify) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[68] + mi := &file_cs_proto_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4033,7 +4153,7 @@ func (x *SMSetMemberLevelNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSetMemberLevelNotify.ProtoReflect.Descriptor instead. func (*SMSetMemberLevelNotify) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{68} + return file_cs_proto_proto_rawDescGZIP(), []int{69} } func (x *SMSetMemberLevelNotify) GetGuildId() int64 { @@ -4081,7 +4201,7 @@ type CMGuildMembersList struct { func (x *CMGuildMembersList) Reset() { *x = CMGuildMembersList{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[69] + mi := &file_cs_proto_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4094,7 +4214,7 @@ func (x *CMGuildMembersList) String() string { func (*CMGuildMembersList) ProtoMessage() {} func (x *CMGuildMembersList) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[69] + mi := &file_cs_proto_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4107,7 +4227,7 @@ func (x *CMGuildMembersList) ProtoReflect() protoreflect.Message { // Deprecated: Use CMGuildMembersList.ProtoReflect.Descriptor instead. func (*CMGuildMembersList) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{69} + return file_cs_proto_proto_rawDescGZIP(), []int{70} } // 回复公会成员列表 @@ -4124,7 +4244,7 @@ type SMGuildMembersList struct { func (x *SMGuildMembersList) Reset() { *x = SMGuildMembersList{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[70] + mi := &file_cs_proto_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4137,7 +4257,7 @@ func (x *SMGuildMembersList) String() string { func (*SMGuildMembersList) ProtoMessage() {} func (x *SMGuildMembersList) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[70] + mi := &file_cs_proto_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4150,7 +4270,7 @@ func (x *SMGuildMembersList) ProtoReflect() protoreflect.Message { // Deprecated: Use SMGuildMembersList.ProtoReflect.Descriptor instead. func (*SMGuildMembersList) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{70} + return file_cs_proto_proto_rawDescGZIP(), []int{71} } func (x *SMGuildMembersList) GetErrcode() int32 { @@ -4184,7 +4304,7 @@ type CMDisband struct { func (x *CMDisband) Reset() { *x = CMDisband{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[71] + mi := &file_cs_proto_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4197,7 +4317,7 @@ func (x *CMDisband) String() string { func (*CMDisband) ProtoMessage() {} func (x *CMDisband) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[71] + mi := &file_cs_proto_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4210,7 +4330,7 @@ func (x *CMDisband) ProtoReflect() protoreflect.Message { // Deprecated: Use CMDisband.ProtoReflect.Descriptor instead. func (*CMDisband) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{71} + return file_cs_proto_proto_rawDescGZIP(), []int{72} } // 回复解散公会 @@ -4226,7 +4346,7 @@ type SMDisband struct { func (x *SMDisband) Reset() { *x = SMDisband{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[72] + mi := &file_cs_proto_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4239,7 +4359,7 @@ func (x *SMDisband) String() string { func (*SMDisband) ProtoMessage() {} func (x *SMDisband) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[72] + mi := &file_cs_proto_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4252,7 +4372,7 @@ func (x *SMDisband) ProtoReflect() protoreflect.Message { // Deprecated: Use SMDisband.ProtoReflect.Descriptor instead. func (*SMDisband) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{72} + return file_cs_proto_proto_rawDescGZIP(), []int{73} } func (x *SMDisband) GetErrcode() int32 { @@ -4282,7 +4402,7 @@ type CMSearchGuilds struct { func (x *CMSearchGuilds) Reset() { *x = CMSearchGuilds{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[73] + mi := &file_cs_proto_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4295,7 +4415,7 @@ func (x *CMSearchGuilds) String() string { func (*CMSearchGuilds) ProtoMessage() {} func (x *CMSearchGuilds) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[73] + mi := &file_cs_proto_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4308,7 +4428,7 @@ func (x *CMSearchGuilds) ProtoReflect() protoreflect.Message { // Deprecated: Use CMSearchGuilds.ProtoReflect.Descriptor instead. func (*CMSearchGuilds) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{73} + return file_cs_proto_proto_rawDescGZIP(), []int{74} } func (x *CMSearchGuilds) GetSinceId() int64 { @@ -4340,7 +4460,7 @@ type SMSearchGuilds struct { func (x *SMSearchGuilds) Reset() { *x = SMSearchGuilds{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[74] + mi := &file_cs_proto_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4353,7 +4473,7 @@ func (x *SMSearchGuilds) String() string { func (*SMSearchGuilds) ProtoMessage() {} func (x *SMSearchGuilds) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[74] + mi := &file_cs_proto_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4366,7 +4486,7 @@ func (x *SMSearchGuilds) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSearchGuilds.ProtoReflect.Descriptor instead. func (*SMSearchGuilds) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{74} + return file_cs_proto_proto_rawDescGZIP(), []int{75} } func (x *SMSearchGuilds) GetErrcode() int32 { @@ -4407,7 +4527,7 @@ type CMGuildLogs struct { func (x *CMGuildLogs) Reset() { *x = CMGuildLogs{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[75] + mi := &file_cs_proto_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4420,7 +4540,7 @@ func (x *CMGuildLogs) String() string { func (*CMGuildLogs) ProtoMessage() {} func (x *CMGuildLogs) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[75] + mi := &file_cs_proto_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4433,7 +4553,7 @@ func (x *CMGuildLogs) ProtoReflect() protoreflect.Message { // Deprecated: Use CMGuildLogs.ProtoReflect.Descriptor instead. func (*CMGuildLogs) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{75} + return file_cs_proto_proto_rawDescGZIP(), []int{76} } // 回复公会日志 @@ -4450,7 +4570,7 @@ type SMGuildLogs struct { func (x *SMGuildLogs) Reset() { *x = SMGuildLogs{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[76] + mi := &file_cs_proto_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4463,7 +4583,7 @@ func (x *SMGuildLogs) String() string { func (*SMGuildLogs) ProtoMessage() {} func (x *SMGuildLogs) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[76] + mi := &file_cs_proto_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4476,7 +4596,7 @@ func (x *SMGuildLogs) ProtoReflect() protoreflect.Message { // Deprecated: Use SMGuildLogs.ProtoReflect.Descriptor instead. func (*SMGuildLogs) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{76} + return file_cs_proto_proto_rawDescGZIP(), []int{77} } func (x *SMGuildLogs) GetErrcode() int32 { @@ -4514,7 +4634,7 @@ type MFGuildLog struct { func (x *MFGuildLog) Reset() { *x = MFGuildLog{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[77] + mi := &file_cs_proto_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4527,7 +4647,7 @@ func (x *MFGuildLog) String() string { func (*MFGuildLog) ProtoMessage() {} func (x *MFGuildLog) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[77] + mi := &file_cs_proto_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4540,7 +4660,7 @@ func (x *MFGuildLog) ProtoReflect() protoreflect.Message { // Deprecated: Use MFGuildLog.ProtoReflect.Descriptor instead. func (*MFGuildLog) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{77} + return file_cs_proto_proto_rawDescGZIP(), []int{78} } func (x *MFGuildLog) GetGuildId() int64 { @@ -4585,7 +4705,7 @@ type CMSetName struct { func (x *CMSetName) Reset() { *x = CMSetName{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[78] + mi := &file_cs_proto_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4598,7 +4718,7 @@ func (x *CMSetName) String() string { func (*CMSetName) ProtoMessage() {} func (x *CMSetName) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[78] + mi := &file_cs_proto_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4611,7 +4731,7 @@ func (x *CMSetName) ProtoReflect() protoreflect.Message { // Deprecated: Use CMSetName.ProtoReflect.Descriptor instead. func (*CMSetName) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{78} + return file_cs_proto_proto_rawDescGZIP(), []int{79} } func (x *CMSetName) GetName() string { @@ -4648,7 +4768,7 @@ type SMSetName struct { func (x *SMSetName) Reset() { *x = SMSetName{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[79] + mi := &file_cs_proto_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4661,7 +4781,7 @@ func (x *SMSetName) String() string { func (*SMSetName) ProtoMessage() {} func (x *SMSetName) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[79] + mi := &file_cs_proto_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4674,7 +4794,7 @@ func (x *SMSetName) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSetName.ProtoReflect.Descriptor instead. func (*SMSetName) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{79} + return file_cs_proto_proto_rawDescGZIP(), []int{80} } func (x *SMSetName) GetErrcode() int32 { @@ -4703,7 +4823,7 @@ type CMSetAvatar struct { func (x *CMSetAvatar) Reset() { *x = CMSetAvatar{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[80] + mi := &file_cs_proto_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4716,7 +4836,7 @@ func (x *CMSetAvatar) String() string { func (*CMSetAvatar) ProtoMessage() {} func (x *CMSetAvatar) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[80] + mi := &file_cs_proto_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4729,7 +4849,7 @@ func (x *CMSetAvatar) ProtoReflect() protoreflect.Message { // Deprecated: Use CMSetAvatar.ProtoReflect.Descriptor instead. func (*CMSetAvatar) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{80} + return file_cs_proto_proto_rawDescGZIP(), []int{81} } func (x *CMSetAvatar) GetAvatar() int32 { @@ -4752,7 +4872,7 @@ type SMSetAvatar struct { func (x *SMSetAvatar) Reset() { *x = SMSetAvatar{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[81] + mi := &file_cs_proto_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4765,7 +4885,7 @@ func (x *SMSetAvatar) String() string { func (*SMSetAvatar) ProtoMessage() {} func (x *SMSetAvatar) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[81] + mi := &file_cs_proto_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4778,7 +4898,7 @@ func (x *SMSetAvatar) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSetAvatar.ProtoReflect.Descriptor instead. func (*SMSetAvatar) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{81} + return file_cs_proto_proto_rawDescGZIP(), []int{82} } func (x *SMSetAvatar) GetErrcode() int32 { @@ -4807,7 +4927,7 @@ type CMSetNotice struct { func (x *CMSetNotice) Reset() { *x = CMSetNotice{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[82] + mi := &file_cs_proto_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4820,7 +4940,7 @@ func (x *CMSetNotice) String() string { func (*CMSetNotice) ProtoMessage() {} func (x *CMSetNotice) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[82] + mi := &file_cs_proto_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4833,7 +4953,7 @@ func (x *CMSetNotice) ProtoReflect() protoreflect.Message { // Deprecated: Use CMSetNotice.ProtoReflect.Descriptor instead. func (*CMSetNotice) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{82} + return file_cs_proto_proto_rawDescGZIP(), []int{83} } func (x *CMSetNotice) GetContent() string { @@ -4856,7 +4976,7 @@ type SMSetNotice struct { func (x *SMSetNotice) Reset() { *x = SMSetNotice{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[83] + mi := &file_cs_proto_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4869,7 +4989,7 @@ func (x *SMSetNotice) String() string { func (*SMSetNotice) ProtoMessage() {} func (x *SMSetNotice) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[83] + mi := &file_cs_proto_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4882,7 +5002,7 @@ func (x *SMSetNotice) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSetNotice.ProtoReflect.Descriptor instead. func (*SMSetNotice) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{83} + return file_cs_proto_proto_rawDescGZIP(), []int{84} } func (x *SMSetNotice) GetErrcode() int32 { @@ -4912,7 +5032,7 @@ type CMSetJoinCond struct { func (x *CMSetJoinCond) Reset() { *x = CMSetJoinCond{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[84] + mi := &file_cs_proto_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4925,7 +5045,7 @@ func (x *CMSetJoinCond) String() string { func (*CMSetJoinCond) ProtoMessage() {} func (x *CMSetJoinCond) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[84] + mi := &file_cs_proto_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4938,7 +5058,7 @@ func (x *CMSetJoinCond) ProtoReflect() protoreflect.Message { // Deprecated: Use CMSetJoinCond.ProtoReflect.Descriptor instead. func (*CMSetJoinCond) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{84} + return file_cs_proto_proto_rawDescGZIP(), []int{85} } func (x *CMSetJoinCond) GetJoinCond() int32 { @@ -4968,7 +5088,7 @@ type SMSetJoinCond struct { func (x *SMSetJoinCond) Reset() { *x = SMSetJoinCond{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[85] + mi := &file_cs_proto_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4981,7 +5101,7 @@ func (x *SMSetJoinCond) String() string { func (*SMSetJoinCond) ProtoMessage() {} func (x *SMSetJoinCond) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[85] + mi := &file_cs_proto_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4994,7 +5114,7 @@ func (x *SMSetJoinCond) ProtoReflect() protoreflect.Message { // Deprecated: Use SMSetJoinCond.ProtoReflect.Descriptor instead. func (*SMSetJoinCond) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{85} + return file_cs_proto_proto_rawDescGZIP(), []int{86} } func (x *SMSetJoinCond) GetErrcode() int32 { @@ -5034,7 +5154,7 @@ type MFGuild struct { func (x *MFGuild) Reset() { *x = MFGuild{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[86] + mi := &file_cs_proto_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5047,7 +5167,7 @@ func (x *MFGuild) String() string { func (*MFGuild) ProtoMessage() {} func (x *MFGuild) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[86] + mi := &file_cs_proto_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5060,7 +5180,7 @@ func (x *MFGuild) ProtoReflect() protoreflect.Message { // Deprecated: Use MFGuild.ProtoReflect.Descriptor instead. func (*MFGuild) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{86} + return file_cs_proto_proto_rawDescGZIP(), []int{87} } func (x *MFGuild) GetAutoId() int64 { @@ -5173,7 +5293,7 @@ type MFGuildMember struct { func (x *MFGuildMember) Reset() { *x = MFGuildMember{} if protoimpl.UnsafeEnabled { - mi := &file_cs_proto_proto_msgTypes[87] + mi := &file_cs_proto_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5186,7 +5306,7 @@ func (x *MFGuildMember) String() string { func (*MFGuildMember) ProtoMessage() {} func (x *MFGuildMember) ProtoReflect() protoreflect.Message { - mi := &file_cs_proto_proto_msgTypes[87] + mi := &file_cs_proto_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5199,7 +5319,7 @@ func (x *MFGuildMember) ProtoReflect() protoreflect.Message { // Deprecated: Use MFGuildMember.ProtoReflect.Descriptor instead. func (*MFGuildMember) Descriptor() ([]byte, []int) { - return file_cs_proto_proto_rawDescGZIP(), []int{87} + return file_cs_proto_proto_rawDescGZIP(), []int{88} } func (x *MFGuildMember) GetAccountId() string { @@ -5507,12 +5627,14 @@ var file_cs_proto_proto_rawDesc = []byte{ 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x61, 0x73, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x50, 0x61, 0x69, 0x72, 0x36, 0x34, 0x52, 0x07, 0x6c, 0x61, - 0x73, 0x74, 0x49, 0x64, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x09, 0x4d, 0x46, 0x43, 0x68, 0x61, 0x74, + 0x73, 0x74, 0x49, 0x64, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x09, 0x4d, 0x46, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x55, 0x75, 0x69, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x55, 0x75, 0x69, 0x64, 0x12, 0x26, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x43, 0x68, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, + 0x43, 0x68, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, @@ -5520,250 +5642,271 @@ var file_cs_proto_proto_rawDesc = []byte{ 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x62, 0x0a, 0x0b, 0x53, 0x4d, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, - 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, 0x21, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, - 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x53, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, - 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x36, - 0x0a, 0x10, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x5f, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x0d, 0x43, 0x4d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x0d, 0x53, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x0a, 0x4d, 0x46, 0x43, + 0x68, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x73, 0x55, + 0x73, 0x65, 0x72, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x62, 0x0a, 0x0b, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x21, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, + 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x4d, 0x52, 0x65, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x80, + 0x01, 0x0a, 0x14, 0x53, 0x4d, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, + 0x65, 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, 0x36, 0x0a, 0x10, 0x72, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x73, 0x22, 0x3b, 0x0a, 0x0d, 0x43, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x64, + 0x0a, 0x0d, 0x53, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x21, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x22, 0x2b, 0x0a, 0x0e, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x22, 0x42, 0x0a, 0x0e, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x7f, 0x0a, 0x14, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6c, 0x0a, 0x0b, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x21, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x2b, 0x0a, 0x0e, 0x43, 0x4d, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x22, 0x3d, 0x0a, 0x09, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, + 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x09, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x4a, + 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, + 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x4d, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x53, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x53, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x7d, 0x0a, 0x12, 0x53, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x0e, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x7f, 0x0a, 0x14, 0x53, 0x4d, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x69, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3d, 0x0a, 0x0f, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, + 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69, + 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x53, 0x4d, 0x44, + 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x43, - 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6c, 0x0a, 0x0b, 0x53, 0x4d, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x10, 0x43, + 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x44, 0x0a, 0x10, 0x53, + 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x16, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x4d, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x73, 0x0a, + 0x12, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x22, + 0x3d, 0x0a, 0x09, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, + 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x3f, + 0x0a, 0x0e, 0x43, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, + 0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x82, 0x01, 0x0a, 0x0e, 0x53, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, + 0x6f, 0x67, 0x73, 0x22, 0x6d, 0x0a, 0x0b, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, + 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x2c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, + 0x67, 0x73, 0x22, 0x7b, 0x0a, 0x0a, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, + 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x6f, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, + 0x53, 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, + 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x74, 0x65, + 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x09, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x0b, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x3f, 0x0a, 0x0b, 0x53, 0x4d, + 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 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, 0x2b, 0x0a, 0x07, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, - 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x3d, 0x0a, 0x09, 0x43, 0x4d, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x09, 0x53, 0x4d, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x53, 0x4d, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x08, - 0x43, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, - 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x53, 0x4d, - 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x4d, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x53, 0x4d, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x7d, 0x0a, 0x12, 0x53, 0x4d, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3d, 0x0a, 0x0f, 0x43, 0x4d, 0x44, - 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, - 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x53, 0x4d, 0x44, 0x69, - 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, - 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, - 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x80, 0x01, - 0x0a, 0x15, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x5e, 0x0a, 0x10, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x22, 0x44, 0x0a, 0x10, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x16, 0x53, 0x4d, 0x53, 0x65, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, - 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x73, 0x0a, 0x12, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, - 0x64, 0x65, 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, 0x2b, 0x0a, 0x07, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x73, - 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x4d, 0x44, 0x69, 0x73, - 0x62, 0x61, 0x6e, 0x64, 0x22, 0x3d, 0x0a, 0x09, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, - 0x6d, 0x73, 0x67, 0x22, 0x3f, 0x0a, 0x0e, 0x43, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x53, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, - 0x65, 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, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6e, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x69, 0x6e, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x52, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x6d, 0x0a, 0x0b, 0x53, 0x4d, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, - 0x65, 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, 0x2c, 0x0a, 0x09, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, - 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x7b, 0x0a, 0x0a, 0x4d, 0x46, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x22, 0x53, 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x09, 0x53, 0x4d, 0x53, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x0b, 0x43, 0x4d, 0x53, 0x65, - 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, - 0x3f, 0x0a, 0x0b, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, - 0x22, 0x27, 0x0a, 0x0b, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3f, 0x0a, 0x0b, 0x53, 0x4d, 0x53, - 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x54, 0x0a, 0x0d, 0x43, 0x4d, - 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6a, - 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x6a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x69, 0x6e, - 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x41, 0x0a, 0x0d, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, - 0x6d, 0x73, 0x67, 0x22, 0x9c, 0x03, 0x0a, 0x07, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, - 0x74, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, - 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, - 0x43, 0x6f, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x68, 0x69, 0x63, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x65, 0x6e, 0x44, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x0d, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x76, 0x61, 0x74, 0x61, - 0x72, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, - 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, - 0x74, 0x61, 0x72, 0x2a, 0x22, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, - 0x65, 0x12, 0x14, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x10, 0xd1, 0xa2, 0xd5, 0xc4, 0x07, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x63, 0x73, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x27, 0x0a, 0x0b, 0x43, + 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3f, 0x0a, 0x0b, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x54, 0x0a, 0x0d, 0x43, 0x4d, 0x53, 0x65, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, + 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x43, + 0x6f, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x64, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, + 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x0d, 0x53, + 0x4d, 0x53, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, + 0x72, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x22, 0x9c, + 0x03, 0x0a, 0x07, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x75, 0x74, + 0x6f, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0f, + 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6b, + 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x65, + 0x6e, 0x5f, 0x64, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x65, 0x6e, 0x44, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x8e, 0x02, + 0x0a, 0x0d, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, + 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, + 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x2a, 0x22, + 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x65, 0x12, 0x14, 0x0a, 0x0c, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0xd1, 0xa2, 0xd5, + 0xc4, 0x07, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x63, 0x73, } var ( @@ -5779,7 +5922,7 @@ func file_cs_proto_proto_rawDescGZIP() []byte { } var file_cs_proto_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_cs_proto_proto_msgTypes = make([]protoimpl.MessageInfo, 88) +var file_cs_proto_proto_msgTypes = make([]protoimpl.MessageInfo, 89) var file_cs_proto_proto_goTypes = []interface{}{ (ConstantE)(0), // 0: cs.Constant_e (*CMPing)(nil), // 1: cs.CMPing @@ -5826,50 +5969,51 @@ var file_cs_proto_proto_goTypes = []interface{}{ (*SMUpdatePrivateChatRedPointNotify)(nil), // 42: cs.SMUpdatePrivateChatRedPointNotify (*SMUpdateChatChannelLastId)(nil), // 43: cs.SMUpdateChatChannelLastId (*MFChatMsg)(nil), // 44: cs.MFChatMsg - (*CMGuildInfo)(nil), // 45: cs.CMGuildInfo - (*SMGuildInfo)(nil), // 46: cs.SMGuildInfo - (*CMRecommendGuildList)(nil), // 47: cs.CMRecommendGuildList - (*SMRecommendGuildList)(nil), // 48: cs.SMRecommendGuildList - (*CMCreateGuild)(nil), // 49: cs.CMCreateGuild - (*SMCreateGuild)(nil), // 50: cs.SMCreateGuild - (*CMApplyToGuild)(nil), // 51: cs.CMApplyToGuild - (*SMApplyToGuild)(nil), // 52: cs.SMApplyToGuild - (*SMApplyToGuildNotify)(nil), // 53: cs.SMApplyToGuildNotify - (*CMApplyList)(nil), // 54: cs.CMApplyList - (*SMApplyList)(nil), // 55: cs.SMApplyList - (*CMApprove)(nil), // 56: cs.CMApprove - (*SMApprove)(nil), // 57: cs.SMApprove - (*SMApproveJoinGuildNotify)(nil), // 58: cs.SMApproveJoinGuildNotify - (*CMReject)(nil), // 59: cs.CMReject - (*SMReject)(nil), // 60: cs.SMReject - (*CMLeaveGuild)(nil), // 61: cs.CMLeaveGuild - (*SMLeaveGuild)(nil), // 62: cs.SMLeaveGuild - (*SMLeaveGuildNotify)(nil), // 63: cs.SMLeaveGuildNotify - (*CMDismissMember)(nil), // 64: cs.CMDismissMember - (*SMDismissMember)(nil), // 65: cs.SMDismissMember - (*SMDismissMemberNotify)(nil), // 66: cs.SMDismissMemberNotify - (*CMSetMemberLevel)(nil), // 67: cs.CMSetMemberLevel - (*SMSetMemberLevel)(nil), // 68: cs.SMSetMemberLevel - (*SMSetMemberLevelNotify)(nil), // 69: cs.SMSetMemberLevelNotify - (*CMGuildMembersList)(nil), // 70: cs.CMGuildMembersList - (*SMGuildMembersList)(nil), // 71: cs.SMGuildMembersList - (*CMDisband)(nil), // 72: cs.CMDisband - (*SMDisband)(nil), // 73: cs.SMDisband - (*CMSearchGuilds)(nil), // 74: cs.CMSearchGuilds - (*SMSearchGuilds)(nil), // 75: cs.SMSearchGuilds - (*CMGuildLogs)(nil), // 76: cs.CMGuildLogs - (*SMGuildLogs)(nil), // 77: cs.SMGuildLogs - (*MFGuildLog)(nil), // 78: cs.MFGuildLog - (*CMSetName)(nil), // 79: cs.CMSetName - (*SMSetName)(nil), // 80: cs.SMSetName - (*CMSetAvatar)(nil), // 81: cs.CMSetAvatar - (*SMSetAvatar)(nil), // 82: cs.SMSetAvatar - (*CMSetNotice)(nil), // 83: cs.CMSetNotice - (*SMSetNotice)(nil), // 84: cs.SMSetNotice - (*CMSetJoinCond)(nil), // 85: cs.CMSetJoinCond - (*SMSetJoinCond)(nil), // 86: cs.SMSetJoinCond - (*MFGuild)(nil), // 87: cs.MFGuild - (*MFGuildMember)(nil), // 88: cs.MFGuildMember + (*MFChatUser)(nil), // 45: cs.MFChatUser + (*CMGuildInfo)(nil), // 46: cs.CMGuildInfo + (*SMGuildInfo)(nil), // 47: cs.SMGuildInfo + (*CMRecommendGuildList)(nil), // 48: cs.CMRecommendGuildList + (*SMRecommendGuildList)(nil), // 49: cs.SMRecommendGuildList + (*CMCreateGuild)(nil), // 50: cs.CMCreateGuild + (*SMCreateGuild)(nil), // 51: cs.SMCreateGuild + (*CMApplyToGuild)(nil), // 52: cs.CMApplyToGuild + (*SMApplyToGuild)(nil), // 53: cs.SMApplyToGuild + (*SMApplyToGuildNotify)(nil), // 54: cs.SMApplyToGuildNotify + (*CMApplyList)(nil), // 55: cs.CMApplyList + (*SMApplyList)(nil), // 56: cs.SMApplyList + (*CMApprove)(nil), // 57: cs.CMApprove + (*SMApprove)(nil), // 58: cs.SMApprove + (*SMApproveJoinGuildNotify)(nil), // 59: cs.SMApproveJoinGuildNotify + (*CMReject)(nil), // 60: cs.CMReject + (*SMReject)(nil), // 61: cs.SMReject + (*CMLeaveGuild)(nil), // 62: cs.CMLeaveGuild + (*SMLeaveGuild)(nil), // 63: cs.SMLeaveGuild + (*SMLeaveGuildNotify)(nil), // 64: cs.SMLeaveGuildNotify + (*CMDismissMember)(nil), // 65: cs.CMDismissMember + (*SMDismissMember)(nil), // 66: cs.SMDismissMember + (*SMDismissMemberNotify)(nil), // 67: cs.SMDismissMemberNotify + (*CMSetMemberLevel)(nil), // 68: cs.CMSetMemberLevel + (*SMSetMemberLevel)(nil), // 69: cs.SMSetMemberLevel + (*SMSetMemberLevelNotify)(nil), // 70: cs.SMSetMemberLevelNotify + (*CMGuildMembersList)(nil), // 71: cs.CMGuildMembersList + (*SMGuildMembersList)(nil), // 72: cs.SMGuildMembersList + (*CMDisband)(nil), // 73: cs.CMDisband + (*SMDisband)(nil), // 74: cs.SMDisband + (*CMSearchGuilds)(nil), // 75: cs.CMSearchGuilds + (*SMSearchGuilds)(nil), // 76: cs.SMSearchGuilds + (*CMGuildLogs)(nil), // 77: cs.CMGuildLogs + (*SMGuildLogs)(nil), // 78: cs.SMGuildLogs + (*MFGuildLog)(nil), // 79: cs.MFGuildLog + (*CMSetName)(nil), // 80: cs.CMSetName + (*SMSetName)(nil), // 81: cs.SMSetName + (*CMSetAvatar)(nil), // 82: cs.CMSetAvatar + (*SMSetAvatar)(nil), // 83: cs.SMSetAvatar + (*CMSetNotice)(nil), // 84: cs.CMSetNotice + (*SMSetNotice)(nil), // 85: cs.SMSetNotice + (*CMSetJoinCond)(nil), // 86: cs.CMSetJoinCond + (*SMSetJoinCond)(nil), // 87: cs.SMSetJoinCond + (*MFGuild)(nil), // 88: cs.MFGuild + (*MFGuildMember)(nil), // 89: cs.MFGuildMember } var file_cs_proto_proto_depIdxs = []int32{ 34, // 0: cs.SMSearchUser.users:type_name -> cs.MFUser @@ -5880,19 +6024,21 @@ var file_cs_proto_proto_depIdxs = []int32{ 5, // 5: cs.CMReadMsgAndOpenChatNotify.last_ids:type_name -> cs.MFPair64 44, // 6: cs.SMChatMsgNotify.msg_list:type_name -> cs.MFChatMsg 5, // 7: cs.SMUpdateChatChannelLastId.last_ids:type_name -> cs.MFPair64 - 87, // 8: cs.SMGuildInfo.guild:type_name -> cs.MFGuild - 87, // 9: cs.SMRecommendGuildList.recommend_guilds:type_name -> cs.MFGuild - 87, // 10: cs.SMCreateGuild.guild:type_name -> cs.MFGuild - 88, // 11: cs.SMApplyList.members:type_name -> cs.MFGuildMember - 88, // 12: cs.SMGuildMembersList.members:type_name -> cs.MFGuildMember - 87, // 13: cs.SMSearchGuilds.guilds:type_name -> cs.MFGuild - 78, // 14: cs.SMGuildLogs.guildLogs:type_name -> cs.MFGuildLog - 88, // 15: cs.MFGuild.members:type_name -> cs.MFGuildMember - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 45, // 8: cs.MFChatMsg.sender:type_name -> cs.MFChatUser + 45, // 9: cs.MFChatMsg.receiver:type_name -> cs.MFChatUser + 88, // 10: cs.SMGuildInfo.guild:type_name -> cs.MFGuild + 88, // 11: cs.SMRecommendGuildList.recommend_guilds:type_name -> cs.MFGuild + 88, // 12: cs.SMCreateGuild.guild:type_name -> cs.MFGuild + 89, // 13: cs.SMApplyList.members:type_name -> cs.MFGuildMember + 89, // 14: cs.SMGuildMembersList.members:type_name -> cs.MFGuildMember + 88, // 15: cs.SMSearchGuilds.guilds:type_name -> cs.MFGuild + 79, // 16: cs.SMGuildLogs.guildLogs:type_name -> cs.MFGuildLog + 89, // 17: cs.MFGuild.members:type_name -> cs.MFGuildMember + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_cs_proto_proto_init() } @@ -6430,7 +6576,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMGuildInfo); i { + switch v := v.(*MFChatUser); i { case 0: return &v.state case 1: @@ -6442,7 +6588,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMGuildInfo); i { + switch v := v.(*CMGuildInfo); i { case 0: return &v.state case 1: @@ -6454,7 +6600,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMRecommendGuildList); i { + switch v := v.(*SMGuildInfo); i { case 0: return &v.state case 1: @@ -6466,7 +6612,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMRecommendGuildList); i { + switch v := v.(*CMRecommendGuildList); i { case 0: return &v.state case 1: @@ -6478,7 +6624,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMCreateGuild); i { + switch v := v.(*SMRecommendGuildList); i { case 0: return &v.state case 1: @@ -6490,7 +6636,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMCreateGuild); i { + switch v := v.(*CMCreateGuild); i { case 0: return &v.state case 1: @@ -6502,7 +6648,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMApplyToGuild); i { + switch v := v.(*SMCreateGuild); i { case 0: return &v.state case 1: @@ -6514,7 +6660,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMApplyToGuild); i { + switch v := v.(*CMApplyToGuild); i { case 0: return &v.state case 1: @@ -6526,7 +6672,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMApplyToGuildNotify); i { + switch v := v.(*SMApplyToGuild); i { case 0: return &v.state case 1: @@ -6538,7 +6684,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMApplyList); i { + switch v := v.(*SMApplyToGuildNotify); i { case 0: return &v.state case 1: @@ -6550,7 +6696,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMApplyList); i { + switch v := v.(*CMApplyList); i { case 0: return &v.state case 1: @@ -6562,7 +6708,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMApprove); i { + switch v := v.(*SMApplyList); i { case 0: return &v.state case 1: @@ -6574,7 +6720,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMApprove); i { + switch v := v.(*CMApprove); i { case 0: return &v.state case 1: @@ -6586,7 +6732,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMApproveJoinGuildNotify); i { + switch v := v.(*SMApprove); i { case 0: return &v.state case 1: @@ -6598,7 +6744,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMReject); i { + switch v := v.(*SMApproveJoinGuildNotify); i { case 0: return &v.state case 1: @@ -6610,7 +6756,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMReject); i { + switch v := v.(*CMReject); i { case 0: return &v.state case 1: @@ -6622,7 +6768,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMLeaveGuild); i { + switch v := v.(*SMReject); i { case 0: return &v.state case 1: @@ -6634,7 +6780,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMLeaveGuild); i { + switch v := v.(*CMLeaveGuild); i { case 0: return &v.state case 1: @@ -6646,7 +6792,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMLeaveGuildNotify); i { + switch v := v.(*SMLeaveGuild); i { case 0: return &v.state case 1: @@ -6658,7 +6804,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMDismissMember); i { + switch v := v.(*SMLeaveGuildNotify); i { case 0: return &v.state case 1: @@ -6670,7 +6816,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMDismissMember); i { + switch v := v.(*CMDismissMember); i { case 0: return &v.state case 1: @@ -6682,7 +6828,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMDismissMemberNotify); i { + switch v := v.(*SMDismissMember); i { case 0: return &v.state case 1: @@ -6694,7 +6840,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSetMemberLevel); i { + switch v := v.(*SMDismissMemberNotify); i { case 0: return &v.state case 1: @@ -6706,7 +6852,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSetMemberLevel); i { + switch v := v.(*CMSetMemberLevel); i { case 0: return &v.state case 1: @@ -6718,7 +6864,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSetMemberLevelNotify); i { + switch v := v.(*SMSetMemberLevel); i { case 0: return &v.state case 1: @@ -6730,7 +6876,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMGuildMembersList); i { + switch v := v.(*SMSetMemberLevelNotify); i { case 0: return &v.state case 1: @@ -6742,7 +6888,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMGuildMembersList); i { + switch v := v.(*CMGuildMembersList); i { case 0: return &v.state case 1: @@ -6754,7 +6900,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMDisband); i { + switch v := v.(*SMGuildMembersList); i { case 0: return &v.state case 1: @@ -6766,7 +6912,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMDisband); i { + switch v := v.(*CMDisband); i { case 0: return &v.state case 1: @@ -6778,7 +6924,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSearchGuilds); i { + switch v := v.(*SMDisband); i { case 0: return &v.state case 1: @@ -6790,7 +6936,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSearchGuilds); i { + switch v := v.(*CMSearchGuilds); i { case 0: return &v.state case 1: @@ -6802,7 +6948,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMGuildLogs); i { + switch v := v.(*SMSearchGuilds); i { case 0: return &v.state case 1: @@ -6814,7 +6960,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMGuildLogs); i { + switch v := v.(*CMGuildLogs); i { case 0: return &v.state case 1: @@ -6826,7 +6972,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MFGuildLog); i { + switch v := v.(*SMGuildLogs); i { case 0: return &v.state case 1: @@ -6838,7 +6984,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSetName); i { + switch v := v.(*MFGuildLog); i { case 0: return &v.state case 1: @@ -6850,7 +6996,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSetName); i { + switch v := v.(*CMSetName); i { case 0: return &v.state case 1: @@ -6862,7 +7008,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSetAvatar); i { + switch v := v.(*SMSetName); i { case 0: return &v.state case 1: @@ -6874,7 +7020,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSetAvatar); i { + switch v := v.(*CMSetAvatar); i { case 0: return &v.state case 1: @@ -6886,7 +7032,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSetNotice); i { + switch v := v.(*SMSetAvatar); i { case 0: return &v.state case 1: @@ -6898,7 +7044,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSetNotice); i { + switch v := v.(*CMSetNotice); i { case 0: return &v.state case 1: @@ -6910,7 +7056,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSetJoinCond); i { + switch v := v.(*SMSetNotice); i { case 0: return &v.state case 1: @@ -6922,7 +7068,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SMSetJoinCond); i { + switch v := v.(*CMSetJoinCond); i { case 0: return &v.state case 1: @@ -6934,7 +7080,7 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MFGuild); i { + switch v := v.(*SMSetJoinCond); i { case 0: return &v.state case 1: @@ -6946,6 +7092,18 @@ func file_cs_proto_proto_init() { } } file_cs_proto_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MFGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cs_proto_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MFGuildMember); i { case 0: return &v.state @@ -6964,7 +7122,7 @@ func file_cs_proto_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cs_proto_proto_rawDesc, NumEnums: 1, - NumMessages: 88, + NumMessages: 89, NumExtensions: 0, NumServices: 0, }, diff --git a/server/imserver/guild.go b/server/imserver/guild.go index 147bb869..9dbe3d93 100644 --- a/server/imserver/guild.go +++ b/server/imserver/guild.go @@ -56,14 +56,6 @@ func (g *Guild) GetMembersViceLeaderCount() int { return count } -// GetMember 根据 AccountId 获取成员信息 -func (g *Guild) GetMember(accountId string) *GuildMember { - if member, exists := g.Members[accountId]; exists { - return member - } - return nil -} - // IsMember 是否是公会成员 func (g *Guild) IsMember(accountId string) bool { _, exists := g.Members[accountId] @@ -86,6 +78,22 @@ func (g *Guild) RemoveMember(accountId string) { delete(g.Members, accountId) } +// GetMember 获取成员 +func (g *Guild) GetMember(accountId string) *GuildMember { + if member, exists := g.Members[accountId]; exists { + return member + } + return nil +} + +// GetMemberLevel 获取成员职位 +func (g *Guild) GetMemberLevel(accountId string) int32 { + if member, exists := g.Members[accountId]; exists { + return member.Level + } + return 0 +} + func (g *Guild) SetNotice(notice *string) { g.Notice = *notice } diff --git a/server/imserver/handlermgr.go b/server/imserver/handlermgr.go index 2d5fccb3..24c5aadf 100644 --- a/server/imserver/handlermgr.go +++ b/server/imserver/handlermgr.go @@ -45,6 +45,12 @@ func (this *HandlerMgr) init() { cs.RegHandlerId(int(cs.CMMessageIdE__CMSetAvatar), PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMSetJoinCond), PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMSetMemberLevel), PLAYER_HANDLER_ID) + + // 聊天 + cs.RegHandlerId(int(cs.CMMessageIdE__CMSendChatMsg), PLAYER_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMReadMsgAndOpenChatNotify), PLAYER_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMSetCurrPrivateChatTarget), PLAYER_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMCloseChatNotify), PLAYER_HANDLER_ID) } func (this *HandlerMgr) unInit() { diff --git a/server/imserver/mt/IMCluster.go b/server/imserver/mt/IMCluster.go index 9873bb82..7f6ec428 100644 --- a/server/imserver/mt/IMCluster.go +++ b/server/imserver/mt/IMCluster.go @@ -3,6 +3,7 @@ package mt import ( "f5" "mtb" + "q5" ) type IMCluster struct { @@ -11,13 +12,18 @@ type IMCluster struct { type IMClusterTable struct { f5.IdMetaTable[IMCluster] - selfConf *IMCluster + selfConf *IMCluster + serverInfo string } func (this *IMCluster) Init1() { } +func (this *IMClusterTable) GetIp() string { + return q5.GetLocalIP() +} + func (this *IMClusterTable) GetListenPort() int32 { return this.selfConf.GetListenPort() } @@ -31,4 +37,9 @@ func (this *IMClusterTable) PostInit1() { if this.selfConf == nil { panic("imserver集群无法读取本服配置") } + this.serverInfo = this.GetIp() + ":" + q5.ToString(this.GetListenPort()) +} + +func (this *IMClusterTable) GetServerInfo() string { + return this.serverInfo } diff --git a/server/imserver/player.go b/server/imserver/player.go index bf593b5d..cb31a06b 100644 --- a/server/imserver/player.go +++ b/server/imserver/player.go @@ -246,11 +246,11 @@ func (p *Player) CMRemoveBlacklist(hdr *f5.MsgHdr, msg *cs.CMRemoveBlacklist) { // CMSendChatMsg 发送聊天消息 func (p *Player) CMSendChatMsg(hdr *f5.MsgHdr, msg *cs.CMSendChatMsg) { - chatChannel := *msg.ChatChannel - if !IsValidChatChannel(chatChannel) { + // p.chatChannel := *msg.ChatChannel + if !IsValidChatChannel(msg.GetChatChannel()) { return } - switch chatChannel { + switch msg.GetChatChannel() { case kCCWorld: chatMgr.ProcWorldChat(p, msg) case kCCPrivate: @@ -270,11 +270,11 @@ func (p *Player) SyncPrivateChatRedPoint() { // CMReadMsgAndOpenChatNotify 读取聊天消息列表并且开启聊天通知 func (p *Player) CMReadMsgAndOpenChatNotify(hdr *f5.MsgHdr, msg *cs.CMReadMsgAndOpenChatNotify) { - chatChannel := *msg.CurrChannel - if !IsValidChatChannel(chatChannel) { + if !IsValidChatChannel(msg.GetCurrChannel()) { return } - if chatChannel == kCCPrivate { + p.chatChannel = int(msg.GetCurrChannel()) + if p.chatChannel == kCCPrivate { p.SyncPrivateChatRedPoint() } } @@ -779,6 +779,39 @@ func (p *Player) FillMFUser(profile *PlayerProfile) *cs.MFUser { return resUser } +// FillMFChatUser 填充聊天信息 +func (p *Player) FillMFChatUser() *cs.MFChatUser { + accountId := p.accountId + profile := cacheMgr.GetPlayerProfile(accountId) + if profile == nil { + return nil + } + + var guildId int64 = 0 + var guildName = "" + var guildLevel int32 = 0 + guild := guildMgr.GetGuildByAccountId(profile.AccountId) + if guild != nil { + guildId = guild.GuildId + guildName = guild.Name + guildLevel = guild.GetMemberLevel(accountId) + } + onlineStatus := playerMgr.GetOnlineStatus(profile.AccountId) + + res := &cs.MFChatUser{ + AccountId: &profile.AccountId, + Username: &profile.Username, + Avatar: &profile.Avatar, + AvatarHead: &profile.AvatarHead, + GuildId: &guildId, + GuildName: &guildName, + GuildLevel: &guildLevel, + OnlineStatus: &onlineStatus, + LastLoginTime: &profile.LastLoginTime, + } + return res +} + func (p *Player) IncrPrivateChatLastId() uint64 { p.privateChatLastId++ return p.privateChatLastId diff --git a/server/imserver/playermgr.go b/server/imserver/playermgr.go index af9cb12b..4791cab1 100644 --- a/server/imserver/playermgr.go +++ b/server/imserver/playermgr.go @@ -137,9 +137,11 @@ func (this *PlayerMgr) CMLoginResult(hdr *f5.MsgHdr, msg *cs.CMLogin, rsp f5.Htt cacheMgr.AddCacheProfile(1, playerProfile) friendMgr.LoadUser(accountId) - serverInfo := "192.168.100.39:2000" + serverInfo := proto.String(mt.Table.IMCluster.GetServerInfo()) + f5.GetSysLog().Info("ServerInfo:%s", serverInfo) + rspMsg := &cs.SMLogin{} - rspMsg.ServerInfo = &serverInfo + rspMsg.ServerInfo = serverInfo rspMsg.AccountId = &resObj.Info.AccountID wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg) } @@ -148,7 +150,7 @@ func (this *PlayerMgr) reportServerState(masterIp string, masterPort int32) { params := map[string]string{ "node_id": q5.ToString(f5.GetApp().GetNodeId()), "instance_id": q5.ToString(f5.GetApp().GetInstanceId()), - "ip": "192.168.100.164", + "ip": mt.Table.IMCluster.GetIp(), "port": q5.ToString(mt.Table.IMCluster.GetListenPort()), "online_num": q5.ToString(0), "room_num": q5.ToString(0), @@ -211,7 +213,7 @@ func (this *PlayerMgr) CMReconnect(hdr *f5.MsgHdr, msg *cs.CMReconnect) { } if hum.GetSessionId() != msg.GetSessionId() { rspMsg.Errcode = proto.Int32(ERR_CODE_RECONNECT_PLAYER_SESSION_ID_NO_VALID) - rspMsg.Errmsg = proto.String("session id no valid") + rspMsg.Errmsg = proto.String("session_id no valid") wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg) return } diff --git a/server/imserver/proto/cs_proto.proto b/server/imserver/proto/cs_proto.proto index 47a09028..ffe28e13 100644 --- a/server/imserver/proto/cs_proto.proto +++ b/server/imserver/proto/cs_proto.proto @@ -351,14 +351,27 @@ message MFChatMsg !!!不同的频道msg_uuid可能重复 */ optional uint64 msg_uuid = 1; - optional string sender = 2; //发送者 - optional string receiver = 3; //接收者 + optional MFChatUser sender = 2; //发送者 + optional MFChatUser receiver = 3; //接收者 optional int32 chat_channel = 4; //聊天频道 optional int32 msg_type = 5; //消息类型 0:文本消息(json) 1:自定义协议 (json) 2:纯文本(但是任会做屏蔽字替换) optional string msg_body = 6; //消息内容(json类型里的字段!开头的会做屏蔽替换) optional int64 send_time = 7; //消息发送时间 } +// 聊天用户 +message MFChatUser{ + optional string account_id = 1; + optional string username = 2; + optional int32 avatar = 3; + optional int32 avatar_head = 4; + optional int64 guild_id = 5; + optional string guild_name = 6; + optional int32 guild_level = 7; + optional int32 online_status = 8; + optional int32 last_login_time = 9; +} + // --- 公会 --- // 请求我的公会信息 message CMGuildInfo @@ -675,4 +688,4 @@ message MFGuildMember { optional int32 last_login_time = 9; optional int32 level = 10; optional int32 star = 11; -} \ No newline at end of file +}