From bc5774c934e871c73e1e74f1ff74e2deb3cf57f7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 7 Jul 2022 16:30:12 +0800 Subject: [PATCH 01/24] password test --- docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index cd3fb1294..b252c24bd 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -32,8 +32,8 @@ services: - wiredTigerCacheSizeGB=1 # - MONGO_USERNAME=openIM # - MONGO_PASSWORD=openIM -# - MONGO_INITDB_ROOT_USERNAME=root -# - MONGO_INITDB_ROOT_PASSWORD=root + - MONGO_INITDB_ROOT_USERNAME=root + - MONGO_INITDB_ROOT_PASSWORD=root # - MONGO_INITDB_DATABASE=openIM restart: always From f89c1edadf5c7cbb73390b827371e36fe44934da Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 8 Jul 2022 15:17:46 +0800 Subject: [PATCH 02/24] add redis username --- config/config.yaml | 7 ++++--- pkg/common/config/config.go | 1 + pkg/common/db/model.go | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 1c39886e0..063d0bd2a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -34,12 +34,13 @@ mongo: dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 redis: - dbAddress: [ 127.0.0.1:16379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 + dbAddress: [ r-2ze64lhldowxosta2dpd.redis.rds.aliyuncs.com:6379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbPassWord: openIM #redis密码 建议修改 - enableCluster: false #如果外部redis以集群方式启动,需要打开此开关 + dbUserName: im + dbPassWord: efH8BKAeUiWQL #redis密码 建议修改 + enableCluster: true #如果外部redis以集群方式启动,需要打开此开关 kafka: ws2mschat: diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 3ed175fe1..508720a2b 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -102,6 +102,7 @@ type config struct { DBMaxIdle int `yaml:"dbMaxIdle"` DBMaxActive int `yaml:"dbMaxActive"` DBIdleTimeout int `yaml:"dbIdleTimeout"` + DBUserName string `yaml:"dbUserName"` DBPassWord string `yaml:"dbPassWord"` EnableCluster bool `yaml:"enableCluster"` } diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 61912b670..16793c3dd 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -124,6 +124,8 @@ func init() { if config.Config.Redis.EnableCluster { DB.rdb = go_redis.NewClusterClient(&go_redis.ClusterOptions{ Addrs: config.Config.Redis.DBAddress, + Username: config.Config.Redis.DBUserName, + Password: config.Config.Redis.DBPassWord, // no password set PoolSize: 50, }) _, err = DB.rdb.Ping(ctx).Result() @@ -133,6 +135,7 @@ func init() { } else { DB.rdb = go_redis.NewClient(&go_redis.Options{ Addr: config.Config.Redis.DBAddress[0], + Username: config.Config.Redis.DBUserName, Password: config.Config.Redis.DBPassWord, // no password set DB: 0, // use default DB PoolSize: 100, // 连接池大小 From b47877235f9f2f53ffe0dd9f554664dd6e79c494 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 8 Jul 2022 16:17:32 +0800 Subject: [PATCH 03/24] add redis username --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 063d0bd2a..14e53076e 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -38,7 +38,7 @@ redis: dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbUserName: im + dbUserName: dbPassWord: efH8BKAeUiWQL #redis密码 建议修改 enableCluster: true #如果外部redis以集群方式启动,需要打开此开关 From 5a423f88dd3cf068a9d0f3dd3e2f0d59dcd35468 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 8 Jul 2022 16:18:31 +0800 Subject: [PATCH 04/24] add redis username --- pkg/common/db/model.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 16793c3dd..15a3f7933 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -123,8 +123,8 @@ func init() { defer cancel() if config.Config.Redis.EnableCluster { DB.rdb = go_redis.NewClusterClient(&go_redis.ClusterOptions{ - Addrs: config.Config.Redis.DBAddress, - Username: config.Config.Redis.DBUserName, + Addrs: config.Config.Redis.DBAddress, + //Username: config.Config.Redis.DBUserName, Password: config.Config.Redis.DBPassWord, // no password set PoolSize: 50, }) From d3b302ce665d77b10fceefda2307bf32c4f00b1f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 8 Jul 2022 16:22:52 +0800 Subject: [PATCH 05/24] add redis username --- config/config.yaml | 2 +- pkg/common/db/model.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 14e53076e..063d0bd2a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -38,7 +38,7 @@ redis: dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbUserName: + dbUserName: im dbPassWord: efH8BKAeUiWQL #redis密码 建议修改 enableCluster: true #如果外部redis以集群方式启动,需要打开此开关 diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 15a3f7933..16793c3dd 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -123,8 +123,8 @@ func init() { defer cancel() if config.Config.Redis.EnableCluster { DB.rdb = go_redis.NewClusterClient(&go_redis.ClusterOptions{ - Addrs: config.Config.Redis.DBAddress, - //Username: config.Config.Redis.DBUserName, + Addrs: config.Config.Redis.DBAddress, + Username: config.Config.Redis.DBUserName, Password: config.Config.Redis.DBPassWord, // no password set PoolSize: 50, }) From b70a4070f29aa865aae00ff464d16ef6afddde3b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 8 Jul 2022 16:34:23 +0800 Subject: [PATCH 06/24] add redis username --- docker-compose.yaml | 4 ++-- pkg/common/db/model.go | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index b252c24bd..cd3fb1294 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -32,8 +32,8 @@ services: - wiredTigerCacheSizeGB=1 # - MONGO_USERNAME=openIM # - MONGO_PASSWORD=openIM - - MONGO_INITDB_ROOT_USERNAME=root - - MONGO_INITDB_ROOT_PASSWORD=root +# - MONGO_INITDB_ROOT_USERNAME=root +# - MONGO_INITDB_ROOT_PASSWORD=root # - MONGO_INITDB_DATABASE=openIM restart: always diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 16793c3dd..eb329b888 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -3,6 +3,7 @@ package db import ( "Open_IM/pkg/common/config" "go.mongodb.org/mongo-driver/x/bsonx" + "open_im_sdk/pkg/log" "strings" //"Open_IM/pkg/common/log" @@ -119,6 +120,7 @@ func init() { // ) // }, //} + fmt.Println("tes", config.Config.Redis.DBUserName, config.Config.Redis.DBPassWord) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() if config.Config.Redis.EnableCluster { From 9cfbd8107eb9f83785add07a25f111145422d652 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 8 Jul 2022 16:34:38 +0800 Subject: [PATCH 07/24] add redis username --- pkg/common/db/model.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index eb329b888..c66201aba 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -3,7 +3,6 @@ package db import ( "Open_IM/pkg/common/config" "go.mongodb.org/mongo-driver/x/bsonx" - "open_im_sdk/pkg/log" "strings" //"Open_IM/pkg/common/log" From 7ccb1b6a6f3382374ce55748c9345a4372bda706 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 11 Jul 2022 10:45:12 +0800 Subject: [PATCH 08/24] shell udpate --- script/check_all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/check_all.sh b/script/check_all.sh index ccd62684b..14bca6c81 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -27,7 +27,7 @@ service_port_name=( switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do if [ ${switch} != "true" ]; then - if [ ${i} == "openImDemoPort"]; then + if [ ${i} == "openImDemoPort" ]; then continue fi fi From ca72d4840ac13b83d6947521b3e26cfd6a828db4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 11 Jul 2022 10:50:08 +0800 Subject: [PATCH 09/24] config update --- cmd/Open-IM-SDK-Core | 2 +- config/config.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 588c9bb77..836ff1911 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 588c9bb77b9bd89a9261964006568b8655233cb6 +Subproject commit 836ff19117d9f54748278e1aeb50de0723413b5d diff --git a/config/config.yaml b/config/config.yaml index 063d0bd2a..374aee373 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -34,7 +34,7 @@ mongo: dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 redis: - dbAddress: [ r-2ze64lhldowxosta2dpd.redis.rds.aliyuncs.com:6379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 + dbAddress: [ 127.0.0.1:6379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 From fff7f30005364ee7d3d29bf2417a8c2b302e6e2c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 11 Jul 2022 11:00:32 +0800 Subject: [PATCH 10/24] config update --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 374aee373..96d072633 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -38,8 +38,8 @@ redis: dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbUserName: im - dbPassWord: efH8BKAeUiWQL #redis密码 建议修改 + dbUserName: #only redis version 6.0+ need username + dbPassWord: openIM #redis密码 建议修改 enableCluster: true #如果外部redis以集群方式启动,需要打开此开关 kafka: From c3906171512fcc67efc557bd77086f02519a7e3f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 11 Jul 2022 11:01:41 +0800 Subject: [PATCH 11/24] config update --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 96d072633..5dc454587 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -34,7 +34,7 @@ mongo: dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 redis: - dbAddress: [ 127.0.0.1:6379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 + dbAddress: [ 127.0.0.1:16379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 From 4d982ab8163ddc916efc299afaff3fc6e3bcc8eb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 11 Jul 2022 11:02:56 +0800 Subject: [PATCH 12/24] config update --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 5dc454587..1a619132c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -40,7 +40,7 @@ redis: dbIdleTimeout: 120 dbUserName: #only redis version 6.0+ need username dbPassWord: openIM #redis密码 建议修改 - enableCluster: true #如果外部redis以集群方式启动,需要打开此开关 + enableCluster: false #如果外部redis以集群方式启动,需要打开此开关 kafka: ws2mschat: From ec5177342e4b59e8d5d5b18454bc4765d576a9b1 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 11 Jul 2022 21:33:56 +0800 Subject: [PATCH 13/24] Set friend remark to empty --- cmd/Open-IM-SDK-Core | 2 +- pkg/base_info/friend_api_struct.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 836ff1911..3cf486771 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 836ff19117d9f54748278e1aeb50de0723413b5d +Subproject commit 3cf486771bbe7ecb33f7e7c3cdf733f28b16d8b7 diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index e15bed380..21b1912e7 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -72,7 +72,7 @@ type GetBlackListResp struct { type SetFriendRemarkReq struct { ParamsCommFriend - Remark string `json:"remark" binding:"required"` + Remark string `json:"remark"` } type SetFriendRemarkResp struct { CommResp From 504e4cc6a3c5604c578af3e1038bf77e16d6d934 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 12 Jul 2022 16:16:04 +0800 Subject: [PATCH 14/24] add super delete --- cmd/open_im_api/main.go | 1 + internal/api/chat/del_msg.go | 78 +++++++++++++++++++++++++++++++++ pkg/base_info/msg.go | 16 +++++++ pkg/common/constant/constant.go | 1 + 4 files changed, 96 insertions(+) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 37ceefff2..8411df63a 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -139,6 +139,7 @@ func main() { chatGroup.POST("/send_msg", apiChat.SendMsg) chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList) chatGroup.POST("/del_msg", apiChat.DelMsg) + chatGroup.POST("/del_super_group_msg", apiChat.DelSuperGroupMsg) chatGroup.POST("/clear_msg", apiChat.ClearMsg) chatGroup.POST("/manage_send_msg", manage.ManagementSendMsg) chatGroup.POST("/batch_send_msg", manage.ManagementBatchSendMsg) diff --git a/internal/api/chat/del_msg.go b/internal/api/chat/del_msg.go index c6a6da385..a5131897f 100644 --- a/internal/api/chat/del_msg.go +++ b/internal/api/chat/del_msg.go @@ -12,6 +12,7 @@ import ( "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" + "github.com/golang/protobuf/proto" "net/http" "strings" ) @@ -72,6 +73,83 @@ func DelMsg(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) c.JSON(http.StatusOK, resp) } +func DelSuperGroupMsg(c *gin.Context) { + var ( + req api.DelSuperGroupMsgReq + resp api.DelSuperGroupMsgResp + ) + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + + ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + errMsg := req.OperationID + " " + opUserID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + options := make(map[string]bool, 5) + utils.SetSwitchFromOptions(options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(options, constant.IsSenderConversationUpdate, false) + utils.SetSwitchFromOptions(options, constant.IsUnreadCount, false) + utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) + pbData := rpc.SendMsgReq{ + OperationID: req.OperationID, + MsgData: &pbCommon.MsgData{ + SendID: req.UserID, + RecvID: req.UserID, + ClientMsgID: utils.GetMsgID(req.UserID), + SessionType: constant.SingleChatType, + MsgFrom: constant.SysMsgType, + ContentType: constant.MsgDeleteNotification, + // ForceList: params.ForceList, + CreateTime: utils.GetCurrentTimestampByMill(), + Options: options, + }, + } + var tips pbCommon.TipsComm + deleteMsg := api.MsgDeleteNotificationElem{ + GroupID: req.GroupID, + IsAllDelete: req.IsAllDelete, + SeqList: req.SeqList, + } + tips.JsonDetail = utils.StructToJsonString(deleteMsg) + var err error + pbData.MsgData.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.OperationID, "Marshal failed ", err.Error(), tips.String()) + resp.ErrCode = 400 + resp.ErrMsg = err.Error() + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) + c.JSON(http.StatusOK, resp) + } + log.Info(req.OperationID, "", "api DelSuperGroupMsg call start..., [data: %s]", pbData.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := rpc.NewChatClient(etcdConn) + + log.Info(req.OperationID, "", "api DelSuperGroupMsg call, api call rpc...") + + RpcResp, err := client.SendMsg(context.Background(), &pbData) + if err != nil { + log.NewError(req.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) + return + } + log.Info(req.OperationID, "", "api DelSuperGroupMsg call end..., [data: %s] [reply: %s]", pbData.String(), RpcResp.String()) + resp.ErrCode = RpcResp.ErrCode + resp.ErrMsg = RpcResp.ErrMsg + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) + c.JSON(http.StatusOK, resp) +} // @Summary 清空用户消息 // @Description 清空用户消息 diff --git a/pkg/base_info/msg.go b/pkg/base_info/msg.go index 153313f65..f6b134ef3 100644 --- a/pkg/base_info/msg.go +++ b/pkg/base_info/msg.go @@ -18,3 +18,19 @@ type CleanUpMsgReq struct { type CleanUpMsgResp struct { CommResp } +type DelSuperGroupMsgReq struct { + UserID string `json:"userID,omitempty" binding:"required"` + GroupID string `json:"groupID,omitempty" binding:"required"` + SeqList []uint32 `json:"seqList,omitempty"` + IsAllDelete bool `json:"isAllDelete"` + OperationID string `json:"operationID,omitempty" binding:"required"` +} + +type DelSuperGroupMsgResp struct { + CommResp +} +type MsgDeleteNotificationElem struct { + GroupID string `json:"groupID"` + IsAllDelete bool `json:"isAllDelete"` + SeqList []uint32 `json:"seqList"` +} diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index ff857ef5c..39fccb88e 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -58,6 +58,7 @@ const ( FriendRemarkSetNotification = 1206 //set_friend_remark? BlackAddedNotification = 1207 //add_black BlackDeletedNotification = 1208 //remove_black + MsgDeleteNotification = 1209 ConversationOptChangeNotification = 1300 // change conversation opt From 58847c7fb6cc592fc766f2d975d27c2745f28f35 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 12 Jul 2022 16:22:13 +0800 Subject: [PATCH 15/24] Update group member nickname when personal nickname is updated --- internal/rpc/user/user.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index c774a9c6e..3d56a527a 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -378,6 +378,13 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } + oldNickname := "" + if req.UserInfo.Nickname != "" { + u, err := imdb.GetUserByUserID(req.UserInfo.UserID) + if err == nil { + oldNickname = u.Nickname + } + } var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { @@ -416,6 +423,9 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI if req.UserInfo.FaceURL != "" { go s.SyncJoinedGroupMemberFaceURL(req.UserInfo.UserID, req.UserInfo.FaceURL, req.OperationID, req.OpUserID) } + if req.UserInfo.Nickname != "" { + go s.SyncJoinedGroupMemberNickname(req.UserInfo.UserID, req.UserInfo.Nickname, oldNickname, req.OperationID, req.OpUserID) + } //updateUserInfoToCacheReq := &cache.UpdateUserInfoToCacheReq{ // OperationID: req.OperationID, // UserInfoList: []*sdkws.UserInfo{req.UserInfo}, @@ -455,6 +465,7 @@ func (s *userServer) SetGlobalRecvMessageOpt(ctx context.Context, req *pbUser.Se chat.UserInfoUpdatedNotification(req.OperationID, req.UserID, req.UserID) return &pbUser.SetGlobalRecvMessageOptResp{CommonResp: &pbUser.CommonResp{}}, nil } + func (s *userServer) SyncJoinedGroupMemberFaceURL(userID string, faceURL string, operationID string, opUserID string) { joinedGroupIDList, err := imdb.GetJoinedGroupIDListByUserID(userID) if err != nil { @@ -468,6 +479,26 @@ func (s *userServer) SyncJoinedGroupMemberFaceURL(userID string, faceURL string, } } +func (s *userServer) SyncJoinedGroupMemberNickname(userID string, newNickname, oldNickname string, operationID string, opUserID string) { + joinedGroupIDList, err := imdb.GetJoinedGroupIDListByUserID(userID) + if err != nil { + log.NewWarn(operationID, "GetJoinedGroupIDListByUserID failed ", userID, err.Error()) + return + } + for _, v := range joinedGroupIDList { + member, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(v, userID) + if err != nil { + log.NewWarn(operationID, "GetGroupMemberInfoByGroupIDAndUserID failed ", err.Error(), v, userID) + continue + } + if member.Nickname == oldNickname { + groupMemberInfo := db.GroupMember{UserID: userID, GroupID: v, Nickname: newNickname} + imdb.UpdateGroupMemberInfo(groupMemberInfo) + chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID) + } + } +} + func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByNameReq) (*pbUser.GetUsersByNameResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) resp := &pbUser.GetUsersByNameResp{} From adb7da7aafd0fbe5bd8c4ec849c4f58b28a76597 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 12 Jul 2022 17:22:45 +0800 Subject: [PATCH 16/24] group add field --- internal/api/group/group.go | 21 +- internal/rpc/group/group.go | 19 +- pkg/base_info/group_api_struct.go | 18 +- pkg/common/db/model_struct.go | 24 +- pkg/proto/sdk_ws/ws.pb.go | 617 ++++++++++++++++-------------- pkg/proto/sdk_ws/ws.proto | 4 + 6 files changed, 386 insertions(+), 317 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index e7696fb92..5105a117d 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -779,12 +779,7 @@ func SetGroupInfo(c *gin.Context) { req := &rpc.SetGroupInfoReq{GroupInfoForSet: &open_im_sdk.GroupInfoForSet{}} utils.CopyStructFields(req.GroupInfoForSet, ¶ms) req.OperationID = params.OperationID - - if params.NeedVerification != nil { - req.GroupInfoForSet.NeedVerification = &wrappers.Int32Value{Value: *params.NeedVerification} - log.NewInfo(req.OperationID, "NeedVerification ", req.GroupInfoForSet.NeedVerification) - } - + argsHandle(¶ms, req) var ok bool var errInfo string ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) @@ -815,6 +810,20 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "SetGroupInfo api return ", resp) } +func argsHandle(params *api.SetGroupInfoReq, req *rpc.SetGroupInfoReq) { + if params.NeedVerification != nil { + req.GroupInfoForSet.NeedVerification = &wrappers.Int32Value{Value: *params.NeedVerification} + log.NewInfo(req.OperationID, "NeedVerification ", req.GroupInfoForSet.NeedVerification) + } + if params.LookMemberInfo != nil { + req.GroupInfoForSet.LookMemberInfo = &wrappers.Int32Value{Value: *params.LookMemberInfo} + log.NewInfo(req.OperationID, "LookMemberInfo ", req.GroupInfoForSet.LookMemberInfo) + } + if params.ApplyMemberFriend != nil { + req.GroupInfoForSet.ApplyMemberFriend = &wrappers.Int32Value{Value: *params.ApplyMemberFriend} + log.NewInfo(req.OperationID, "ApplyMemberFriend ", req.GroupInfoForSet.ApplyMemberFriend) + } +} // @Summary 转让群主 // @Description 转让群主 diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index ea46bb005..3135c5ffb 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1092,7 +1092,24 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) } } - + if req.GroupInfoForSet.LookMemberInfo != nil { + changedType = changedType | (1 << 5) + m := make(map[string]interface{}) + m["look_member_info"] = req.GroupInfoForSet.LookMemberInfo.Value + if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { + log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + } + } + if req.GroupInfoForSet.ApplyMemberFriend != nil { + changedType = changedType | (1 << 6) + m := make(map[string]interface{}) + m["apply_member_friend"] = req.GroupInfoForSet.ApplyMemberFriend.Value + if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { + log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + } + } // //if req.RoleLevel != nil { // diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index dac6328ee..30faffe39 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -178,14 +178,16 @@ type QuitGroupResp struct { } type SetGroupInfoReq struct { - GroupID string `json:"groupID" binding:"required"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceURL string `json:"faceURL"` - Ex string `json:"ex"` - OperationID string `json:"operationID" binding:"required"` - NeedVerification *int32 `json:"needVerification" binding "oneof=0 1 2"` + GroupID string `json:"groupID" binding:"required"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + Ex string `json:"ex"` + OperationID string `json:"operationID" binding:"required"` + NeedVerification *int32 `json:"needVerification" binding:"oneof=0 1 2"` + LookMemberInfo *int32 `json:"lookMemberInfo" binding:"oneof=0 1"` + ApplyMemberFriend *int32 `json:"applyMemberFriend" binding:"oneof=0 1"` } type SetGroupInfoResp struct { diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index b256a2161..11b4cd188 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -77,17 +77,19 @@ func (FriendRequest) TableName() string { type Group struct { //`json:"operationID" binding:"required"` //`protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` `json:"operationID" binding:"required"` - GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` - GroupName string `gorm:"column:name;size:255" json:"groupName"` - Notification string `gorm:"column:notification;size:255" json:"notification"` - Introduction string `gorm:"column:introduction;size:255" json:"introduction"` - FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` - CreateTime time.Time `gorm:"column:create_time"` - Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` - Status int32 `gorm:"column:status"` - CreatorUserID string `gorm:"column:creator_user_id;size:64"` - GroupType int32 `gorm:"column:group_type"` - NeedVerification int32 `gorm:"column:need_verification"` + GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` + GroupName string `gorm:"column:name;size:255" json:"groupName"` + Notification string `gorm:"column:notification;size:255" json:"notification"` + Introduction string `gorm:"column:introduction;size:255" json:"introduction"` + FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` + CreateTime time.Time `gorm:"column:create_time"` + Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` + Status int32 `gorm:"column:status"` + CreatorUserID string `gorm:"column:creator_user_id;size:64"` + GroupType int32 `gorm:"column:group_type"` + NeedVerification int32 `gorm:"column:need_verification"` + LookMemberInfo int32 `gorm:"column:look_member_info" json:"lookMemberInfo"` + ApplyMemberFriend int32 `gorm:"column:apply_member_friend" json:"applyMemberFriend"` } //message GroupMemberFullInfo { diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 2ae3dc2a5..87526506e 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -33,6 +33,8 @@ type GroupInfo struct { CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -42,7 +44,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{0} + return fileDescriptor_ws_bd277b37af84394c, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -153,6 +155,20 @@ func (m *GroupInfo) GetNeedVerification() int32 { return 0 } +func (m *GroupInfo) GetLookMemberInfo() int32 { + if m != nil { + return m.LookMemberInfo + } + return 0 +} + +func (m *GroupInfo) GetApplyMemberFriend() int32 { + if m != nil { + return m.ApplyMemberFriend + } + return 0 +} + type GroupInfoForSet struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` @@ -161,6 +177,8 @@ type GroupInfoForSet struct { FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -170,7 +188,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{1} + return fileDescriptor_ws_bd277b37af84394c, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -239,6 +257,20 @@ func (m *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value { return nil } +func (m *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value { + if m != nil { + return m.LookMemberInfo + } + return nil +} + +func (m *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value { + if m != nil { + return m.ApplyMemberFriend + } + return nil +} + type GroupMemberFullInfo struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` @@ -260,7 +292,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{2} + return fileDescriptor_ws_bd277b37af84394c, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -372,7 +404,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{3} + return fileDescriptor_ws_bd277b37af84394c, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -448,7 +480,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{4} + return fileDescriptor_ws_bd277b37af84394c, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -562,7 +594,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{5} + return fileDescriptor_ws_bd277b37af84394c, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -647,7 +679,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{6} + return fileDescriptor_ws_bd277b37af84394c, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -728,7 +760,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{7} + return fileDescriptor_ws_bd277b37af84394c, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -836,7 +868,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{8} + return fileDescriptor_ws_bd277b37af84394c, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -981,7 +1013,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{9} + return fileDescriptor_ws_bd277b37af84394c, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1092,7 +1124,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{10} + return fileDescriptor_ws_bd277b37af84394c, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1206,7 +1238,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{11} + return fileDescriptor_ws_bd277b37af84394c, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1287,7 +1319,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{12} + return fileDescriptor_ws_bd277b37af84394c, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1333,7 +1365,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{13} + return fileDescriptor_ws_bd277b37af84394c, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1382,7 +1414,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{14} + return fileDescriptor_ws_bd277b37af84394c, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1441,7 +1473,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{15} + return fileDescriptor_ws_bd277b37af84394c, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1479,7 +1511,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{16} + return fileDescriptor_ws_bd277b37af84394c, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1520,7 +1552,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{17} + return fileDescriptor_ws_bd277b37af84394c, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1581,7 +1613,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{18} + return fileDescriptor_ws_bd277b37af84394c, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1634,7 +1666,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{19} + return fileDescriptor_ws_bd277b37af84394c, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1683,7 +1715,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{20} + return fileDescriptor_ws_bd277b37af84394c, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1751,7 +1783,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{21} + return fileDescriptor_ws_bd277b37af84394c, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1822,7 +1854,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{22} + return fileDescriptor_ws_bd277b37af84394c, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1997,7 +2029,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{23} + return fileDescriptor_ws_bd277b37af84394c, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2065,7 +2097,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{24} + return fileDescriptor_ws_bd277b37af84394c, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2122,7 +2154,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{25} + return fileDescriptor_ws_bd277b37af84394c, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2191,7 +2223,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{26} + return fileDescriptor_ws_bd277b37af84394c, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2246,7 +2278,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{27} + return fileDescriptor_ws_bd277b37af84394c, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2302,7 +2334,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{28} + return fileDescriptor_ws_bd277b37af84394c, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2357,7 +2389,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{29} + return fileDescriptor_ws_bd277b37af84394c, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2412,7 +2444,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{30} + return fileDescriptor_ws_bd277b37af84394c, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2468,7 +2500,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{31} + return fileDescriptor_ws_bd277b37af84394c, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2531,7 +2563,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{32} + return fileDescriptor_ws_bd277b37af84394c, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2594,7 +2626,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{33} + return fileDescriptor_ws_bd277b37af84394c, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2656,7 +2688,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{34} + return fileDescriptor_ws_bd277b37af84394c, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2710,7 +2742,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{35} + return fileDescriptor_ws_bd277b37af84394c, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2766,7 +2798,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{36} + return fileDescriptor_ws_bd277b37af84394c, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2835,7 +2867,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{37} + return fileDescriptor_ws_bd277b37af84394c, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2896,7 +2928,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{38} + return fileDescriptor_ws_bd277b37af84394c, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2950,7 +2982,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{39} + return fileDescriptor_ws_bd277b37af84394c, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3005,7 +3037,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{40} + return fileDescriptor_ws_bd277b37af84394c, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3065,7 +3097,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{41} + return fileDescriptor_ws_bd277b37af84394c, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3112,7 +3144,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{42} + return fileDescriptor_ws_bd277b37af84394c, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3165,7 +3197,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{43} + return fileDescriptor_ws_bd277b37af84394c, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3211,7 +3243,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{44} + return fileDescriptor_ws_bd277b37af84394c, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3251,7 +3283,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{45} + return fileDescriptor_ws_bd277b37af84394c, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3298,7 +3330,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{46} + return fileDescriptor_ws_bd277b37af84394c, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3346,7 +3378,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{47} + return fileDescriptor_ws_bd277b37af84394c, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3399,7 +3431,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{48} + return fileDescriptor_ws_bd277b37af84394c, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3437,7 +3469,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{49} + return fileDescriptor_ws_bd277b37af84394c, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3475,7 +3507,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{50} + return fileDescriptor_ws_bd277b37af84394c, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3513,7 +3545,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{51} + return fileDescriptor_ws_bd277b37af84394c, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3552,7 +3584,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{52} + return fileDescriptor_ws_bd277b37af84394c, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3591,7 +3623,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{53} + return fileDescriptor_ws_bd277b37af84394c, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3631,7 +3663,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{54} + return fileDescriptor_ws_bd277b37af84394c, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3686,7 +3718,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{55} + return fileDescriptor_ws_bd277b37af84394c, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3740,7 +3772,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{56} + return fileDescriptor_ws_bd277b37af84394c, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3786,7 +3818,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{57} + return fileDescriptor_ws_bd277b37af84394c, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3839,7 +3871,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{58} + return fileDescriptor_ws_bd277b37af84394c, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4106,7 +4138,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{59} + return fileDescriptor_ws_bd277b37af84394c, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4375,7 +4407,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{60} + return fileDescriptor_ws_bd277b37af84394c, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4478,7 +4510,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{61} + return fileDescriptor_ws_bd277b37af84394c, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4533,7 +4565,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{62} + return fileDescriptor_ws_bd277b37af84394c, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4594,7 +4626,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{63} + return fileDescriptor_ws_bd277b37af84394c, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4649,7 +4681,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{64} + return fileDescriptor_ws_bd277b37af84394c, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4710,7 +4742,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{65} + return fileDescriptor_ws_bd277b37af84394c, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4765,7 +4797,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{66} + return fileDescriptor_ws_bd277b37af84394c, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4823,7 +4855,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{67} + return fileDescriptor_ws_bd277b37af84394c, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4858,7 +4890,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{68} + return fileDescriptor_ws_bd277b37af84394c, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4926,7 +4958,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{69} + return fileDescriptor_ws_bd277b37af84394c, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -4980,7 +5012,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{70} + return fileDescriptor_ws_bd277b37af84394c, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5031,7 +5063,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{71} + return fileDescriptor_ws_bd277b37af84394c, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5066,7 +5098,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{72} + return fileDescriptor_ws_bd277b37af84394c, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5131,7 +5163,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{73} + return fileDescriptor_ws_bd277b37af84394c, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5165,7 +5197,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{74} + return fileDescriptor_ws_bd277b37af84394c, []int{74} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5225,7 +5257,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{75} + return fileDescriptor_ws_bd277b37af84394c, []int{75} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5342,220 +5374,223 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a65b1a9a9ba03d6e) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_bd277b37af84394c) } -var fileDescriptor_ws_a65b1a9a9ba03d6e = []byte{ - // 3387 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0x24, 0x47, - 0xf5, 0xff, 0x76, 0x8f, 0x67, 0xec, 0x79, 0xe3, 0xb1, 0xc7, 0xbd, 0x1b, 0x67, 0xbe, 0x66, 0xb3, - 0x98, 0xce, 0x2a, 0x09, 0x0b, 0x78, 0xa3, 0x0d, 0x91, 0x20, 0x3f, 0x16, 0xf9, 0x47, 0xbc, 0xbb, - 0xc9, 0x8e, 0xed, 0xf4, 0xec, 0x26, 0x88, 0x20, 0x2d, 0xed, 0xe9, 0xf2, 0xb8, 0xe3, 0x9e, 0xae, - 0x76, 0xff, 0xf0, 0xee, 0x72, 0x41, 0x0a, 0x08, 0x71, 0xe3, 0xc4, 0x85, 0x0b, 0x82, 0x0b, 0x02, - 0x45, 0x11, 0x42, 0x20, 0x71, 0x40, 0x08, 0x21, 0x6e, 0x5c, 0x40, 0xe2, 0x82, 0xb8, 0x71, 0xe6, - 0x1f, 0x40, 0x42, 0x02, 0xd5, 0xab, 0xea, 0xee, 0xaa, 0xee, 0x1e, 0x7b, 0xd6, 0xb2, 0xb2, 0x1b, - 0x2d, 0xb7, 0x79, 0xaf, 0xeb, 0xbd, 0x7a, 0xf5, 0xde, 0xa7, 0xea, 0xbd, 0xfa, 0x31, 0x30, 0x1f, - 0x39, 0x07, 0x77, 0xef, 0x45, 0x57, 0xee, 0x45, 0x2b, 0x41, 0x48, 0x63, 0x6a, 0x2c, 0x44, 0x24, - 0x3c, 0x22, 0xe1, 0x5d, 0x3b, 0x70, 0xef, 0x06, 0x76, 0x68, 0x8f, 0xa2, 0xa5, 0xe7, 0xb7, 0x03, - 0xe2, 0xdf, 0xbd, 0xd9, 0xbb, 0x12, 0x1c, 0x0c, 0xaf, 0x60, 0xab, 0x2b, 0xa9, 0x54, 0x68, 0x07, - 0x01, 0x09, 0x85, 0xac, 0xf9, 0xe3, 0x1a, 0x34, 0xaf, 0x87, 0x34, 0x09, 0x6e, 0xfa, 0x7b, 0xd4, - 0xe8, 0xc2, 0xf4, 0x10, 0x89, 0x8d, 0xae, 0xb6, 0xac, 0xbd, 0xd0, 0xb4, 0x52, 0xd2, 0xb8, 0x00, - 0x4d, 0xfc, 0xb9, 0x65, 0x8f, 0x48, 0x57, 0xc7, 0x6f, 0x39, 0xc3, 0x30, 0x61, 0xd6, 0xa7, 0xb1, - 0xbb, 0xe7, 0x0e, 0xec, 0xd8, 0xa5, 0x7e, 0xb7, 0x86, 0x0d, 0x14, 0x1e, 0x6b, 0xe3, 0xfa, 0x71, - 0x48, 0x9d, 0x64, 0x80, 0x6d, 0xa6, 0x78, 0x1b, 0x99, 0xc7, 0xfa, 0xdf, 0xb3, 0x07, 0xe4, 0x8e, - 0x75, 0xab, 0x5b, 0xe7, 0xfd, 0x0b, 0xd2, 0x58, 0x86, 0x16, 0xbd, 0xe7, 0x93, 0xf0, 0x4e, 0x44, - 0xc2, 0x9b, 0x1b, 0xdd, 0x06, 0x7e, 0x95, 0x59, 0xc6, 0x45, 0x80, 0x41, 0x48, 0xec, 0x98, 0xdc, - 0x76, 0x47, 0xa4, 0x3b, 0xbd, 0xac, 0xbd, 0xd0, 0xb6, 0x24, 0x0e, 0xd3, 0x30, 0x22, 0xa3, 0x5d, - 0x12, 0xae, 0xd3, 0xc4, 0x8f, 0xbb, 0x33, 0xd8, 0x40, 0x66, 0x19, 0x73, 0xa0, 0x93, 0xfb, 0xdd, - 0x26, 0xaa, 0xd6, 0xc9, 0x7d, 0x63, 0x11, 0x1a, 0x51, 0x6c, 0xc7, 0x49, 0xd4, 0x85, 0x65, 0xed, - 0x85, 0xba, 0x25, 0x28, 0xe3, 0x12, 0xb4, 0x51, 0x2f, 0x4d, 0xad, 0x69, 0xa1, 0x88, 0xca, 0xcc, - 0x3c, 0x76, 0xfb, 0x41, 0x40, 0xba, 0xb3, 0xa8, 0x20, 0x67, 0x18, 0x97, 0xa1, 0xe3, 0x13, 0xe2, - 0xbc, 0x43, 0xc2, 0xdc, 0x6b, 0x6d, 0x6c, 0x54, 0xe2, 0x9b, 0xdf, 0xd1, 0x61, 0x3e, 0x8b, 0xd1, - 0x26, 0x0d, 0xfb, 0x24, 0x7e, 0x8c, 0x23, 0xc5, 0xbd, 0xd8, 0xc8, 0xbc, 0x78, 0xbd, 0x62, 0xa4, - 0x2c, 0x3a, 0xad, 0xab, 0x9f, 0x5a, 0x19, 0x52, 0x3a, 0xf4, 0x08, 0x87, 0xe2, 0x6e, 0xb2, 0xb7, - 0x72, 0xd3, 0x8f, 0x5f, 0xba, 0xfa, 0x8e, 0xed, 0x25, 0xa4, 0xc2, 0x0d, 0x7f, 0xd3, 0xe1, 0x1c, - 0xba, 0xa1, 0x87, 0x31, 0xdb, 0x4c, 0x3c, 0xef, 0x04, 0xd0, 0x2e, 0x42, 0x23, 0xe1, 0x11, 0xe2, - 0x7e, 0x10, 0x14, 0x73, 0x51, 0x48, 0x3d, 0x72, 0x8b, 0x1c, 0x11, 0x0f, 0x3d, 0x50, 0xb7, 0x72, - 0x86, 0xb1, 0x04, 0x33, 0xef, 0x53, 0xd7, 0x47, 0x18, 0x4d, 0xe1, 0xc7, 0x8c, 0x66, 0xdf, 0x7c, - 0x77, 0x70, 0xe0, 0x33, 0xdf, 0xf2, 0x71, 0x67, 0xb4, 0xec, 0x92, 0x86, 0xea, 0x92, 0xe7, 0x60, - 0xce, 0x0e, 0x82, 0x9e, 0xed, 0x0f, 0x49, 0xc8, 0x3b, 0x9d, 0x46, 0xbd, 0x05, 0x2e, 0x83, 0x30, - 0xeb, 0xa9, 0x4f, 0x93, 0x70, 0x40, 0x10, 0xa1, 0x75, 0x4b, 0xe2, 0x30, 0x3d, 0x34, 0x20, 0xa1, - 0x84, 0x3c, 0x0e, 0xd6, 0x02, 0x57, 0x84, 0x00, 0xb2, 0x10, 0x30, 0xe8, 0x27, 0x31, 0x79, 0xc3, - 0x77, 0x70, 0x50, 0x2d, 0x01, 0xfd, 0x9c, 0x65, 0x7e, 0x57, 0x83, 0xb9, 0x9d, 0x64, 0xd7, 0x73, - 0x07, 0xa8, 0x82, 0xb9, 0x35, 0x77, 0x9e, 0xa6, 0x38, 0x4f, 0x76, 0x81, 0x3e, 0xde, 0x05, 0x35, - 0xd5, 0x05, 0x8b, 0xd0, 0x18, 0x12, 0xdf, 0x21, 0xa1, 0x70, 0xa9, 0xa0, 0x84, 0xa9, 0xf5, 0xd4, - 0x54, 0xf3, 0x0f, 0x3a, 0xcc, 0x7c, 0xcc, 0x26, 0x2c, 0x43, 0x2b, 0xd8, 0xa7, 0x3e, 0xd9, 0x4a, - 0x18, 0xac, 0x84, 0x2d, 0x32, 0xcb, 0x38, 0x0f, 0xf5, 0x5d, 0x37, 0x8c, 0xf7, 0x31, 0xae, 0x6d, - 0x8b, 0x13, 0x8c, 0x4b, 0x46, 0xb6, 0xcb, 0x83, 0xd9, 0xb4, 0x38, 0x21, 0x06, 0x34, 0x93, 0xf9, - 0x5e, 0x5d, 0x96, 0x9a, 0xa5, 0x65, 0xa9, 0x8c, 0x0d, 0xa8, 0xc4, 0xc6, 0x65, 0xe8, 0x0c, 0x3d, - 0xba, 0x6b, 0x7b, 0x16, 0x19, 0x1c, 0xf5, 0xa2, 0xe1, 0x76, 0x10, 0x63, 0x20, 0xeb, 0x56, 0x89, - 0x6f, 0xfe, 0x4b, 0x03, 0xd8, 0x0c, 0x5d, 0xe2, 0x3b, 0xe8, 0xc6, 0xc2, 0xda, 0xa9, 0x95, 0xd7, - 0xce, 0x45, 0x68, 0x84, 0x64, 0x64, 0x87, 0x07, 0xe9, 0x44, 0xe1, 0x54, 0xc1, 0xf8, 0x5a, 0xc9, - 0xf8, 0x57, 0x01, 0xf6, 0xb0, 0x1f, 0xa6, 0x07, 0xdd, 0xca, 0x66, 0x75, 0x29, 0x1d, 0xad, 0xa4, - 0x11, 0xb5, 0xa4, 0xe6, 0x6c, 0x16, 0xda, 0x8e, 0x23, 0xc0, 0x5e, 0xe7, 0xb3, 0x30, 0x63, 0x54, - 0x60, 0xbd, 0x71, 0x0c, 0xd6, 0xa7, 0x33, 0x00, 0xfd, 0x53, 0x83, 0xe6, 0x9a, 0x67, 0x0f, 0x0e, - 0x26, 0x1c, 0xba, 0x3a, 0x44, 0xbd, 0x34, 0xc4, 0xeb, 0xd0, 0xde, 0x65, 0xea, 0xd2, 0x21, 0xa0, - 0x17, 0x5a, 0x57, 0x3f, 0x53, 0x31, 0x4a, 0x75, 0x02, 0x59, 0xaa, 0x9c, 0x3a, 0xdc, 0xa9, 0x93, - 0x87, 0x5b, 0x3f, 0x66, 0xb8, 0xd9, 0xea, 0x6a, 0xfe, 0x45, 0x87, 0x59, 0x5c, 0x14, 0x2d, 0x72, - 0x98, 0x90, 0x28, 0x36, 0x5e, 0x87, 0x99, 0x24, 0x35, 0x55, 0x9b, 0xd4, 0xd4, 0x4c, 0xc4, 0x78, - 0x45, 0x64, 0x0f, 0x94, 0xd7, 0x51, 0xfe, 0x42, 0x85, 0x7c, 0x96, 0x8e, 0xac, 0xbc, 0x39, 0xcb, - 0x1b, 0xfb, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x62, 0x65, 0x55, 0x78, 0x1c, 0x69, - 0x87, 0xbd, 0x68, 0x28, 0xb2, 0x8a, 0xa0, 0x98, 0x77, 0x78, 0x3b, 0xf6, 0x89, 0x0f, 0x3d, 0x67, - 0xb0, 0x49, 0x1d, 0x92, 0x43, 0x8c, 0x10, 0x9f, 0x82, 0x29, 0x99, 0xf7, 0x29, 0xbc, 0xc6, 0x81, - 0xa0, 0xf0, 0x58, 0x88, 0x39, 0x8d, 0x0a, 0x78, 0xe2, 0x97, 0x38, 0xc5, 0xbc, 0x6f, 0xfe, 0xbd, - 0x06, 0x6d, 0x3e, 0x7d, 0x52, 0xa7, 0x5e, 0x64, 0x38, 0xa7, 0x23, 0x05, 0x45, 0x12, 0x87, 0x59, - 0xc1, 0xa8, 0x2d, 0x75, 0x51, 0x52, 0x78, 0x0c, 0x8a, 0x8c, 0xde, 0x54, 0x16, 0x27, 0x99, 0x95, - 0xf6, 0x72, 0x5d, 0x5e, 0xa4, 0x24, 0x0e, 0x5b, 0xf6, 0x62, 0xaa, 0xa0, 0x23, 0xa3, 0x99, 0x6c, - 0x4c, 0xb3, 0xfe, 0x39, 0x3e, 0x24, 0x0e, 0xf3, 0x6f, 0x4c, 0xd3, 0xbe, 0xb9, 0x93, 0x72, 0x06, - 0xd7, 0x2c, 0xfa, 0xe5, 0x69, 0x27, 0xa3, 0x4b, 0x51, 0x6d, 0x1e, 0x1b, 0x55, 0x50, 0xa2, 0xaa, - 0x4e, 0xae, 0x56, 0x69, 0x72, 0x5d, 0x82, 0x36, 0xd7, 0x93, 0x82, 0x7e, 0x96, 0x57, 0x52, 0x0a, - 0x53, 0xc5, 0x46, 0xbb, 0x88, 0x0d, 0x35, 0xba, 0x73, 0x63, 0xa2, 0x3b, 0x9f, 0x45, 0xf7, 0x97, - 0x3a, 0xc0, 0x06, 0x09, 0xec, 0x30, 0x1e, 0x11, 0x3f, 0x66, 0xc3, 0x73, 0x32, 0x2a, 0x0b, 0xae, - 0xc2, 0x93, 0x73, 0x8a, 0xae, 0xe6, 0x14, 0x03, 0xa6, 0xd0, 0xe1, 0x3c, 0x9a, 0xf8, 0x9b, 0x39, - 0x33, 0xb0, 0x43, 0xae, 0x8d, 0x83, 0x3c, 0xa3, 0x59, 0xce, 0xa0, 0xa1, 0x23, 0xb2, 0x4c, 0xdd, - 0xe2, 0x04, 0x9b, 0xfc, 0x79, 0x7f, 0x58, 0x2f, 0x36, 0x78, 0x0e, 0x50, 0xb9, 0x27, 0x96, 0xb8, - 0x97, 0xa1, 0x13, 0x25, 0xbb, 0xf9, 0xe0, 0xb6, 0x92, 0x91, 0x80, 0x7b, 0x89, 0xcf, 0x9c, 0xca, - 0x6b, 0x5f, 0xd6, 0x88, 0xa7, 0xa5, 0x9c, 0x51, 0xac, 0x20, 0xcc, 0x0f, 0x75, 0xe8, 0x6c, 0x87, - 0x43, 0xdb, 0x77, 0xbf, 0x89, 0xc5, 0x18, 0x2e, 0xe0, 0xa7, 0x49, 0xcf, 0xcb, 0xd0, 0x22, 0xfe, - 0xd0, 0x73, 0xa3, 0xfd, 0xad, 0xdc, 0x6f, 0x32, 0x4b, 0x76, 0xf6, 0xd4, 0xb8, 0x04, 0x5e, 0x57, - 0x12, 0xf8, 0x22, 0x34, 0x46, 0x74, 0xd7, 0xf5, 0x52, 0xdc, 0x0b, 0x0a, 0x31, 0x4f, 0x3c, 0x82, - 0x99, 0x3c, 0xc3, 0x7c, 0xca, 0xc8, 0x93, 0xfa, 0x4c, 0x65, 0x52, 0x6f, 0xca, 0x49, 0x5d, 0x75, - 0x3c, 0x94, 0x1c, 0xcf, 0xdd, 0xd5, 0xca, 0xdc, 0xf5, 0x7b, 0x0d, 0x3a, 0xb9, 0xbb, 0x79, 0xbd, - 0x3a, 0xd6, 0x5d, 0x45, 0x04, 0xea, 0x15, 0x08, 0xcc, 0x70, 0x53, 0x93, 0x71, 0xc3, 0x90, 0x46, - 0x23, 0x57, 0x2a, 0xd2, 0x33, 0x9a, 0xf5, 0xe6, 0x11, 0x5b, 0x72, 0x16, 0xa7, 0xa4, 0x4d, 0x4d, - 0x43, 0xd9, 0xd4, 0x14, 0xf3, 0xe8, 0x6f, 0x34, 0x38, 0xcf, 0xa2, 0x5c, 0x1a, 0xc6, 0x36, 0x74, - 0x68, 0x01, 0x09, 0x22, 0xd1, 0x3c, 0x5b, 0x91, 0x28, 0x8a, 0xa0, 0xb1, 0x4a, 0xc2, 0x4c, 0xa1, - 0x53, 0xe8, 0x44, 0x64, 0x9e, 0x2a, 0x85, 0x45, 0x7b, 0xac, 0x92, 0xb0, 0xf9, 0x5b, 0x0d, 0x3a, - 0x3c, 0xb5, 0x49, 0xf3, 0xfc, 0xcc, 0xcd, 0x7e, 0x17, 0xce, 0x17, 0x7b, 0xbe, 0xe5, 0x46, 0x71, - 0x57, 0x5f, 0xae, 0x4d, 0x6a, 0x7a, 0xa5, 0x02, 0x36, 0xd7, 0x9e, 0xde, 0x49, 0x3c, 0xaf, 0x47, - 0xa2, 0xc8, 0x1e, 0x92, 0xb5, 0x07, 0x7d, 0x72, 0xc8, 0x3e, 0x58, 0xe4, 0x70, 0x2c, 0x86, 0x58, - 0x9d, 0x83, 0x85, 0x82, 0x4b, 0xfd, 0x0c, 0x42, 0x32, 0x8b, 0x4d, 0xab, 0x88, 0xeb, 0xe9, 0xd6, - 0x96, 0x6b, 0x2c, 0x85, 0x0a, 0xd2, 0xf8, 0x06, 0xcc, 0x62, 0x0e, 0x17, 0xdd, 0x74, 0xa7, 0x70, - 0x00, 0xaf, 0x55, 0x56, 0x0d, 0x95, 0x56, 0xf1, 0x6a, 0x40, 0xd0, 0x6f, 0xf8, 0x71, 0xf8, 0xc0, - 0x52, 0x34, 0x2e, 0xbd, 0x07, 0x0b, 0xa5, 0x26, 0x46, 0x07, 0x6a, 0x07, 0xe4, 0x81, 0x18, 0x07, - 0xfb, 0x69, 0xbc, 0x08, 0xf5, 0x23, 0xb6, 0xf7, 0x13, 0xd1, 0x5f, 0xaa, 0xb0, 0x40, 0xd8, 0x6c, - 0xf1, 0x86, 0xaf, 0xe8, 0x5f, 0xd2, 0xcc, 0x67, 0xb3, 0x81, 0xc9, 0x63, 0xd4, 0x94, 0x31, 0x9a, - 0x6f, 0x41, 0xab, 0x17, 0x0d, 0x37, 0xec, 0xd8, 0xc6, 0x86, 0xaf, 0x41, 0x6b, 0x94, 0x93, 0xd8, - 0xb8, 0xba, 0x3f, 0x21, 0x64, 0xc9, 0xcd, 0xcd, 0x3f, 0xeb, 0xd0, 0xad, 0x76, 0x45, 0x14, 0x30, - 0x1b, 0x48, 0x18, 0xae, 0x53, 0x87, 0xe0, 0xd0, 0xea, 0x56, 0x4a, 0xb2, 0xd8, 0x91, 0x30, 0x64, - 0x39, 0x4c, 0x14, 0xd9, 0x9c, 0x32, 0x56, 0x60, 0xca, 0x4b, 0xc3, 0x72, 0xbc, 0x15, 0xd8, 0xce, - 0x18, 0x41, 0x07, 0xbd, 0x2b, 0x0d, 0x48, 0xc4, 0x6c, 0x75, 0xe2, 0x98, 0x45, 0x01, 0x0f, 0x9a, - 0xa4, 0x83, 0x07, 0xae, 0xa4, 0x7a, 0x69, 0x00, 0x4f, 0x55, 0x36, 0xad, 0x08, 0xe0, 0x17, 0xd5, - 0x00, 0x5e, 0x1c, 0x3f, 0x94, 0x62, 0x10, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x67, 0xdf, 0x5f, 0xf5, - 0x9d, 0x9e, 0xeb, 0xf7, 0xc9, 0x21, 0x43, 0xfb, 0x32, 0xb4, 0xc4, 0x56, 0x3e, 0x0b, 0x53, 0xd3, - 0x92, 0x59, 0x63, 0x77, 0xf8, 0x85, 0xf9, 0x50, 0x2b, 0xcd, 0x07, 0xf3, 0x1a, 0xcc, 0xca, 0xdd, - 0x61, 0x12, 0xb1, 0xef, 0xf7, 0xc9, 0x21, 0x0e, 0xa8, 0x6d, 0x09, 0x0a, 0xf9, 0xd8, 0x42, 0xec, - 0x0d, 0x04, 0x65, 0xfe, 0x49, 0x87, 0x73, 0x25, 0x93, 0xa3, 0xe0, 0x61, 0xf5, 0xc8, 0x78, 0xa9, - 0x8d, 0xc3, 0xcb, 0x94, 0x82, 0x97, 0x03, 0x58, 0xe0, 0x41, 0x92, 0xba, 0xee, 0xd6, 0x11, 0x00, - 0xaf, 0x57, 0x95, 0xea, 0x65, 0x23, 0x45, 0xec, 0x25, 0x2e, 0x0f, 0x7e, 0x59, 0xef, 0x12, 0x81, - 0xc5, 0xea, 0xc6, 0x15, 0xe1, 0x7f, 0x59, 0x0d, 0xff, 0xa7, 0xab, 0xc2, 0x2f, 0x5b, 0x22, 0xc5, - 0xff, 0x10, 0xe6, 0xd9, 0xa2, 0xda, 0x27, 0xbe, 0xd3, 0x8b, 0x86, 0xe8, 0xc8, 0x65, 0x68, 0x71, - 0xf9, 0x5e, 0x34, 0xcc, 0xb7, 0x6e, 0x12, 0x8b, 0xb5, 0x18, 0x78, 0x2e, 0x5b, 0x3c, 0xb1, 0x85, - 0x58, 0xf4, 0x24, 0x16, 0x4b, 0x90, 0x11, 0x11, 0xa7, 0x1e, 0xcc, 0xbb, 0x35, 0x2b, 0xa3, 0xcd, - 0x0f, 0x1a, 0x30, 0x2d, 0xd0, 0x88, 0x49, 0x91, 0xed, 0x96, 0xb3, 0x65, 0x95, 0x53, 0xbc, 0xae, - 0x1d, 0x1c, 0xe5, 0xf0, 0xe2, 0x94, 0x7c, 0xe4, 0x54, 0x53, 0x8f, 0x9c, 0x0a, 0x36, 0x4d, 0x95, - 0x6d, 0x2a, 0x8c, 0xab, 0x5e, 0x1e, 0x17, 0x2b, 0xe3, 0xb0, 0xb2, 0xd9, 0xf1, 0xec, 0x78, 0x8f, - 0x86, 0x23, 0xb1, 0xf9, 0xad, 0x5b, 0x25, 0x3e, 0x2b, 0x1d, 0x39, 0x2f, 0xab, 0xfd, 0x79, 0x0a, - 0x2f, 0x70, 0x59, 0xa5, 0xcd, 0x39, 0xe9, 0x1e, 0x80, 0x9f, 0x50, 0xa8, 0x4c, 0x6e, 0x5b, 0x14, - 0xb9, 0xd4, 0xc7, 0x2a, 0x94, 0x97, 0xfa, 0x32, 0x8b, 0x8d, 0x7c, 0x14, 0x0d, 0x37, 0x43, 0x3a, - 0x12, 0xe7, 0x14, 0x29, 0x89, 0x23, 0xa7, 0x7e, 0x9c, 0x56, 0xb0, 0xfc, 0x6c, 0x42, 0x66, 0x31, - 0x59, 0x41, 0x62, 0x9d, 0x3f, 0x6b, 0xa5, 0x24, 0xc3, 0x52, 0x44, 0x0e, 0x45, 0xf1, 0xce, 0x7e, - 0x2a, 0x91, 0x9b, 0x57, 0x23, 0x57, 0xa8, 0xc6, 0x3a, 0xf8, 0x55, 0xae, 0xc6, 0xf2, 0x12, 0x67, - 0x41, 0x29, 0x71, 0x56, 0x61, 0x9a, 0x06, 0x6c, 0xfa, 0x47, 0x5d, 0x03, 0xa7, 0xcb, 0xf3, 0xe3, - 0x17, 0xa8, 0x95, 0x6d, 0xde, 0x92, 0x4f, 0x8c, 0x54, 0xce, 0xb8, 0x05, 0xf3, 0x74, 0x6f, 0xcf, - 0x73, 0x7d, 0xb2, 0x93, 0x44, 0xfb, 0xb8, 0x49, 0x3e, 0x87, 0x60, 0x37, 0xab, 0x8a, 0x08, 0xb5, - 0xa5, 0x55, 0x14, 0x65, 0x95, 0x9f, 0x1d, 0xf3, 0x4d, 0x0e, 0x2e, 0x70, 0xe7, 0x71, 0x81, 0x53, - 0x78, 0x78, 0x76, 0x27, 0x2d, 0xf4, 0x4f, 0xa1, 0xe3, 0x64, 0xd6, 0xd2, 0x2b, 0x30, 0x2b, 0x1b, - 0x5b, 0x31, 0x31, 0xcf, 0xcb, 0x13, 0x73, 0x46, 0x9e, 0x77, 0x3f, 0xd0, 0x60, 0xbe, 0x60, 0x26, - 0x6b, 0x1d, 0xbb, 0xb1, 0x47, 0x84, 0x06, 0x4e, 0xb0, 0x9d, 0x8e, 0x43, 0xa2, 0x81, 0x98, 0x08, - 0xf8, 0x5b, 0xd4, 0x8c, 0xb5, 0xec, 0xac, 0xcb, 0x84, 0x59, 0x77, 0xbb, 0xcf, 0x14, 0xf5, 0x69, - 0xe2, 0x3b, 0xd9, 0xc1, 0xb1, 0xc4, 0x63, 0x40, 0x74, 0xb7, 0xfb, 0x6b, 0xb6, 0x33, 0x24, 0xfc, - 0x20, 0xbe, 0x8e, 0x36, 0xa9, 0x4c, 0xd3, 0x81, 0x99, 0xdb, 0x6e, 0x10, 0xad, 0xd3, 0xd1, 0x88, - 0x85, 0xd3, 0x21, 0x31, 0xab, 0xc9, 0x35, 0x1c, 0xbc, 0xa0, 0x98, 0x67, 0x1c, 0xb2, 0x67, 0x27, - 0x5e, 0xcc, 0x9a, 0xa6, 0xd3, 0x5f, 0x62, 0xe1, 0x79, 0x6a, 0x44, 0xfd, 0x0d, 0x2e, 0xcd, 0xed, - 0x94, 0x38, 0xe6, 0x1f, 0x75, 0xe8, 0xe0, 0xea, 0xb6, 0x8e, 0xe0, 0x71, 0x50, 0xe8, 0x2a, 0xd4, - 0x71, 0x32, 0x8b, 0xea, 0xf0, 0xf8, 0xd3, 0x0f, 0xde, 0xd4, 0xb8, 0x06, 0x0d, 0x1a, 0x60, 0x49, - 0xc9, 0x97, 0xbe, 0xe7, 0xc6, 0x09, 0xa9, 0x47, 0xd7, 0x96, 0x90, 0x32, 0x36, 0x01, 0x46, 0x79, - 0x05, 0xc9, 0x0b, 0x81, 0x49, 0x75, 0x48, 0x92, 0xcc, 0xb9, 0x59, 0x8e, 0xcb, 0xce, 0xaf, 0x6b, - 0x96, 0xca, 0x34, 0xb6, 0x60, 0x0e, 0xcd, 0xde, 0x4e, 0x8f, 0xc1, 0x30, 0x06, 0x93, 0xf7, 0x58, - 0x90, 0x36, 0x7f, 0xa2, 0x09, 0x37, 0xb2, 0xaf, 0x7d, 0xc2, 0x7d, 0x9f, 0xbb, 0x44, 0x3b, 0x95, - 0x4b, 0x96, 0x60, 0x66, 0x94, 0x48, 0xa7, 0x72, 0x35, 0x2b, 0xa3, 0xf3, 0x10, 0xd5, 0x26, 0x0e, - 0x91, 0xf9, 0x53, 0x0d, 0xba, 0x6f, 0x52, 0xd7, 0xc7, 0x0f, 0xab, 0x41, 0xe0, 0x89, 0x6b, 0x85, - 0x53, 0xc7, 0xfc, 0x2b, 0xd0, 0xb4, 0xb9, 0x1a, 0x3f, 0x16, 0x61, 0x9f, 0xe0, 0xa4, 0x2d, 0x97, - 0x91, 0x0e, 0x4d, 0x6a, 0xf2, 0xa1, 0x89, 0xf9, 0x91, 0x06, 0x73, 0xdc, 0x29, 0x6f, 0x27, 0x6e, - 0x7c, 0x6a, 0xfb, 0xd6, 0x60, 0xe6, 0x30, 0x71, 0xe3, 0x53, 0xa0, 0x32, 0x93, 0x2b, 0xe3, 0xa9, - 0x56, 0x81, 0x27, 0xf3, 0x17, 0x1a, 0x5c, 0x28, 0xba, 0x75, 0x75, 0x30, 0x20, 0xc1, 0xa3, 0x9c, - 0x52, 0xca, 0xa1, 0xd1, 0x54, 0xe1, 0xd0, 0xa8, 0xd2, 0x64, 0x8b, 0xbc, 0x4f, 0x06, 0x8f, 0xaf, - 0xc9, 0xdf, 0xd6, 0xe1, 0xff, 0xaf, 0x67, 0x13, 0xef, 0x76, 0x68, 0xfb, 0xd1, 0x1e, 0x09, 0xc3, - 0x47, 0x68, 0xef, 0x2d, 0x68, 0xfb, 0xe4, 0x5e, 0x6e, 0x93, 0x98, 0x8e, 0x93, 0xaa, 0x51, 0x85, - 0x27, 0x5b, 0xbb, 0xcc, 0x7f, 0x6b, 0xd0, 0xe1, 0x7a, 0xde, 0x72, 0x07, 0x07, 0x8f, 0x70, 0xf0, - 0x5b, 0x30, 0x77, 0x80, 0x16, 0x30, 0xea, 0x14, 0xcb, 0x76, 0x41, 0x7a, 0xc2, 0xe1, 0xff, 0x47, - 0x83, 0x05, 0xae, 0xe8, 0xa6, 0x7f, 0xe4, 0x3e, 0x4a, 0xb0, 0xee, 0xc0, 0xbc, 0xcb, 0x4d, 0x38, - 0xa5, 0x03, 0x8a, 0xe2, 0x13, 0x7a, 0xe0, 0xd7, 0x1a, 0xcc, 0x73, 0x4d, 0x6f, 0xf8, 0x31, 0x09, - 0x4f, 0x3d, 0xfe, 0x1b, 0xd0, 0x22, 0x7e, 0x1c, 0xda, 0xfe, 0x69, 0x56, 0x48, 0x59, 0x74, 0xc2, - 0x45, 0xf2, 0x23, 0x0d, 0x0c, 0x54, 0xb5, 0xe1, 0x46, 0x23, 0x37, 0x8a, 0x1e, 0x61, 0xe8, 0x26, - 0x33, 0xf8, 0x87, 0x3a, 0x9c, 0x97, 0xb4, 0xf4, 0x92, 0xf8, 0x71, 0x37, 0xd9, 0xd8, 0x80, 0x26, - 0xab, 0x11, 0xe4, 0xdb, 0xc8, 0x49, 0x3b, 0xca, 0x05, 0x59, 0x15, 0x8b, 0x44, 0x9f, 0x0c, 0xa8, - 0xef, 0x44, 0x58, 0x1c, 0xb5, 0x2d, 0x85, 0xc7, 0x96, 0xa1, 0x25, 0x49, 0xcd, 0xba, 0xed, 0x0f, - 0x88, 0xf7, 0xc4, 0xb8, 0xc8, 0xfc, 0xb9, 0x06, 0x73, 0xbc, 0xc9, 0xe3, 0x3f, 0x64, 0x96, 0xeb, - 0x39, 0x90, 0x3f, 0x31, 0x51, 0x62, 0xf0, 0x5a, 0x94, 0xb4, 0xc8, 0x75, 0xf5, 0xe3, 0x0b, 0xad, - 0x1b, 0xd0, 0x1a, 0xec, 0xdb, 0xfe, 0xf0, 0x54, 0xe0, 0x92, 0x45, 0xcd, 0x18, 0x9e, 0x96, 0x0f, - 0xe0, 0xd7, 0xf9, 0x27, 0x1c, 0xfe, 0x4b, 0x85, 0xa1, 0x1c, 0xfb, 0xda, 0xe0, 0xe1, 0x9c, 0x7e, - 0x00, 0x0b, 0xfc, 0xd6, 0x57, 0xaa, 0x09, 0x8d, 0x2e, 0x4c, 0xdb, 0x0e, 0x3f, 0x86, 0xd0, 0x50, - 0x28, 0x25, 0xd5, 0xfb, 0x7c, 0xf1, 0xce, 0x2a, 0xbf, 0xcf, 0xbf, 0x08, 0x60, 0x3b, 0xce, 0xbb, - 0x34, 0x74, 0x5c, 0x3f, 0x2d, 0xf0, 0x25, 0x8e, 0xf9, 0x26, 0xcc, 0x6e, 0x86, 0x74, 0x74, 0x5b, - 0xba, 0xbf, 0x3d, 0xf6, 0x86, 0x59, 0xbe, 0xfb, 0xd5, 0xd5, 0xbb, 0x5f, 0xf3, 0xeb, 0xf0, 0x54, - 0xc9, 0x70, 0x74, 0xd6, 0x3a, 0xbf, 0x96, 0x4e, 0x3b, 0x11, 0x90, 0xa9, 0x3a, 0x97, 0x93, 0x6d, - 0xb1, 0x14, 0x21, 0xf3, 0x03, 0x0d, 0x9e, 0x29, 0xa9, 0x5f, 0x0d, 0x82, 0x90, 0x1e, 0x89, 0x98, - 0x9c, 0x45, 0x37, 0x6a, 0xf1, 0xab, 0x17, 0x8b, 0xdf, 0x4a, 0x23, 0x94, 0x82, 0xfd, 0x63, 0x30, - 0xe2, 0x67, 0x1a, 0xcc, 0x0b, 0x23, 0x1c, 0x47, 0x74, 0xfb, 0x32, 0x34, 0xf8, 0x93, 0x16, 0xd1, - 0xe1, 0x33, 0x95, 0x1d, 0xa6, 0x4f, 0x71, 0x2c, 0xd1, 0xb8, 0x8c, 0x48, 0xbd, 0x6a, 0x46, 0x7d, - 0x39, 0x03, 0xfb, 0xc4, 0x8f, 0x4e, 0x84, 0x80, 0xf9, 0xd5, 0x14, 0xcc, 0x1b, 0xc4, 0x23, 0x67, - 0xe9, 0x23, 0xf3, 0x0e, 0xcc, 0xe1, 0xfb, 0x9a, 0xdc, 0x07, 0x67, 0xa2, 0xf6, 0x5d, 0xe8, 0xa0, - 0xda, 0x33, 0xb7, 0x37, 0x9b, 0x1d, 0xcc, 0x3f, 0xf2, 0x52, 0x72, 0x26, 0xda, 0xbf, 0x00, 0xe7, - 0x52, 0xdf, 0xdf, 0x09, 0x9c, 0xec, 0x10, 0x69, 0xcc, 0x3d, 0x9d, 0xf9, 0x22, 0x2c, 0xae, 0x53, - 0xff, 0x88, 0x84, 0x11, 0xbf, 0x48, 0x44, 0x91, 0x54, 0x42, 0x99, 0xfc, 0x82, 0x32, 0xdf, 0x87, - 0x25, 0x59, 0xa2, 0x4f, 0xe2, 0x9d, 0xd0, 0x3d, 0x92, 0xa4, 0xc4, 0x01, 0xb5, 0xa6, 0x1c, 0x50, - 0xe7, 0x07, 0xda, 0xba, 0x72, 0xa0, 0x7d, 0x01, 0x9a, 0x6e, 0x24, 0x14, 0x20, 0xa8, 0x66, 0xac, - 0x9c, 0x61, 0xda, 0xb0, 0xc0, 0xdd, 0x2f, 0x2e, 0x8c, 0xb0, 0x8b, 0x25, 0x98, 0xe1, 0x98, 0xca, - 0x3a, 0xc9, 0xe8, 0xb1, 0xd7, 0x2f, 0x63, 0x2f, 0x1b, 0xcd, 0x3e, 0x2c, 0x88, 0x47, 0x35, 0x3b, - 0xf6, 0xd0, 0xf5, 0xf9, 0x22, 0x7b, 0x11, 0x20, 0xb0, 0x87, 0xe9, 0x03, 0x3c, 0x7e, 0x6d, 0x26, - 0x71, 0xd8, 0xf7, 0x68, 0x9f, 0xde, 0x13, 0xdf, 0x75, 0xfe, 0x3d, 0xe7, 0x98, 0xef, 0x80, 0x61, - 0x91, 0x28, 0xa0, 0x7e, 0x44, 0x24, 0xad, 0xcb, 0xd0, 0x5a, 0x4f, 0xc2, 0x90, 0xf8, 0xac, 0xab, - 0xf4, 0x85, 0x99, 0xcc, 0x62, 0x7a, 0xfb, 0xb9, 0x5e, 0x7e, 0xc4, 0x2e, 0x71, 0xcc, 0x1f, 0xd5, - 0xa0, 0xd9, 0x77, 0x87, 0xbe, 0xed, 0x59, 0xe4, 0xd0, 0x78, 0x0d, 0x1a, 0x7c, 0xcb, 0x22, 0x90, - 0x52, 0x75, 0xe4, 0xcb, 0x5b, 0xf3, 0xbd, 0x99, 0x45, 0x0e, 0x6f, 0xfc, 0x9f, 0x25, 0x64, 0x8c, - 0xb7, 0xa1, 0xcd, 0x7f, 0xdd, 0xe4, 0x47, 0x50, 0x22, 0x7f, 0x7d, 0xf6, 0x04, 0x25, 0xa2, 0x35, - 0xd7, 0xa5, 0x6a, 0x60, 0x06, 0x0d, 0xb0, 0xa4, 0x11, 0xcb, 0xc3, 0x78, 0x83, 0x78, 0xe5, 0x23, - 0x0c, 0xe2, 0x32, 0x4c, 0xda, 0xc6, 0x43, 0x1a, 0x91, 0xa9, 0xc7, 0x4b, 0xf3, 0xb3, 0x1c, 0x21, - 0xcd, 0x65, 0x98, 0xf4, 0x7e, 0xe2, 0x0f, 0xef, 0x04, 0xe2, 0xec, 0x70, 0xbc, 0xf4, 0x0d, 0x6c, - 0x26, 0xa4, 0xb9, 0x0c, 0x93, 0x0e, 0x71, 0xf1, 0x46, 0xa7, 0x1f, 0x27, 0xcd, 0xd7, 0x78, 0x21, - 0xcd, 0x65, 0xd6, 0x9a, 0x30, 0x1d, 0xd8, 0x0f, 0x3c, 0x6a, 0x3b, 0xe6, 0x87, 0x35, 0x80, 0xb4, - 0x61, 0x84, 0x85, 0x8e, 0x12, 0xa2, 0x4b, 0x27, 0x86, 0x28, 0xf0, 0x1e, 0x48, 0x41, 0xea, 0x57, - 0x07, 0xe9, 0x73, 0x93, 0x06, 0x89, 0x6b, 0x2b, 0x84, 0xe9, 0x5a, 0x21, 0x4c, 0x97, 0x4e, 0x0c, - 0x93, 0x30, 0x4a, 0x04, 0xea, 0x5a, 0x21, 0x50, 0x97, 0x4e, 0x0c, 0x94, 0x90, 0x17, 0xa1, 0xba, - 0x56, 0x08, 0xd5, 0xa5, 0x13, 0x43, 0x25, 0xe4, 0x45, 0xb0, 0xae, 0x15, 0x82, 0x75, 0xe9, 0xc4, - 0x60, 0x09, 0xf9, 0x72, 0xb8, 0xfe, 0xaa, 0xc3, 0x1c, 0xba, 0x8c, 0xdf, 0xc2, 0xfa, 0x7b, 0x14, - 0xef, 0x03, 0xd0, 0x5d, 0xea, 0x1b, 0x4d, 0x95, 0x69, 0x7c, 0x1e, 0x16, 0x38, 0x83, 0x48, 0xd7, - 0x25, 0x3a, 0x5e, 0x97, 0x94, 0x3f, 0xe0, 0x05, 0x51, 0x12, 0xc5, 0x74, 0xb4, 0x61, 0xc7, 0x76, - 0x5a, 0x7c, 0xe5, 0x1c, 0xf9, 0xfa, 0x6e, 0xaa, 0xf4, 0x62, 0x3c, 0xa4, 0x74, 0x94, 0xdd, 0xcb, - 0x09, 0x8a, 0x49, 0xc4, 0xee, 0x88, 0xd0, 0x24, 0x16, 0xcb, 0x44, 0x4a, 0xf2, 0x77, 0x54, 0x8e, - 0x6b, 0xe3, 0xa5, 0x97, 0x78, 0x64, 0x94, 0x31, 0x70, 0x65, 0xcb, 0x2f, 0xf1, 0xc4, 0x8b, 0xee, - 0x9c, 0x33, 0xc1, 0x85, 0x1b, 0x3e, 0xc6, 0x77, 0x63, 0x57, 0x7e, 0x7c, 0x54, 0xb7, 0x14, 0x9e, - 0xf9, 0x0f, 0x0d, 0xce, 0xed, 0xd8, 0x61, 0xec, 0x0e, 0xdc, 0xc0, 0xf6, 0xe3, 0x1e, 0x89, 0x6d, - 0x1c, 0xa7, 0xf2, 0x98, 0x53, 0x7b, 0xb8, 0xc7, 0x9c, 0x3b, 0x30, 0x3f, 0x54, 0x77, 0x20, 0x0f, - 0xb9, 0x79, 0x28, 0x8a, 0x2b, 0x2f, 0x53, 0x6b, 0x0f, 0xfd, 0x32, 0xd5, 0xfc, 0x9e, 0x0e, 0xf3, - 0x85, 0xe5, 0xf5, 0xd8, 0xdc, 0xb4, 0x0a, 0xe0, 0x66, 0x50, 0x3b, 0xe6, 0x80, 0x5e, 0xc5, 0xa3, - 0x25, 0x09, 0x55, 0xdd, 0xf6, 0xd5, 0x4e, 0x7f, 0xdb, 0x77, 0x03, 0x5a, 0x41, 0x1e, 0xa4, 0x63, - 0xf6, 0x47, 0x15, 0xa1, 0xb4, 0x64, 0x51, 0xf3, 0x3d, 0x58, 0x28, 0xad, 0x62, 0x78, 0x6d, 0x47, - 0x0f, 0x88, 0x9f, 0x5d, 0xdb, 0x31, 0x42, 0x02, 0xb4, 0x5e, 0x04, 0xb4, 0xe7, 0x1e, 0xc9, 0xcf, - 0xe4, 0x05, 0x69, 0x7e, 0x5f, 0x87, 0xc5, 0xea, 0x0c, 0xf4, 0xa4, 0xba, 0x7b, 0x17, 0xba, 0xe3, - 0x56, 0xfb, 0x33, 0xf3, 0x7a, 0x8e, 0xee, 0x2c, 0x57, 0x3f, 0xa9, 0xee, 0x3e, 0x97, 0xa2, 0x5b, - 0x4a, 0x87, 0xe6, 0xaf, 0x32, 0xff, 0x64, 0xd5, 0xc8, 0x13, 0xea, 0x1f, 0xe3, 0x32, 0x74, 0xf8, - 0x30, 0xa5, 0xe7, 0x21, 0xbc, 0xb8, 0x2d, 0xf1, 0xf3, 0x95, 0x42, 0x2a, 0x0d, 0xce, 0x0c, 0xb3, - 0xbf, 0xd3, 0xd2, 0x98, 0x64, 0x35, 0xde, 0x27, 0x2a, 0x26, 0x39, 0xd2, 0xa4, 0xc2, 0x47, 0x42, - 0x5a, 0x56, 0x7b, 0xfe, 0x0f, 0x69, 0x27, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x04, 0x9a, 0xdf, 0x82, - 0xf6, 0x06, 0xf1, 0x7a, 0xd1, 0x30, 0x7d, 0xbf, 0x7a, 0xa6, 0x9b, 0xc9, 0xe2, 0x2b, 0xbf, 0xa9, - 0xf2, 0x2b, 0xbf, 0x35, 0x98, 0x93, 0x0d, 0x38, 0xcd, 0xfb, 0xcc, 0xb5, 0x0b, 0x5f, 0x5b, 0x5a, - 0x11, 0xff, 0x9e, 0x7d, 0xb5, 0xe4, 0xc4, 0xdd, 0x06, 0xfe, 0x79, 0xf1, 0xa5, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x58, 0x4b, 0xb8, 0x00, 0x96, 0x3b, 0x00, 0x00, +var fileDescriptor_ws_bd277b37af84394c = []byte{ + // 3434 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4d, 0x6c, 0x24, 0x47, + 0x15, 0xa6, 0x7b, 0x3c, 0x63, 0xcf, 0x1b, 0xff, 0x8c, 0x7b, 0x37, 0xce, 0x60, 0x36, 0x8b, 0xe9, + 0x58, 0x49, 0x58, 0x82, 0x37, 0xda, 0x10, 0x09, 0xf2, 0xb3, 0xc8, 0x3f, 0xd9, 0x9f, 0x64, 0xc7, + 0x76, 0x7a, 0x76, 0x13, 0x44, 0x90, 0x96, 0xf6, 0x74, 0x79, 0xdc, 0xeb, 0x9e, 0xae, 0x76, 0xff, + 0x78, 0xd7, 0x5c, 0x90, 0x82, 0x84, 0xb8, 0x71, 0x81, 0x0b, 0x17, 0x24, 0x2e, 0x08, 0x14, 0x45, + 0x08, 0x81, 0xc4, 0x01, 0x21, 0x84, 0xb8, 0x71, 0x01, 0x89, 0x0b, 0xe2, 0xc6, 0x99, 0x3b, 0x42, + 0x42, 0x02, 0x55, 0xbd, 0xea, 0xee, 0xaa, 0xee, 0x1e, 0x7b, 0xd6, 0xb2, 0xb2, 0x1b, 0x2d, 0xb7, + 0x79, 0xaf, 0xeb, 0xbd, 0x7a, 0xf5, 0xbe, 0x57, 0xf5, 0x5e, 0xfd, 0x0c, 0xcc, 0x45, 0xce, 0xfe, + 0xdd, 0xfb, 0xd1, 0xe5, 0xfb, 0xd1, 0x4a, 0x10, 0xd2, 0x98, 0x1a, 0xf3, 0x11, 0x09, 0x0f, 0x49, + 0x78, 0xd7, 0x0e, 0xdc, 0xbb, 0x81, 0x1d, 0xda, 0xc3, 0x68, 0xf1, 0xf9, 0xad, 0x80, 0xf8, 0x77, + 0x6f, 0x76, 0x2f, 0x07, 0xfb, 0x83, 0xcb, 0xbc, 0xd5, 0xe5, 0x54, 0x2a, 0xb4, 0x83, 0x80, 0x84, + 0x42, 0xd6, 0xfc, 0x57, 0x0d, 0x9a, 0xd7, 0x43, 0x9a, 0x04, 0x37, 0xfd, 0x5d, 0x6a, 0x74, 0x60, + 0x72, 0xc0, 0x89, 0x8d, 0x8e, 0xb6, 0xa4, 0xbd, 0xd0, 0xb4, 0x52, 0xd2, 0xb8, 0x00, 0x4d, 0xfe, + 0x73, 0xd3, 0x1e, 0x92, 0x8e, 0xce, 0xbf, 0xe5, 0x0c, 0xc3, 0x84, 0x69, 0x9f, 0xc6, 0xee, 0xae, + 0xdb, 0xb7, 0x63, 0x97, 0xfa, 0x9d, 0x1a, 0x6f, 0xa0, 0xf0, 0x58, 0x1b, 0xd7, 0x8f, 0x43, 0xea, + 0x24, 0x7d, 0xde, 0x66, 0x02, 0xdb, 0xc8, 0x3c, 0xd6, 0xff, 0xae, 0xdd, 0x27, 0x77, 0xac, 0x5b, + 0x9d, 0x3a, 0xf6, 0x2f, 0x48, 0x63, 0x09, 0x5a, 0xf4, 0xbe, 0x4f, 0xc2, 0x3b, 0x11, 0x09, 0x6f, + 0x6e, 0x74, 0x1a, 0xfc, 0xab, 0xcc, 0x32, 0x2e, 0x02, 0xf4, 0x43, 0x62, 0xc7, 0xe4, 0xb6, 0x3b, + 0x24, 0x9d, 0xc9, 0x25, 0xed, 0x85, 0x19, 0x4b, 0xe2, 0x30, 0x0d, 0x43, 0x32, 0xdc, 0x21, 0xe1, + 0x3a, 0x4d, 0xfc, 0xb8, 0x33, 0xc5, 0x1b, 0xc8, 0x2c, 0x63, 0x16, 0x74, 0xf2, 0xa0, 0xd3, 0xe4, + 0xaa, 0x75, 0xf2, 0xc0, 0x58, 0x80, 0x46, 0x14, 0xdb, 0x71, 0x12, 0x75, 0x60, 0x49, 0x7b, 0xa1, + 0x6e, 0x09, 0xca, 0x58, 0x86, 0x19, 0xae, 0x97, 0xa6, 0xd6, 0xb4, 0xb8, 0x88, 0xca, 0xcc, 0x3c, + 0x76, 0xfb, 0x28, 0x20, 0x9d, 0x69, 0xae, 0x20, 0x67, 0x18, 0x97, 0xa0, 0xed, 0x13, 0xe2, 0xbc, + 0x4b, 0xc2, 0xdc, 0x6b, 0x33, 0xbc, 0x51, 0x89, 0x6f, 0x3c, 0x07, 0xb3, 0x1e, 0xa5, 0xfb, 0x5d, + 0x6e, 0x2a, 0xc3, 0xa9, 0x33, 0xcb, 0x5b, 0x16, 0xb8, 0xc6, 0x8b, 0x30, 0x6f, 0x07, 0x81, 0x77, + 0x84, 0xac, 0x6b, 0xa1, 0x4b, 0x7c, 0xa7, 0x33, 0xc7, 0x9b, 0x96, 0x3f, 0x98, 0x3f, 0xa8, 0xc1, + 0x5c, 0x86, 0xfc, 0x35, 0x1a, 0xf6, 0x48, 0xfc, 0x18, 0xe3, 0x8f, 0xd8, 0x34, 0x32, 0x6c, 0xae, + 0x57, 0xf8, 0x8f, 0x61, 0xde, 0xba, 0xf2, 0x99, 0x95, 0x01, 0xa5, 0x03, 0x8f, 0x60, 0x80, 0xef, + 0x24, 0xbb, 0x2b, 0x37, 0xfd, 0xf8, 0xe5, 0x2b, 0xef, 0xda, 0x5e, 0x42, 0x2a, 0x9c, 0xbb, 0x5e, + 0x72, 0xee, 0xd4, 0xc9, 0x6a, 0x8a, 0x9e, 0xbf, 0x59, 0xe5, 0xf9, 0xe6, 0xc9, 0x7a, 0x2a, 0x60, + 0xf9, 0x9b, 0x0e, 0xe7, 0x38, 0x2c, 0x82, 0x9b, 0x78, 0xde, 0x09, 0x53, 0x73, 0x01, 0x1a, 0x09, + 0xc6, 0x21, 0xe2, 0x22, 0x28, 0x06, 0x59, 0x48, 0x3d, 0x72, 0x8b, 0x1c, 0x12, 0x8f, 0x23, 0x52, + 0xb7, 0x72, 0x86, 0xb1, 0x08, 0x53, 0xf7, 0xa8, 0xeb, 0xf3, 0xc9, 0x32, 0xc1, 0x3f, 0x66, 0x34, + 0xfb, 0xe6, 0xbb, 0xfd, 0x7d, 0x9f, 0x61, 0x8d, 0x38, 0x64, 0xb4, 0x0c, 0x51, 0x43, 0x85, 0xe8, + 0x39, 0x98, 0xb5, 0x83, 0xa0, 0x6b, 0xfb, 0x03, 0x12, 0x62, 0xa7, 0x93, 0x18, 0xa6, 0x2a, 0x97, + 0x4d, 0x54, 0xd6, 0x53, 0x8f, 0x26, 0x61, 0x9f, 0x70, 0x6f, 0xd7, 0x2d, 0x89, 0xc3, 0xf4, 0xd0, + 0x80, 0x84, 0xd2, 0xfc, 0xc2, 0x29, 0x59, 0xe0, 0x8a, 0x90, 0x80, 0x2c, 0x24, 0xd8, 0x04, 0x4f, + 0x62, 0xf2, 0xa6, 0xef, 0xf0, 0x41, 0xb5, 0xc4, 0x04, 0xcf, 0x59, 0xe6, 0x77, 0x35, 0x98, 0xdd, + 0x4e, 0x76, 0x3c, 0xb7, 0xcf, 0x55, 0x30, 0xb7, 0xe6, 0xce, 0xd3, 0x14, 0xe7, 0xc9, 0x2e, 0xd0, + 0x47, 0xbb, 0xa0, 0xa6, 0xba, 0x60, 0x01, 0x1a, 0x03, 0xe2, 0x3b, 0x24, 0x14, 0x2e, 0x15, 0x94, + 0x30, 0xb5, 0x9e, 0x9a, 0x6a, 0xfe, 0x41, 0x87, 0xa9, 0x8f, 0xd9, 0x84, 0x25, 0x68, 0x05, 0x7b, + 0xd4, 0x27, 0x9b, 0x09, 0x0b, 0x2b, 0x61, 0x8b, 0xcc, 0x32, 0xce, 0x43, 0x7d, 0xc7, 0x0d, 0xe3, + 0x3d, 0x8e, 0xeb, 0x8c, 0x85, 0x04, 0xe3, 0x92, 0xa1, 0xed, 0x22, 0x98, 0x4d, 0x0b, 0x09, 0x31, + 0xa0, 0xa9, 0xcc, 0xf7, 0xea, 0xe2, 0xdb, 0x2c, 0x2d, 0xbe, 0xe5, 0xd8, 0x80, 0xca, 0xd8, 0xb8, + 0x04, 0xed, 0x81, 0x47, 0x77, 0x6c, 0xcf, 0x22, 0xfd, 0xc3, 0x6e, 0x34, 0xd8, 0x0a, 0x62, 0x0e, + 0x64, 0xdd, 0x2a, 0xf1, 0xcd, 0x7f, 0x6b, 0x00, 0x38, 0x69, 0xb8, 0x1b, 0x0b, 0x19, 0x42, 0x2b, + 0x67, 0x88, 0x05, 0x68, 0x84, 0x64, 0x68, 0x87, 0xfb, 0xe9, 0x44, 0x41, 0xaa, 0x60, 0x7c, 0xad, + 0x64, 0xfc, 0x6b, 0x00, 0xbb, 0xbc, 0x1f, 0xa6, 0x87, 0xbb, 0x95, 0x4d, 0xeb, 0x52, 0xd2, 0x5d, + 0x49, 0x11, 0xb5, 0xa4, 0xe6, 0x6c, 0x16, 0xda, 0x8e, 0x23, 0x82, 0xbd, 0x8e, 0xb3, 0x30, 0x63, + 0x54, 0xc4, 0x7a, 0xe3, 0x98, 0x58, 0x9f, 0xcc, 0x02, 0xe8, 0x9f, 0x1a, 0x34, 0xd7, 0x3c, 0xbb, + 0xbf, 0x3f, 0xe6, 0xd0, 0xd5, 0x21, 0xea, 0xa5, 0x21, 0x5e, 0x87, 0x99, 0x1d, 0xa6, 0x2e, 0x1d, + 0x02, 0xf7, 0x42, 0xeb, 0xca, 0xe7, 0x2a, 0x46, 0xa9, 0x4e, 0x20, 0x4b, 0x95, 0x53, 0x87, 0x3b, + 0x71, 0xf2, 0x70, 0xeb, 0xc7, 0x0c, 0x37, 0x5b, 0xed, 0xcd, 0xbf, 0xe8, 0x30, 0xcd, 0x17, 0x45, + 0x8b, 0x1c, 0x24, 0x24, 0x8a, 0x8d, 0x37, 0x60, 0x2a, 0x49, 0x4d, 0xd5, 0xc6, 0x35, 0x35, 0x13, + 0x31, 0x5e, 0x15, 0xd9, 0x8c, 0xcb, 0xeb, 0x5c, 0xfe, 0x42, 0x85, 0x7c, 0x96, 0x1e, 0xad, 0xbc, + 0x39, 0xcb, 0x63, 0x7b, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x62, 0x65, 0x55, 0x78, + 0x18, 0x69, 0x07, 0xdd, 0x68, 0x20, 0xb2, 0x9c, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, 0x84, 0x43, + 0xcf, 0x19, 0x6c, 0x52, 0x87, 0xe4, 0x80, 0x23, 0x84, 0x53, 0x30, 0x25, 0xf3, 0x3e, 0x85, 0xd7, + 0x30, 0x10, 0x14, 0x1e, 0x83, 0x18, 0x69, 0xae, 0x00, 0xcb, 0x1b, 0x89, 0x53, 0xac, 0x6e, 0xcc, + 0xbf, 0xd7, 0x60, 0x06, 0xa7, 0x4f, 0xea, 0xd4, 0x8b, 0x2c, 0xce, 0xe9, 0x50, 0x89, 0x22, 0x89, + 0xc3, 0xac, 0x60, 0xd4, 0xa6, 0xba, 0x28, 0x29, 0x3c, 0x16, 0x8a, 0x8c, 0xbe, 0xa6, 0x2c, 0x4e, + 0x32, 0x2b, 0xed, 0xe5, 0xba, 0xbc, 0x48, 0x49, 0x1c, 0xb6, 0xec, 0xc5, 0x54, 0x89, 0x8e, 0x8c, + 0x66, 0xb2, 0x31, 0xcd, 0xfa, 0xc7, 0xf8, 0x90, 0x38, 0xcc, 0xbf, 0x31, 0x4d, 0xfb, 0x46, 0x27, + 0xe5, 0x0c, 0xd4, 0x2c, 0xfa, 0xc5, 0xb4, 0x93, 0xd1, 0x25, 0x54, 0x9b, 0xc7, 0xa2, 0x0a, 0x0a, + 0xaa, 0xea, 0xe4, 0x6a, 0x95, 0x26, 0xd7, 0x32, 0xcc, 0xa0, 0x9e, 0x34, 0xe8, 0xa7, 0xb1, 0x5e, + 0x54, 0x98, 0x6a, 0x6c, 0xcc, 0x14, 0x63, 0x43, 0x45, 0x77, 0x76, 0x04, 0xba, 0x73, 0x19, 0xba, + 0xbf, 0xd4, 0x01, 0x36, 0x48, 0x60, 0x87, 0xf1, 0x90, 0xf8, 0x31, 0x1b, 0x9e, 0x93, 0x51, 0x19, + 0xb8, 0x0a, 0x4f, 0xce, 0x29, 0xba, 0x9a, 0x53, 0x0c, 0x98, 0xe0, 0x0e, 0x47, 0x34, 0xf9, 0x6f, + 0xe6, 0xcc, 0xc0, 0x0e, 0x51, 0x1b, 0x06, 0x79, 0x46, 0xb3, 0x9c, 0x41, 0x43, 0x47, 0x64, 0x99, + 0xba, 0x85, 0x04, 0x9b, 0xfc, 0x79, 0x7f, 0xbc, 0x2a, 0x6e, 0x60, 0x0e, 0x50, 0xb9, 0x27, 0x16, + 0xf2, 0x97, 0xa0, 0x1d, 0x25, 0x3b, 0xf9, 0xe0, 0x36, 0x93, 0xa1, 0x08, 0xf7, 0x12, 0x9f, 0x39, + 0x15, 0x2b, 0x7c, 0xd6, 0x08, 0xd3, 0x52, 0xce, 0x28, 0x56, 0x10, 0xe6, 0x87, 0x3a, 0xb4, 0xb7, + 0xc2, 0x81, 0xed, 0xbb, 0xdf, 0xe2, 0xc5, 0x21, 0x5f, 0xc0, 0x4f, 0x93, 0x9e, 0x97, 0xa0, 0x45, + 0xfc, 0x81, 0xe7, 0x46, 0x7b, 0x9b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0x89, 0x51, 0x09, 0xbc, + 0xae, 0x24, 0xf0, 0x05, 0x68, 0x0c, 0xe9, 0x8e, 0xeb, 0xa5, 0x71, 0x2f, 0x28, 0x1e, 0xf3, 0xc4, + 0x23, 0x3c, 0x93, 0x67, 0x31, 0x9f, 0x32, 0xf2, 0xa4, 0x3e, 0x55, 0x99, 0xd4, 0x9b, 0x72, 0x52, + 0x57, 0x1d, 0x0f, 0x25, 0xc7, 0xa3, 0xbb, 0x5a, 0x99, 0xbb, 0x7e, 0xaf, 0x41, 0x3b, 0x77, 0x37, + 0xd6, 0xab, 0x23, 0xdd, 0x55, 0x8c, 0x40, 0xbd, 0x22, 0x02, 0xb3, 0xb8, 0xa9, 0xc9, 0x71, 0xc3, + 0x22, 0x8d, 0x46, 0xae, 0xb4, 0x69, 0xc8, 0x68, 0xd6, 0x9b, 0x47, 0x6c, 0xc9, 0x59, 0x48, 0x49, + 0x5b, 0xb7, 0x86, 0xb2, 0x75, 0x2b, 0xe6, 0xd1, 0xdf, 0x68, 0x70, 0x9e, 0xa1, 0x5c, 0x1a, 0xc6, + 0x16, 0xb4, 0x69, 0x21, 0x12, 0x44, 0xa2, 0x79, 0xb6, 0x22, 0x51, 0x14, 0x83, 0xc6, 0x2a, 0x09, + 0x33, 0x85, 0x4e, 0xa1, 0x13, 0x91, 0x79, 0xaa, 0x14, 0x16, 0xed, 0xb1, 0x4a, 0xc2, 0xe6, 0x6f, + 0x35, 0x68, 0x63, 0x6a, 0x93, 0xe6, 0xf9, 0x99, 0x9b, 0xfd, 0x1e, 0x9c, 0x2f, 0xf6, 0x7c, 0xcb, + 0x8d, 0xe2, 0x8e, 0xbe, 0x54, 0x1b, 0xd7, 0xf4, 0x4a, 0x05, 0x6c, 0xae, 0x3d, 0xbd, 0x9d, 0x78, + 0x5e, 0x97, 0x44, 0x91, 0x3d, 0x20, 0x6b, 0x47, 0x3d, 0x72, 0xc0, 0x3e, 0x58, 0xe4, 0x60, 0x64, + 0x0c, 0xb1, 0x3a, 0x87, 0x17, 0x0a, 0x2e, 0xf5, 0xb3, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, + 0xa7, 0x53, 0x5b, 0xaa, 0xb1, 0x14, 0x2a, 0x48, 0xe3, 0x9b, 0x30, 0xcd, 0x73, 0xb8, 0xe8, 0xa6, + 0x33, 0xc1, 0x07, 0xf0, 0x7a, 0x65, 0xd5, 0x50, 0x69, 0x15, 0x56, 0x03, 0x82, 0x7e, 0xd3, 0x8f, + 0xc3, 0x23, 0x4b, 0xd1, 0xb8, 0xf8, 0x3e, 0xcc, 0x97, 0x9a, 0x18, 0x6d, 0xa8, 0xed, 0x93, 0x23, + 0x31, 0x0e, 0xf6, 0xd3, 0x78, 0x09, 0xea, 0x87, 0x6c, 0xf3, 0x27, 0xd0, 0x5f, 0xac, 0xb0, 0x40, + 0xd8, 0x6c, 0x61, 0xc3, 0x57, 0xf5, 0x2f, 0x6b, 0xe6, 0xb3, 0xd9, 0xc0, 0xe4, 0x31, 0x6a, 0xca, + 0x18, 0xcd, 0xb7, 0xa1, 0xd5, 0x8d, 0x06, 0x1b, 0x76, 0x6c, 0xf3, 0x86, 0xaf, 0x43, 0x6b, 0x98, + 0x93, 0xbc, 0x71, 0x75, 0x7f, 0x42, 0xc8, 0x92, 0x9b, 0x9b, 0x7f, 0xd6, 0xa1, 0x53, 0xed, 0x8a, + 0x28, 0x60, 0x36, 0x90, 0x30, 0x5c, 0xa7, 0x0e, 0xe1, 0x43, 0xab, 0x5b, 0x29, 0xc9, 0xb0, 0x23, + 0x61, 0xc8, 0x72, 0x98, 0x28, 0xb2, 0x91, 0x32, 0x56, 0x60, 0xc2, 0x4b, 0x61, 0x39, 0xde, 0x0a, + 0xde, 0xce, 0x18, 0x42, 0x9b, 0x7b, 0x57, 0x1a, 0x90, 0xc0, 0x6c, 0x75, 0x6c, 0xcc, 0xa2, 0x00, + 0x41, 0x93, 0x74, 0x20, 0x70, 0x25, 0xd5, 0x8b, 0x7d, 0x78, 0xaa, 0xb2, 0x69, 0x05, 0x80, 0x5f, + 0x52, 0x01, 0xbc, 0x38, 0x7a, 0x28, 0x45, 0x10, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, 0x3f, 0x58, + 0xf5, 0x9d, 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0xad, 0x7c, 0x06, 0x53, + 0xd3, 0x92, 0x59, 0x23, 0x77, 0xf8, 0x85, 0xf9, 0x50, 0x2b, 0xcd, 0x07, 0xf3, 0x2a, 0x4c, 0xcb, + 0xdd, 0xf1, 0x24, 0x62, 0x3f, 0xe8, 0x91, 0x03, 0x3e, 0xa0, 0x19, 0x4b, 0x50, 0x9c, 0xcf, 0x5b, + 0x88, 0xbd, 0x81, 0xa0, 0xcc, 0x3f, 0xe9, 0x70, 0xae, 0x64, 0x72, 0x14, 0x3c, 0xac, 0x1e, 0x39, + 0x5e, 0x6a, 0xa3, 0xe2, 0x65, 0x42, 0x89, 0x97, 0x7d, 0x98, 0x47, 0x90, 0xa4, 0xae, 0x3b, 0x75, + 0x1e, 0x00, 0x6f, 0x54, 0x95, 0xea, 0x65, 0x23, 0x05, 0xf6, 0x12, 0x17, 0xc1, 0x2f, 0xeb, 0x5d, + 0x24, 0xb0, 0x50, 0xdd, 0xb8, 0x02, 0xfe, 0x57, 0x54, 0xf8, 0x3f, 0x5b, 0x05, 0xbf, 0x6c, 0x89, + 0x84, 0xff, 0x01, 0xcc, 0xb1, 0x45, 0xb5, 0x47, 0x7c, 0xa7, 0x1b, 0x0d, 0xb8, 0x23, 0x97, 0xa0, + 0x85, 0xf2, 0xdd, 0x68, 0x90, 0x6f, 0xdd, 0x24, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0xb6, 0x78, 0xf2, + 0x16, 0x62, 0xd1, 0x93, 0x58, 0x2c, 0x41, 0x46, 0x44, 0x9c, 0x7a, 0x30, 0xef, 0xd6, 0xac, 0x8c, + 0x36, 0x3f, 0x68, 0xc0, 0xa4, 0x88, 0x46, 0x9e, 0x14, 0xd9, 0x6e, 0x39, 0x5b, 0x56, 0x91, 0xc2, + 0xba, 0xb6, 0x7f, 0x98, 0x87, 0x17, 0x52, 0xf2, 0x91, 0x53, 0x4d, 0x3d, 0x72, 0x2a, 0xd8, 0x34, + 0x51, 0xb6, 0xa9, 0x30, 0xae, 0x7a, 0x79, 0x5c, 0xac, 0x8c, 0xe3, 0x95, 0xcd, 0xb6, 0x67, 0xc7, + 0xbb, 0x34, 0x1c, 0x8a, 0xcd, 0x6f, 0xdd, 0x2a, 0xf1, 0x59, 0xe9, 0x88, 0xbc, 0xac, 0xf6, 0xc7, + 0x14, 0x5e, 0xe0, 0xb2, 0x4a, 0x1b, 0x39, 0xe9, 0x1e, 0x00, 0x4f, 0x28, 0x54, 0x26, 0xda, 0x16, + 0x45, 0x2e, 0xf5, 0x79, 0x15, 0x8a, 0xa5, 0xbe, 0xcc, 0x62, 0x23, 0x1f, 0x46, 0x83, 0x6b, 0x21, + 0x1d, 0x8a, 0x73, 0x8a, 0x94, 0xe4, 0x23, 0xa7, 0x7e, 0x9c, 0x56, 0xb0, 0x78, 0x36, 0x21, 0xb3, + 0x98, 0xac, 0x20, 0x79, 0x9d, 0x3f, 0x6d, 0xa5, 0x24, 0x8b, 0xa5, 0x88, 0x1c, 0x88, 0xe2, 0x9d, + 0xfd, 0x54, 0x90, 0x9b, 0x53, 0x91, 0x2b, 0x54, 0x63, 0x6d, 0xfe, 0x55, 0xae, 0xc6, 0xf2, 0x12, + 0x67, 0x5e, 0x29, 0x71, 0x56, 0x61, 0x92, 0x06, 0x6c, 0xfa, 0x47, 0x1d, 0x83, 0x4f, 0x97, 0xe7, + 0x47, 0x2f, 0x50, 0x2b, 0x5b, 0xd8, 0x12, 0x27, 0x46, 0x2a, 0x67, 0xdc, 0x82, 0x39, 0xba, 0xbb, + 0xeb, 0xb9, 0x3e, 0xd9, 0x4e, 0xa2, 0x3d, 0xbe, 0x49, 0x3e, 0xc7, 0x83, 0xdd, 0xac, 0x2a, 0x22, + 0xd4, 0x96, 0x56, 0x51, 0x94, 0x55, 0x7e, 0x76, 0x8c, 0x9b, 0x1c, 0xbe, 0xc0, 0x9d, 0xe7, 0x0b, + 0x9c, 0xc2, 0xe3, 0x67, 0x77, 0xd2, 0x42, 0xff, 0x14, 0x77, 0x9c, 0xcc, 0x5a, 0x7c, 0x15, 0xa6, + 0x65, 0x63, 0x2b, 0x26, 0xe6, 0x79, 0x79, 0x62, 0x4e, 0xc9, 0xf3, 0xee, 0x87, 0x1a, 0xcc, 0x15, + 0xcc, 0x64, 0xad, 0x63, 0x37, 0xf6, 0x88, 0xd0, 0x80, 0x04, 0xdb, 0xe9, 0x38, 0x24, 0xea, 0x8b, + 0x89, 0xc0, 0x7f, 0x8b, 0x9a, 0xb1, 0x96, 0x9d, 0x75, 0x99, 0x30, 0xed, 0x6e, 0xf5, 0x98, 0xa2, + 0x1e, 0x4d, 0x7c, 0x27, 0x3b, 0xc8, 0x96, 0x78, 0x2c, 0x10, 0xdd, 0xad, 0xde, 0x9a, 0xed, 0x0c, + 0x08, 0x5e, 0x37, 0xd4, 0xb9, 0x4d, 0x2a, 0xd3, 0x74, 0x60, 0xea, 0xb6, 0x1b, 0x44, 0xeb, 0x74, + 0x38, 0x64, 0x70, 0x3a, 0x24, 0x66, 0x35, 0xb9, 0xc6, 0x07, 0x2f, 0x28, 0xe6, 0x19, 0x87, 0xec, + 0xda, 0x89, 0x17, 0xb3, 0xa6, 0xe9, 0xf4, 0x97, 0x58, 0xfc, 0x3c, 0x35, 0xa2, 0xfe, 0x06, 0x4a, + 0xa3, 0x9d, 0x12, 0xc7, 0xfc, 0xa3, 0x0e, 0x6d, 0xbe, 0xba, 0xad, 0xf3, 0xe0, 0x71, 0xb8, 0xd0, + 0x15, 0xa8, 0xf3, 0xc9, 0x2c, 0xaa, 0xc3, 0xe3, 0x4f, 0x3f, 0xb0, 0xa9, 0x71, 0x15, 0x1a, 0x34, + 0xe0, 0x25, 0x25, 0x2e, 0x7d, 0xcf, 0x8d, 0x12, 0x52, 0x8f, 0xae, 0x2d, 0x21, 0x65, 0x5c, 0x03, + 0x18, 0xe6, 0x15, 0x24, 0x16, 0x02, 0xe3, 0xea, 0x90, 0x24, 0x99, 0x73, 0xb3, 0x1c, 0x97, 0x9d, + 0x5f, 0xd7, 0x2c, 0x95, 0x69, 0x6c, 0xc2, 0x2c, 0x37, 0x7b, 0x2b, 0x3d, 0x06, 0xe3, 0x18, 0x8c, + 0xdf, 0x63, 0x41, 0xda, 0xfc, 0x89, 0x26, 0xdc, 0xc8, 0xbe, 0xf6, 0x08, 0xfa, 0x3e, 0x77, 0x89, + 0x76, 0x2a, 0x97, 0x2c, 0xc2, 0xd4, 0x30, 0x91, 0x4e, 0xe5, 0x6a, 0x56, 0x46, 0xe7, 0x10, 0xd5, + 0xc6, 0x86, 0xc8, 0xfc, 0xa9, 0x06, 0x9d, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xab, 0x41, 0xe0, 0x89, + 0x6b, 0x8e, 0x53, 0x63, 0xfe, 0x55, 0x68, 0xda, 0xa8, 0xc6, 0x8f, 0x05, 0xec, 0x63, 0x9c, 0xb4, + 0xe5, 0x32, 0xd2, 0xa1, 0x49, 0x4d, 0x3e, 0x34, 0x31, 0x3f, 0xd2, 0x60, 0x16, 0x9d, 0xf2, 0x4e, + 0xe2, 0xc6, 0xa7, 0xb6, 0x6f, 0x0d, 0xa6, 0x0e, 0x12, 0x37, 0x3e, 0x45, 0x54, 0x66, 0x72, 0xe5, + 0x78, 0xaa, 0x55, 0xc4, 0x93, 0xf9, 0x0b, 0x0d, 0x2e, 0x14, 0xdd, 0xba, 0xda, 0xef, 0x93, 0xe0, + 0x51, 0x4e, 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, 0x68, 0x54, 0x69, 0xb2, 0x45, 0xee, 0x91, 0xfe, + 0xe3, 0x6b, 0xf2, 0x77, 0x74, 0xf8, 0xf4, 0xf5, 0x6c, 0xe2, 0xdd, 0x0e, 0x6d, 0x3f, 0xda, 0x25, + 0x61, 0xf8, 0x08, 0xed, 0xbd, 0x05, 0x33, 0x3e, 0xb9, 0x9f, 0xdb, 0x24, 0xa6, 0xe3, 0xb8, 0x6a, + 0x54, 0xe1, 0xf1, 0xd6, 0x2e, 0xf3, 0x3f, 0x1a, 0xb4, 0x51, 0xcf, 0xdb, 0x6e, 0x7f, 0xff, 0x11, + 0x0e, 0x7e, 0x13, 0x66, 0xf7, 0xb9, 0x05, 0x8c, 0x3a, 0xc5, 0xb2, 0x5d, 0x90, 0x1e, 0x73, 0xf8, + 0xff, 0xd5, 0x60, 0x3e, 0xbd, 0x5d, 0x3d, 0x74, 0x1f, 0x65, 0xb0, 0x6e, 0xc3, 0x9c, 0x8b, 0x26, + 0x9c, 0xd2, 0x01, 0x45, 0xf1, 0x31, 0x3d, 0xf0, 0x6b, 0x0d, 0xe6, 0x50, 0xd3, 0x9b, 0x7e, 0x4c, + 0xc2, 0x53, 0x8f, 0xff, 0x06, 0xb4, 0x88, 0x1f, 0x87, 0xb6, 0x7f, 0x9a, 0x15, 0x52, 0x16, 0x1d, + 0x73, 0x91, 0xfc, 0x48, 0x03, 0x83, 0xab, 0xda, 0x70, 0xa3, 0xa1, 0x1b, 0x45, 0x8f, 0x10, 0xba, + 0xf1, 0x0c, 0xfe, 0x91, 0x0e, 0xe7, 0x25, 0x2d, 0xdd, 0x24, 0x7e, 0xdc, 0x4d, 0x36, 0x36, 0xa0, + 0xc9, 0x6a, 0x04, 0xf9, 0x36, 0x72, 0xdc, 0x8e, 0x72, 0x41, 0x56, 0xc5, 0x72, 0xa2, 0x47, 0xfa, + 0xd4, 0x77, 0x22, 0x5e, 0x1c, 0xcd, 0x58, 0x0a, 0x8f, 0x2d, 0x43, 0x8b, 0x92, 0x9a, 0x75, 0xdb, + 0xef, 0x13, 0xef, 0x89, 0x71, 0x91, 0xf9, 0x73, 0x0d, 0x66, 0xb1, 0xc9, 0xe3, 0x3f, 0x64, 0x96, + 0xeb, 0x31, 0x90, 0x3f, 0x31, 0x28, 0xb1, 0xf0, 0x5a, 0x90, 0xb4, 0xc8, 0x75, 0xf5, 0xe3, 0x1b, + 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, 0xa9, 0x82, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x5a, + 0x3e, 0x80, 0x5f, 0xc7, 0x4f, 0x7c, 0xf8, 0x2f, 0x17, 0x86, 0x72, 0xec, 0x6b, 0x83, 0x87, 0x73, + 0xfa, 0x3e, 0xcc, 0xe3, 0xad, 0xaf, 0x54, 0x13, 0x1a, 0x1d, 0x98, 0xb4, 0x1d, 0x3c, 0x86, 0xd0, + 0xb8, 0x50, 0x4a, 0xaa, 0xf7, 0xf9, 0xe2, 0xdd, 0x57, 0x7e, 0x9f, 0x7f, 0x11, 0xc0, 0x76, 0x9c, + 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0x5a, 0xe0, 0x4b, 0x1c, 0xf3, 0x2d, 0x98, 0xbe, 0x16, 0xd2, 0xe1, + 0x6d, 0xe9, 0xfe, 0xf6, 0xd8, 0x1b, 0x66, 0xf9, 0xee, 0x57, 0x57, 0xef, 0x7e, 0xcd, 0x6f, 0xc0, + 0x53, 0x25, 0xc3, 0xb9, 0xb3, 0xd6, 0xf1, 0x5a, 0x3a, 0xed, 0x44, 0x84, 0x4c, 0xd5, 0xb9, 0x9c, + 0x6c, 0x8b, 0xa5, 0x08, 0x99, 0x1f, 0x68, 0xf0, 0x4c, 0x49, 0xfd, 0x6a, 0x10, 0x84, 0xf4, 0x50, + 0x60, 0x72, 0x16, 0xdd, 0xa8, 0xc5, 0xaf, 0x5e, 0x2c, 0x7e, 0x2b, 0x8d, 0x50, 0x0a, 0xf6, 0x8f, + 0xc1, 0x88, 0x9f, 0x69, 0x30, 0x27, 0x8c, 0x70, 0x1c, 0xd1, 0xed, 0x2b, 0xd0, 0xc0, 0x27, 0x2d, + 0xa2, 0xc3, 0x67, 0x2a, 0x3b, 0x4c, 0x9f, 0xe2, 0x58, 0xa2, 0x71, 0x39, 0x22, 0xf5, 0xaa, 0x19, + 0xf5, 0x95, 0x2c, 0xd8, 0xc7, 0x7e, 0x74, 0x22, 0x04, 0xcc, 0xaf, 0xa5, 0xc1, 0xbc, 0x41, 0x3c, + 0x72, 0x96, 0x3e, 0x32, 0xef, 0xc0, 0x2c, 0x7f, 0x5f, 0x93, 0xfb, 0xe0, 0x4c, 0xd4, 0xbe, 0x07, + 0x6d, 0xae, 0xf6, 0xcc, 0xed, 0xcd, 0x66, 0x07, 0xf3, 0x8f, 0xbc, 0x94, 0x9c, 0x89, 0xf6, 0x2f, + 0xc2, 0xb9, 0xd4, 0xf7, 0x77, 0x02, 0x27, 0x3b, 0x44, 0x1a, 0x71, 0x4f, 0x67, 0xbe, 0x04, 0x0b, + 0xeb, 0xd4, 0x3f, 0x24, 0x61, 0x84, 0x17, 0x89, 0x5c, 0x24, 0x95, 0x50, 0x26, 0xbf, 0xa0, 0xcc, + 0x7b, 0xb0, 0x28, 0x4b, 0xf4, 0x48, 0xbc, 0x1d, 0xba, 0x87, 0x92, 0x94, 0x38, 0xa0, 0xd6, 0x94, + 0x03, 0xea, 0xfc, 0x40, 0x5b, 0x57, 0x0e, 0xb4, 0x2f, 0x40, 0xd3, 0x8d, 0x84, 0x02, 0x1e, 0x54, + 0x53, 0x56, 0xce, 0x30, 0x6d, 0x98, 0x47, 0xf7, 0x8b, 0x0b, 0x23, 0xde, 0xc5, 0x22, 0x4c, 0x61, + 0x4c, 0x65, 0x9d, 0x64, 0xf4, 0xc8, 0xeb, 0x97, 0x91, 0x97, 0x8d, 0x66, 0x0f, 0xe6, 0xc5, 0xa3, + 0x9a, 0x6d, 0x7b, 0xe0, 0xfa, 0xb8, 0xc8, 0x5e, 0x04, 0x08, 0xec, 0x41, 0xfa, 0x00, 0x0f, 0xaf, + 0xcd, 0x24, 0x0e, 0xfb, 0x1e, 0xed, 0xd1, 0xfb, 0xe2, 0xbb, 0x8e, 0xdf, 0x73, 0x8e, 0xf9, 0x2e, + 0x18, 0x16, 0x89, 0x02, 0xea, 0x47, 0x44, 0xd2, 0xba, 0x04, 0xad, 0xf5, 0x24, 0x0c, 0x89, 0xcf, + 0xba, 0x4a, 0x5f, 0x98, 0xc9, 0x2c, 0xa6, 0xb7, 0x97, 0xeb, 0xc5, 0x23, 0x76, 0x89, 0x63, 0xfe, + 0xb8, 0x06, 0xcd, 0x9e, 0x3b, 0xf0, 0x6d, 0xcf, 0x22, 0x07, 0xc6, 0xeb, 0xd0, 0xc0, 0x2d, 0x8b, + 0x88, 0x94, 0xaa, 0x23, 0x5f, 0x6c, 0x8d, 0x7b, 0x33, 0x8b, 0x1c, 0xdc, 0xf8, 0x94, 0x25, 0x64, + 0x8c, 0x77, 0x60, 0x06, 0x7f, 0xdd, 0xc4, 0x23, 0x28, 0x91, 0xbf, 0x3e, 0x7f, 0x82, 0x12, 0xd1, + 0x1a, 0x75, 0xa9, 0x1a, 0x98, 0x41, 0x7d, 0x5e, 0xd2, 0x88, 0xe5, 0x61, 0xb4, 0x41, 0x58, 0xf9, + 0x08, 0x83, 0x50, 0x86, 0x49, 0xdb, 0xfc, 0x90, 0x46, 0x64, 0xea, 0xd1, 0xd2, 0x78, 0x96, 0x23, + 0xa4, 0x51, 0x86, 0x49, 0xef, 0x25, 0xfe, 0xe0, 0x4e, 0x20, 0xce, 0x0e, 0x47, 0x4b, 0xdf, 0xe0, + 0xcd, 0x84, 0x34, 0xca, 0x30, 0xe9, 0x90, 0x2f, 0xde, 0xdc, 0xe9, 0xc7, 0x49, 0xe3, 0x1a, 0x2f, + 0xa4, 0x51, 0x66, 0xad, 0x09, 0x93, 0x81, 0x7d, 0xe4, 0x51, 0xdb, 0x31, 0x3f, 0xac, 0x01, 0xa4, + 0x0d, 0x23, 0x5e, 0xe8, 0x28, 0x10, 0x2d, 0x9f, 0x08, 0x51, 0xe0, 0x1d, 0x49, 0x20, 0xf5, 0xaa, + 0x41, 0xfa, 0xc2, 0xb8, 0x20, 0xa1, 0xb6, 0x02, 0x4c, 0x57, 0x0b, 0x30, 0x2d, 0x9f, 0x08, 0x93, + 0x30, 0x4a, 0x00, 0x75, 0xb5, 0x00, 0xd4, 0xf2, 0x89, 0x40, 0x09, 0x79, 0x01, 0xd5, 0xd5, 0x02, + 0x54, 0xcb, 0x27, 0x42, 0x25, 0xe4, 0x05, 0x58, 0x57, 0x0b, 0x60, 0x2d, 0x9f, 0x08, 0x96, 0x90, + 0x2f, 0xc3, 0xf5, 0x57, 0x1d, 0x66, 0xb9, 0xcb, 0xf0, 0x16, 0xd6, 0xdf, 0xa5, 0xfc, 0x3e, 0x80, + 0xbb, 0x4b, 0x7d, 0xa3, 0xa9, 0x32, 0x8d, 0x17, 0x61, 0x1e, 0x19, 0x44, 0xba, 0x2e, 0xd1, 0xf9, + 0x75, 0x49, 0xf9, 0x03, 0xbf, 0x20, 0x4a, 0xa2, 0x98, 0x0e, 0x37, 0xec, 0xd8, 0x4e, 0x8b, 0xaf, + 0x9c, 0x23, 0x5f, 0xdf, 0x4d, 0x94, 0x5e, 0x8c, 0x87, 0x94, 0x0e, 0xb3, 0x7b, 0x39, 0x41, 0x31, + 0x89, 0xd8, 0x1d, 0x12, 0x9a, 0xc4, 0x62, 0x99, 0x48, 0x49, 0x7c, 0x47, 0xe5, 0xb8, 0x36, 0xbf, + 0xf4, 0x12, 0x8f, 0x8c, 0x32, 0x06, 0x5f, 0xd9, 0xf2, 0x4b, 0x3c, 0xf1, 0xa2, 0x3b, 0xe7, 0x8c, + 0x71, 0xe1, 0xc6, 0xff, 0x1c, 0xe0, 0xc6, 0xae, 0xfc, 0xf8, 0xa8, 0x6e, 0x29, 0x3c, 0xf3, 0x1f, + 0x1a, 0x9c, 0xdb, 0xb6, 0xc3, 0xd8, 0xed, 0xbb, 0x81, 0xed, 0xc7, 0x5d, 0x12, 0xdb, 0x7c, 0x9c, + 0xca, 0x63, 0x4e, 0xed, 0xe1, 0x1e, 0x73, 0x6e, 0xc3, 0xdc, 0x40, 0xdd, 0x81, 0x3c, 0xe4, 0xe6, + 0xa1, 0x28, 0xae, 0xbc, 0x4c, 0xad, 0x3d, 0xf4, 0xcb, 0x54, 0xf3, 0x7b, 0x3a, 0xcc, 0x15, 0x96, + 0xd7, 0x63, 0x73, 0xd3, 0x2a, 0x80, 0x9b, 0x85, 0xda, 0x31, 0x07, 0xf4, 0x6a, 0x3c, 0x5a, 0x92, + 0x50, 0xd5, 0x6d, 0x5f, 0xed, 0xf4, 0xb7, 0x7d, 0x37, 0xa0, 0x15, 0xe4, 0x20, 0x1d, 0xb3, 0x3f, + 0xaa, 0x80, 0xd2, 0x92, 0x45, 0xcd, 0xf7, 0x61, 0xbe, 0xb4, 0x8a, 0xf1, 0x6b, 0x3b, 0xba, 0x4f, + 0xfc, 0xec, 0xda, 0x8e, 0x11, 0x52, 0x40, 0xeb, 0xc5, 0x80, 0xf6, 0xdc, 0x43, 0xf9, 0x99, 0xbc, + 0x20, 0xcd, 0xef, 0xeb, 0xb0, 0x50, 0x9d, 0x81, 0x9e, 0x54, 0x77, 0xef, 0x40, 0x67, 0xd4, 0x6a, + 0x7f, 0x66, 0x5e, 0xcf, 0xa3, 0x3b, 0xcb, 0xd5, 0x4f, 0xaa, 0xbb, 0xcf, 0xa5, 0xd1, 0x2d, 0xa5, + 0x43, 0xf3, 0x57, 0x99, 0x7f, 0xb2, 0x6a, 0xe4, 0x09, 0xf5, 0x8f, 0x71, 0x09, 0xda, 0x38, 0x4c, + 0xe9, 0x79, 0x08, 0x16, 0xb7, 0x25, 0x7e, 0xbe, 0x52, 0x48, 0xa5, 0xc1, 0x99, 0xc5, 0xec, 0xef, + 0xb4, 0x14, 0x93, 0xac, 0xc6, 0xfb, 0x44, 0x61, 0x92, 0x47, 0x9a, 0x54, 0xf8, 0x48, 0x91, 0x96, + 0xd5, 0x9e, 0xff, 0x8f, 0xb4, 0x93, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x04, 0x9a, 0xdf, 0x86, 0x99, + 0x0d, 0xe2, 0x75, 0xa3, 0x41, 0xfa, 0x7e, 0xf5, 0x4c, 0x37, 0x93, 0xc5, 0x57, 0x7e, 0x13, 0xe5, + 0x57, 0x7e, 0x6b, 0x30, 0x2b, 0x1b, 0x70, 0x9a, 0xf7, 0x99, 0x6b, 0x17, 0xbe, 0xbe, 0xb8, 0x22, + 0xfe, 0x23, 0xfc, 0x5a, 0xc9, 0x89, 0x3b, 0x0d, 0xfe, 0xef, 0xc5, 0x97, 0xff, 0x17, 0x00, 0x00, + 0xff, 0xff, 0x01, 0xbd, 0x6f, 0xf7, 0x7c, 0x3c, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5bb67e7f0..b82964d95 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -21,6 +21,8 @@ message GroupInfo{ string creatorUserID = 11; int32 groupType = 12; int32 needVerification = 13; + int32 lookMemberInfo =14; + int32 applyMemberFriend = 15; } message GroupInfoForSet{ @@ -31,6 +33,8 @@ message GroupInfoForSet{ string faceURL = 5; string ex = 6; google.protobuf.Int32Value needVerification = 7; + google.protobuf.Int32Value lookMemberInfo = 8; + google.protobuf.Int32Value applyMemberFriend = 9; } From 95630c6d616af22a2ddbaa71bf1f1f6d57cb30cc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 12 Jul 2022 18:09:51 +0800 Subject: [PATCH 17/24] group add field --- pkg/base_info/group_api_struct.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 30faffe39..c029f0ad9 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -185,9 +185,9 @@ type SetGroupInfoReq struct { FaceURL string `json:"faceURL"` Ex string `json:"ex"` OperationID string `json:"operationID" binding:"required"` - NeedVerification *int32 `json:"needVerification" binding:"oneof=0 1 2"` - LookMemberInfo *int32 `json:"lookMemberInfo" binding:"oneof=0 1"` - ApplyMemberFriend *int32 `json:"applyMemberFriend" binding:"oneof=0 1"` + NeedVerification *int32 `json:"needVerification" ` + LookMemberInfo *int32 `json:"lookMemberInfo"` + ApplyMemberFriend *int32 `json:"applyMemberFriend"` } type SetGroupInfoResp struct { From 3b6b88fd62357c8e2adf7864c55dc7cd70ed24ae Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 12 Jul 2022 19:24:06 +0800 Subject: [PATCH 18/24] Source of joining the group --- internal/rpc/group/group.go | 20 +- pkg/base_info/group_api_struct.go | 9 +- pkg/common/constant/constant.go | 4 + pkg/common/db/model_struct.go | 21 +- pkg/proto/group/group.pb.go | 462 ++++++++++++++++-------------- pkg/proto/group/group.proto | 3 + 6 files changed, 281 insertions(+), 238 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index ea46bb005..d0966496c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -122,7 +122,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) } //to group member - groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID} + groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID, JoinSource: constant.JoinByInvitation, InviterUserID: req.OpUserID} utils.CopyStructFields(&groupMember, us) err = imdb.InsertIntoGroupMember(groupMember) if err != nil { @@ -143,6 +143,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR continue } groupMember.RoleLevel = user.RoleLevel + groupMember.JoinSource = constant.JoinByInvitation + groupMember.InviterUserID = req.OpUserID utils.CopyStructFields(&groupMember, us) err = imdb.InsertIntoGroupMember(groupMember) if err != nil { @@ -281,6 +283,8 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite var groupRequest db.GroupRequest groupRequest.UserID = v groupRequest.GroupID = req.GroupID + groupRequest.JoinSource = constant.JoinByInvitation + groupRequest.InviterUserID = req.OpUserID err = imdb.InsertIntoGroupRequest(groupRequest) if err != nil { var resultNode pbGroup.Id2Result @@ -334,6 +338,8 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite toInsertInfo.GroupID = req.GroupID toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers toInsertInfo.OperatorUserID = req.OpUserID + toInsertInfo.InviterUserID = req.OpUserID + toInsertInfo.JoinSource = constant.JoinByInvitation err = imdb.InsertIntoGroupMember(toInsertInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceURL) @@ -762,10 +768,14 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } err := imdb.UpdateGroupRequest(groupRequest) if err != nil { - //{openIM002 7836e478bc43ce1d3b8889cac983f59b 1 ok 0001-01-01 00:00:00 +0000 UTC openIM001 0001-01-01 00:00:00 +0000 UTC } log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), groupRequest) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + request, err := imdb.GetGroupRequestByGroupIDAndUserID(req.GroupID, req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.GroupID, req.FromUserID) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } if req.HandleResult == constant.GroupResponseAgree { user, err := imdb.GetUserByUserID(req.FromUserID) @@ -780,7 +790,8 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G member.OperatorUserID = req.OpUserID member.FaceURL = user.FaceURL member.Nickname = user.Nickname - + member.JoinSource = request.JoinSource + member.InviterUserID = request.InviterUserID err = imdb.InsertIntoGroupMember(member) if err != nil { log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), member) @@ -878,7 +889,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } //to group member - groupMember := db.GroupMember{GroupID: req.GroupID, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID} + groupMember := db.GroupMember{GroupID: req.GroupID, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID, JoinSource: req.JoinSource} utils.CopyStructFields(&groupMember, us) err = imdb.InsertIntoGroupMember(groupMember) if err != nil { @@ -920,6 +931,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) groupRequest.UserID = req.OpUserID groupRequest.ReqMsg = req.ReqMessage groupRequest.GroupID = req.GroupID + groupRequest.JoinSource = req.JoinSource err = imdb.InsertIntoGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupRequest failed ", err.Error(), groupRequest) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index dac6328ee..20ac2354d 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -161,10 +161,13 @@ type ApplicationGroupResponseResp struct { } type JoinGroupReq struct { - GroupID string `json:"groupID" binding:"required"` - ReqMessage string `json:"reqMessage"` - OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + ReqMessage string `json:"reqMessage"` + OperationID string `json:"operationID" binding:"required"` + JoinSource int32 `json:"joinSource"` + InviterUserID string `json:"inviterUserID"` } + type JoinGroupResp struct { CommResp } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 39fccb88e..7b6c77d12 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -172,6 +172,10 @@ const ( //UserJoinGroupSource JoinByAdmin = 1 + JoinByInvitation = 2 + JoinBySearch = 3 + JoinByQRCode = 4 + //Minio MinioDurationTimes = 3600 diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index b256a2161..1d62fcbd0 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -110,6 +110,7 @@ type GroupMember struct { RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` JoinSource int32 `gorm:"column:join_source"` + InviterUserID string `gorm:"column:inviter_user_id;primary_key;size:64"` OperatorUserID string `gorm:"column:operator_user_id;size:64"` MuteEndTime time.Time `gorm:"column:mute_end_time"` Ex string `gorm:"column:ex;size:1024"` @@ -127,15 +128,17 @@ type GroupMember struct { //string Ex = 9; //}open_im_sdk.GroupRequest == imdb.GroupRequest type GroupRequest struct { - UserID string `gorm:"column:user_id;primary_key;size:64"` - GroupID string `gorm:"column:group_id;primary_key;size:64"` - HandleResult int32 `gorm:"column:handle_result"` - ReqMsg string `gorm:"column:req_msg;size:1024"` - HandledMsg string `gorm:"column:handle_msg;size:1024"` - ReqTime time.Time `gorm:"column:req_time"` - HandleUserID string `gorm:"column:handle_user_id;size:64"` - HandledTime time.Time `gorm:"column:handle_time"` - Ex string `gorm:"column:ex;size:1024"` + UserID string `gorm:"column:user_id;primary_key;size:64"` + GroupID string `gorm:"column:group_id;primary_key;size:64"` + HandleResult int32 `gorm:"column:handle_result"` + ReqMsg string `gorm:"column:req_msg;size:1024"` + HandledMsg string `gorm:"column:handle_msg;size:1024"` + ReqTime time.Time `gorm:"column:req_time"` + HandleUserID string `gorm:"column:handle_user_id;size:64"` + HandledTime time.Time `gorm:"column:handle_time"` + JoinSource int32 `gorm:"column:join_source"` + InviterUserID string `gorm:"column:inviter_user_id;primary_key;size:64"` + Ex string `gorm:"column:ex;size:1024"` } //string UserID = 1; diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 265ec66d7..349827f6d 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{0} + return fileDescriptor_group_d529c7a0e85dbd90, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{1} + return fileDescriptor_group_d529c7a0e85dbd90, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{2} + return fileDescriptor_group_d529c7a0e85dbd90, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{3} + return fileDescriptor_group_d529c7a0e85dbd90, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{4} + return fileDescriptor_group_d529c7a0e85dbd90, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{5} + return fileDescriptor_group_d529c7a0e85dbd90, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{6} + return fileDescriptor_group_d529c7a0e85dbd90, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{7} + return fileDescriptor_group_d529c7a0e85dbd90, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{8} + return fileDescriptor_group_d529c7a0e85dbd90, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{9} + return fileDescriptor_group_d529c7a0e85dbd90, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{10} + return fileDescriptor_group_d529c7a0e85dbd90, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{11} + return fileDescriptor_group_d529c7a0e85dbd90, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{12} + return fileDescriptor_group_d529c7a0e85dbd90, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{13} + return fileDescriptor_group_d529c7a0e85dbd90, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -762,6 +762,8 @@ type JoinGroupReq struct { ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + JoinSource int32 `protobuf:"varint,5,opt,name=JoinSource" json:"JoinSource,omitempty"` + InviterUserID string `protobuf:"bytes,6,opt,name=InviterUserID" json:"InviterUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -771,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{14} + return fileDescriptor_group_d529c7a0e85dbd90, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -819,6 +821,20 @@ func (m *JoinGroupReq) GetOperationID() string { return "" } +func (m *JoinGroupReq) GetJoinSource() int32 { + if m != nil { + return m.JoinSource + } + return 0 +} + +func (m *JoinGroupReq) GetInviterUserID() string { + if m != nil { + return m.InviterUserID + } + return "" +} + type JoinGroupResp struct { CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -830,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{15} + return fileDescriptor_group_d529c7a0e85dbd90, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -873,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{16} + return fileDescriptor_group_d529c7a0e85dbd90, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -946,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{17} + return fileDescriptor_group_d529c7a0e85dbd90, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -986,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{18} + return fileDescriptor_group_d529c7a0e85dbd90, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1038,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{19} + return fileDescriptor_group_d529c7a0e85dbd90, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1080,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{20} + return fileDescriptor_group_d529c7a0e85dbd90, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1149,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{21} + return fileDescriptor_group_d529c7a0e85dbd90, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1211,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{22} + return fileDescriptor_group_d529c7a0e85dbd90, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1272,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{23} + return fileDescriptor_group_d529c7a0e85dbd90, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1328,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{24} + return fileDescriptor_group_d529c7a0e85dbd90, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1395,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{25} + return fileDescriptor_group_d529c7a0e85dbd90, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1442,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{26} + return fileDescriptor_group_d529c7a0e85dbd90, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1496,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{27} + return fileDescriptor_group_d529c7a0e85dbd90, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1550,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{28} + return fileDescriptor_group_d529c7a0e85dbd90, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1606,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{29} + return fileDescriptor_group_d529c7a0e85dbd90, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1674,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{30} + return fileDescriptor_group_d529c7a0e85dbd90, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1728,7 +1744,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{31} + return fileDescriptor_group_d529c7a0e85dbd90, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1782,7 +1798,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{32} + return fileDescriptor_group_d529c7a0e85dbd90, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1836,7 +1852,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{33} + return fileDescriptor_group_d529c7a0e85dbd90, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1890,7 +1906,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{34} + return fileDescriptor_group_d529c7a0e85dbd90, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1944,7 +1960,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{35} + return fileDescriptor_group_d529c7a0e85dbd90, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -1997,7 +2013,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{36} + return fileDescriptor_group_d529c7a0e85dbd90, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2044,7 +2060,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{37} + return fileDescriptor_group_d529c7a0e85dbd90, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2097,7 +2113,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{38} + return fileDescriptor_group_d529c7a0e85dbd90, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2144,7 +2160,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{39} + return fileDescriptor_group_d529c7a0e85dbd90, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2195,7 +2211,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{40} + return fileDescriptor_group_d529c7a0e85dbd90, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2229,7 +2245,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{41} + return fileDescriptor_group_d529c7a0e85dbd90, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2287,7 +2303,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{42} + return fileDescriptor_group_d529c7a0e85dbd90, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2319,7 +2335,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{43} + return fileDescriptor_group_d529c7a0e85dbd90, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2363,7 +2379,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{44} + return fileDescriptor_group_d529c7a0e85dbd90, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2395,7 +2411,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{45} + return fileDescriptor_group_d529c7a0e85dbd90, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2440,7 +2456,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{46} + return fileDescriptor_group_d529c7a0e85dbd90, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2481,7 +2497,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{47} + return fileDescriptor_group_d529c7a0e85dbd90, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2542,7 +2558,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{48} + return fileDescriptor_group_d529c7a0e85dbd90, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2597,7 +2613,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{49} + return fileDescriptor_group_d529c7a0e85dbd90, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2657,7 +2673,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{50} + return fileDescriptor_group_d529c7a0e85dbd90, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2705,7 +2721,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{51} + return fileDescriptor_group_d529c7a0e85dbd90, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2765,7 +2781,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{52} + return fileDescriptor_group_d529c7a0e85dbd90, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2812,7 +2828,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{53} + return fileDescriptor_group_d529c7a0e85dbd90, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2864,7 +2880,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{54} + return fileDescriptor_group_d529c7a0e85dbd90, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2906,7 +2922,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{55} + return fileDescriptor_group_d529c7a0e85dbd90, []int{55} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -2972,7 +2988,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{56} + return fileDescriptor_group_d529c7a0e85dbd90, []int{56} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -3013,7 +3029,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{57} + return fileDescriptor_group_d529c7a0e85dbd90, []int{57} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -3072,7 +3088,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{58} + return fileDescriptor_group_d529c7a0e85dbd90, []int{58} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -3112,7 +3128,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{59} + return fileDescriptor_group_d529c7a0e85dbd90, []int{59} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3164,7 +3180,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{60} + return fileDescriptor_group_d529c7a0e85dbd90, []int{60} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3204,7 +3220,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{61} + return fileDescriptor_group_d529c7a0e85dbd90, []int{61} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3256,7 +3272,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{62} + return fileDescriptor_group_d529c7a0e85dbd90, []int{62} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3298,7 +3314,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{63} + return fileDescriptor_group_d529c7a0e85dbd90, []int{63} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3364,7 +3380,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{64} + return fileDescriptor_group_d529c7a0e85dbd90, []int{64} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3404,7 +3420,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{65} + return fileDescriptor_group_d529c7a0e85dbd90, []int{65} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3457,7 +3473,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{66} + return fileDescriptor_group_d529c7a0e85dbd90, []int{66} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3504,7 +3520,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{67} + return fileDescriptor_group_d529c7a0e85dbd90, []int{67} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3557,7 +3573,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{68} + return fileDescriptor_group_d529c7a0e85dbd90, []int{68} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3609,7 +3625,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{69} + return fileDescriptor_group_d529c7a0e85dbd90, []int{69} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3696,7 +3712,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{70} + return fileDescriptor_group_d529c7a0e85dbd90, []int{70} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -4925,157 +4941,159 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_40c147a29abb4e60) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_d529c7a0e85dbd90) } -var fileDescriptor_group_40c147a29abb4e60 = []byte{ - // 2381 bytes of a gzipped FileDescriptorProto +var fileDescriptor_group_d529c7a0e85dbd90 = []byte{ + // 2407 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0x1c, 0x49, - 0x15, 0x57, 0xdb, 0x1e, 0xdb, 0xf3, 0x6c, 0x67, 0xec, 0x72, 0xc6, 0x1e, 0x77, 0xbc, 0x59, 0xa7, - 0x37, 0x2c, 0x11, 0x2c, 0xb6, 0x70, 0xa4, 0x08, 0x58, 0x44, 0x88, 0xff, 0xc5, 0x93, 0xf8, 0x0f, - 0xee, 0xc9, 0x72, 0x88, 0x84, 0xc2, 0x64, 0xba, 0x3c, 0x1a, 0x3c, 0xd3, 0xdd, 0xee, 0xea, 0xb1, - 0x03, 0x97, 0x15, 0x97, 0x95, 0x16, 0x21, 0x01, 0x42, 0xe2, 0x04, 0x82, 0x3d, 0xc1, 0x81, 0x03, - 0x07, 0x38, 0x23, 0x3e, 0x06, 0x57, 0xbe, 0x00, 0x9f, 0x00, 0x09, 0x75, 0x55, 0x75, 0x75, 0x75, - 0x57, 0x75, 0x7b, 0xd2, 0x4e, 0x36, 0x97, 0x96, 0xea, 0xd5, 0xab, 0x7a, 0xbf, 0xf7, 0xaa, 0xde, - 0xab, 0x7a, 0xaf, 0x1a, 0x16, 0xba, 0x81, 0x37, 0xf4, 0x37, 0xe8, 0x77, 0xdd, 0x0f, 0xbc, 0xd0, - 0x43, 0x15, 0xda, 0x30, 0xef, 0x1c, 0xfb, 0xd8, 0x7d, 0xd1, 0x3c, 0xdc, 0xf0, 0xcf, 0xba, 0x1b, - 0xb4, 0x67, 0x83, 0x38, 0x67, 0x2f, 0x2e, 0xc9, 0xc6, 0x25, 0x61, 0x9c, 0xe6, 0x57, 0xf3, 0x59, - 0x82, 0xb6, 0xef, 0xe3, 0x80, 0x33, 0x5a, 0xdf, 0x03, 0xd8, 0xf6, 0x06, 0x03, 0xcf, 0xb5, 0x31, - 0xf1, 0x51, 0x03, 0xa6, 0x76, 0x83, 0x60, 0xdb, 0x73, 0x70, 0xc3, 0x58, 0x33, 0xee, 0x55, 0xec, - 0xb8, 0x89, 0x96, 0x60, 0x72, 0x37, 0x08, 0x0e, 0x49, 0xb7, 0x31, 0xb6, 0x66, 0xdc, 0xab, 0xda, - 0xbc, 0x65, 0x3d, 0x01, 0xf4, 0x38, 0x02, 0xf5, 0xc8, 0x71, 0x0e, 0xf1, 0xe0, 0x25, 0x0e, 0x9a, - 0xee, 0xa9, 0x17, 0x71, 0x7f, 0x42, 0x70, 0xd0, 0xdc, 0xa1, 0xd3, 0x54, 0x6d, 0xde, 0x42, 0xab, - 0x50, 0xb5, 0xbd, 0x3e, 0x3e, 0xc0, 0x17, 0xb8, 0x4f, 0x27, 0xaa, 0xd8, 0x09, 0xc1, 0xfa, 0xaf, - 0x01, 0x37, 0xb6, 0x03, 0xdc, 0x0e, 0x31, 0x9d, 0xd2, 0xc6, 0xe7, 0xe8, 0x11, 0xdc, 0x68, 0xba, - 0xbd, 0x90, 0x4d, 0x7d, 0xd0, 0x23, 0x61, 0xc3, 0x58, 0x1b, 0xbf, 0x37, 0xb3, 0xb9, 0xb2, 0xce, - 0xec, 0xa2, 0xca, 0xb6, 0x33, 0x03, 0xd0, 0x77, 0xa0, 0x4a, 0xb9, 0xa2, 0x4e, 0x2a, 0x73, 0x66, - 0x73, 0x75, 0x9d, 0xe0, 0xe0, 0x02, 0x07, 0x2f, 0xda, 0x7e, 0xef, 0x85, 0xdf, 0x0e, 0xda, 0x03, - 0xb2, 0x2e, 0x78, 0xec, 0x84, 0x1d, 0xad, 0xc1, 0xcc, 0xb1, 0x8f, 0x83, 0x76, 0xd8, 0xf3, 0xdc, - 0xe6, 0x4e, 0x63, 0x9c, 0x2a, 0x23, 0x93, 0x90, 0x09, 0xd3, 0xc7, 0x3e, 0xd7, 0x75, 0x82, 0x76, - 0x8b, 0x36, 0x1d, 0x7d, 0xe9, 0xe2, 0x80, 0x77, 0x57, 0xf8, 0xe8, 0x84, 0x64, 0x7d, 0x0a, 0xb5, - 0x94, 0xc2, 0x65, 0x96, 0x20, 0xad, 0xe0, 0xf8, 0x6b, 0x29, 0x68, 0x05, 0x30, 0xff, 0x18, 0x87, - 0xb4, 0x4d, 0x68, 0x1f, 0x3e, 0x8f, 0x60, 0x33, 0x86, 0x1d, 0x61, 0xf0, 0xaa, 0x2d, 0x93, 0xb2, - 0x66, 0x19, 0x2b, 0x36, 0xcb, 0x78, 0xda, 0x2c, 0xd6, 0xe7, 0x06, 0x2c, 0x64, 0x84, 0x96, 0xd2, - 0x7b, 0x0b, 0xe6, 0x84, 0x22, 0x14, 0xe9, 0x38, 0xdd, 0x1a, 0xc5, 0xba, 0xa7, 0x87, 0x58, 0x7f, - 0x30, 0xa0, 0xd6, 0xe2, 0x58, 0x62, 0xfd, 0x0f, 0xa0, 0xd6, 0x8d, 0xdb, 0x7b, 0x5e, 0xd0, 0xc2, - 0x21, 0x45, 0x34, 0xb3, 0x69, 0x15, 0xcd, 0xcc, 0x38, 0xed, 0xec, 0xd0, 0x94, 0x25, 0xc6, 0x34, - 0x1b, 0xa4, 0x70, 0x7b, 0x59, 0xbb, 0x30, 0x9f, 0x86, 0x47, 0x7c, 0xf4, 0x4d, 0xd9, 0x65, 0x39, - 0xb4, 0x05, 0xee, 0x0f, 0x49, 0x87, 0x2d, 0x31, 0x59, 0x3f, 0x03, 0x33, 0xb6, 0xf8, 0x23, 0xdf, - 0xef, 0xf7, 0x3a, 0x74, 0xfe, 0xc8, 0x02, 0x91, 0xc2, 0x32, 0x44, 0xa3, 0x18, 0xa2, 0x66, 0xa9, - 0x6f, 0x03, 0xec, 0x05, 0xde, 0x20, 0xb5, 0xd8, 0x12, 0xc5, 0xfa, 0xbd, 0x01, 0xb7, 0x72, 0x85, - 0x97, 0x5a, 0xf8, 0xa7, 0x30, 0x1f, 0x07, 0x88, 0x21, 0x26, 0xa1, 0xb4, 0xf6, 0xef, 0xe7, 0xad, - 0x10, 0x67, 0xb5, 0x95, 0x81, 0x56, 0x08, 0xab, 0x8f, 0x71, 0x18, 0x61, 0xb5, 0xf1, 0xb9, 0xc6, - 0x38, 0x79, 0xa1, 0xec, 0x7a, 0xeb, 0xfa, 0x47, 0x03, 0xde, 0x2b, 0x10, 0x5b, 0x6a, 0x95, 0xb5, - 0x76, 0x19, 0x2b, 0x6b, 0x97, 0x7f, 0x1a, 0x50, 0x7f, 0x16, 0xb4, 0x5d, 0x72, 0x8a, 0x03, 0xda, - 0x49, 0xe3, 0x56, 0x64, 0x91, 0x06, 0x4c, 0xf1, 0x60, 0xc0, 0x4d, 0x12, 0x37, 0xd1, 0x87, 0x70, - 0xe3, 0xb8, 0xef, 0xc8, 0x31, 0x8f, 0x59, 0x26, 0x43, 0x8d, 0xf8, 0x8e, 0xf0, 0xa5, 0xcc, 0xc7, - 0x4c, 0x94, 0xa1, 0x66, 0xed, 0x38, 0x51, 0x1c, 0x67, 0x2a, 0x99, 0x38, 0xf3, 0x14, 0x96, 0x74, - 0x0a, 0x94, 0xf3, 0xa0, 0xcf, 0x0c, 0x98, 0x7d, 0xe2, 0xf5, 0x5c, 0x71, 0x32, 0xe5, 0x5b, 0xe1, - 0x36, 0x80, 0x8d, 0xcf, 0x0f, 0x31, 0x21, 0xed, 0x2e, 0xe6, 0x16, 0x90, 0x28, 0x45, 0xb1, 0xf1, - 0x6a, 0x8d, 0xad, 0x2d, 0x98, 0x93, 0x70, 0x94, 0x53, 0xe6, 0xdf, 0x91, 0x4b, 0x66, 0xfc, 0x31, - 0xea, 0xf0, 0x5c, 0x82, 0xf9, 0x09, 0x20, 0xa3, 0x30, 0x8a, 0xed, 0x9e, 0xdd, 0xfd, 0x92, 0x65, - 0xc6, 0x15, 0xcb, 0x48, 0xa1, 0x62, 0x22, 0x1b, 0x2a, 0xa2, 0xfe, 0xfd, 0xb6, 0xeb, 0xf4, 0xb1, - 0x13, 0x39, 0x3d, 0x5b, 0x4f, 0x89, 0x82, 0x2c, 0x98, 0x65, 0x2d, 0x1b, 0x93, 0x61, 0x3f, 0x6c, - 0x4c, 0xd2, 0x78, 0x91, 0xa2, 0x59, 0x27, 0xb0, 0x9a, 0xaf, 0x5a, 0x39, 0x73, 0x9d, 0xc2, 0xec, - 0xc9, 0xb0, 0x17, 0x8e, 0xb0, 0xf4, 0xd7, 0x3b, 0x18, 0xb7, 0x60, 0x4e, 0x92, 0x53, 0x0e, 0xeb, - 0x17, 0x06, 0xd4, 0xe3, 0x68, 0x9b, 0x5c, 0x82, 0x8a, 0x51, 0x5f, 0x2b, 0x94, 0x45, 0x01, 0x72, - 0xaf, 0xd7, 0x0f, 0x71, 0x40, 0x17, 0xb4, 0x62, 0xf3, 0x56, 0x24, 0xef, 0x08, 0xbf, 0x0a, 0x5b, - 0xf8, 0x9c, 0xae, 0x64, 0xc5, 0x8e, 0x9b, 0xd6, 0x5f, 0x0d, 0x58, 0xd2, 0x61, 0x2c, 0x75, 0x18, - 0xec, 0x01, 0x0c, 0x92, 0xdb, 0x21, 0x3b, 0x06, 0x3e, 0xcc, 0x0b, 0x77, 0x4c, 0xda, 0xde, 0xb0, - 0xdf, 0xa7, 0xa7, 0xa9, 0x34, 0x32, 0x92, 0xec, 0x72, 0xb8, 0x4c, 0x8f, 0xb8, 0x69, 0xfd, 0x5a, - 0x81, 0x2b, 0xae, 0x4a, 0x85, 0x41, 0x40, 0x82, 0x35, 0x46, 0xef, 0x50, 0xb2, 0xb8, 0xeb, 0x05, - 0x81, 0xdf, 0x1a, 0xb0, 0xac, 0x85, 0xf4, 0x2e, 0x4d, 0x68, 0xfd, 0xcd, 0x00, 0xf4, 0xb4, 0xd7, - 0x39, 0x93, 0xf8, 0x8a, 0x8d, 0xf4, 0x35, 0x98, 0x8f, 0xf8, 0xb1, 0xc3, 0x14, 0x97, 0x4c, 0xa5, - 0xd0, 0x23, 0xf0, 0x36, 0x6e, 0x13, 0xcf, 0xe5, 0xe6, 0xe2, 0xad, 0xac, 0xb1, 0x2a, 0xc5, 0x2e, - 0x37, 0x99, 0x71, 0xb9, 0x8f, 0xa1, 0xda, 0x74, 0x36, 0x59, 0xe8, 0xc8, 0x3d, 0xea, 0xa9, 0x68, - 0x1a, 0x70, 0x58, 0xca, 0xc2, 0x5b, 0xd6, 0xa7, 0xb0, 0xa8, 0xa8, 0x5b, 0x6a, 0x01, 0x1e, 0xc0, - 0x9c, 0x40, 0x21, 0xad, 0xc1, 0x3c, 0x77, 0x75, 0xd1, 0x67, 0xa7, 0xd9, 0xac, 0x21, 0xf5, 0xf5, - 0xe8, 0x38, 0xc0, 0x0e, 0x45, 0x11, 0xfb, 0x7a, 0x3a, 0xd0, 0x1a, 0x4a, 0xa0, 0x5d, 0x83, 0x19, - 0x4f, 0x8d, 0x53, 0xde, 0x88, 0x71, 0xea, 0x33, 0xe6, 0x10, 0x8a, 0xdc, 0x6b, 0x65, 0x2f, 0x23, - 0xdf, 0xe0, 0x13, 0x76, 0xeb, 0xef, 0x06, 0xdc, 0x6c, 0xba, 0x17, 0xbd, 0x10, 0x47, 0xc8, 0x9e, - 0x79, 0x22, 0x42, 0x5f, 0x1d, 0x87, 0xf3, 0x0f, 0xa9, 0x64, 0xa3, 0x4d, 0xa4, 0x36, 0xda, 0x47, - 0xb0, 0xc0, 0x64, 0xc9, 0xbb, 0xb5, 0x42, 0x77, 0xab, 0xda, 0x51, 0xb8, 0xe9, 0x7e, 0x6e, 0x40, - 0x5d, 0x03, 0xfb, 0x4b, 0xdd, 0x3a, 0x2e, 0xdc, 0x14, 0x97, 0xf2, 0x7e, 0x7f, 0x14, 0x67, 0xbd, - 0xde, 0x85, 0xf7, 0x37, 0xd2, 0xb9, 0x24, 0x09, 0x7c, 0xa7, 0xf1, 0xea, 0x77, 0x06, 0x4c, 0x6f, - 0x1f, 0xb6, 0x28, 0x5b, 0x3a, 0x8b, 0x36, 0x5e, 0xaf, 0x4c, 0x70, 0x0f, 0x6a, 0x4c, 0x56, 0x9b, - 0x84, 0x38, 0x38, 0x6a, 0x0f, 0xe2, 0x6b, 0x5f, 0x96, 0x8c, 0xee, 0xf2, 0x9c, 0x95, 0x91, 0x9a, - 0x0e, 0x37, 0x55, 0x9a, 0x18, 0x85, 0xf7, 0x99, 0xd8, 0x58, 0xd1, 0xa2, 0xac, 0x72, 0x6c, 0x74, - 0x66, 0xb6, 0x2c, 0x09, 0x01, 0xed, 0x00, 0xfc, 0xa0, 0xdd, 0xed, 0xb9, 0xd4, 0xd4, 0xbc, 0xc2, - 0x71, 0x57, 0x03, 0x9d, 0xdf, 0xee, 0x13, 0x5e, 0x5b, 0x1a, 0x37, 0xc2, 0x12, 0x7e, 0x61, 0xc0, - 0x6c, 0x82, 0x8a, 0xf8, 0xe8, 0x1b, 0x50, 0x8d, 0xcd, 0x47, 0x78, 0x5d, 0xa6, 0x16, 0xdf, 0x4e, - 0x38, 0xdd, 0x4e, 0x38, 0xde, 0x10, 0x4e, 0x61, 0x8b, 0xe1, 0x80, 0x50, 0x94, 0x15, 0x3b, 0x21, - 0x58, 0x17, 0x09, 0x44, 0x12, 0x59, 0x2e, 0x2d, 0xd3, 0x78, 0x33, 0xb6, 0x51, 0xc3, 0x89, 0xf5, - 0x27, 0x03, 0xe6, 0x24, 0xc1, 0xef, 0xca, 0x38, 0x26, 0x4c, 0xc7, 0xb6, 0xe0, 0xb6, 0x11, 0x6d, - 0xeb, 0x38, 0xa9, 0xba, 0x68, 0xdc, 0xdd, 0x49, 0xbb, 0xbb, 0x33, 0x82, 0xce, 0x67, 0x50, 0x67, - 0x4d, 0x56, 0xbd, 0x6a, 0x85, 0xed, 0x70, 0x48, 0x8a, 0x27, 0x5d, 0x82, 0x49, 0xc6, 0x16, 0x9f, - 0xa4, 0xac, 0x35, 0xc2, 0xe6, 0x6b, 0xc0, 0x92, 0x4e, 0x18, 0xcb, 0xcc, 0x10, 0xef, 0xa2, 0xe9, - 0xb4, 0xd7, 0xc7, 0x57, 0x82, 0xa0, 0x61, 0xcb, 0x89, 0xc3, 0x0a, 0x6b, 0xa5, 0x8b, 0x93, 0xe3, - 0x99, 0xe2, 0xe4, 0x08, 0x97, 0xb2, 0x3a, 0x2c, 0x2a, 0x38, 0x88, 0x6f, 0x1d, 0xc0, 0x8d, 0x1d, - 0xdc, 0xc7, 0x52, 0x51, 0xf3, 0x3a, 0x46, 0x5f, 0x80, 0x5a, 0x6a, 0x36, 0xe2, 0x5b, 0x87, 0x50, - 0x8b, 0x17, 0x76, 0xeb, 0xa7, 0x4d, 0xe7, 0xba, 0x12, 0x1e, 0x26, 0x25, 0x41, 0x36, 0x1d, 0xf1, - 0xd1, 0xd7, 0x93, 0x40, 0xc9, 0x9d, 0x48, 0xd9, 0xcb, 0x82, 0xc1, 0xfa, 0x87, 0x92, 0x82, 0x90, - 0xed, 0xc3, 0x56, 0x31, 0x2c, 0x13, 0xa6, 0x23, 0xa3, 0x49, 0xa1, 0x53, 0xb4, 0x33, 0xae, 0x31, - 0xfe, 0x66, 0x7c, 0x58, 0xb3, 0x7e, 0xff, 0x52, 0xef, 0xf9, 0x14, 0x37, 0xf1, 0xd1, 0xf7, 0x61, - 0x8a, 0x9d, 0x1b, 0xb1, 0x2b, 0x8f, 0x7a, 0xdc, 0xc4, 0xc3, 0xd0, 0xae, 0xc6, 0xbf, 0xbf, 0xa2, - 0x55, 0x82, 0xe5, 0xaa, 0x39, 0x5a, 0xdc, 0x06, 0x60, 0x12, 0xa4, 0xf0, 0x27, 0x51, 0xac, 0x5f, - 0x1a, 0xd0, 0xb0, 0xf1, 0xc0, 0xbb, 0xc0, 0xaf, 0x65, 0xfe, 0x06, 0x4c, 0x31, 0x27, 0x20, 0xfc, - 0xfe, 0x1d, 0x37, 0x5f, 0xab, 0x02, 0xee, 0x64, 0x2a, 0xe0, 0x8e, 0x75, 0x08, 0x2b, 0x39, 0x68, - 0xd8, 0xc1, 0x4f, 0x86, 0x9d, 0x0e, 0x26, 0x84, 0xd7, 0x98, 0xe3, 0x66, 0xe4, 0xa1, 0xa7, 0xed, - 0x5e, 0x1f, 0x3b, 0x1c, 0x0d, 0x6f, 0x59, 0x9f, 0x1b, 0x50, 0x7f, 0xe4, 0x38, 0x6f, 0x43, 0x35, - 0x47, 0x55, 0xcd, 0x29, 0x54, 0xed, 0x09, 0x2c, 0xe9, 0xa0, 0x94, 0xd2, 0xab, 0x07, 0xb5, 0x9d, - 0x1e, 0x19, 0xf4, 0x08, 0x11, 0x31, 0xc2, 0x84, 0x69, 0x2f, 0x53, 0x93, 0xf5, 0xfc, 0x91, 0x6f, - 0xef, 0x0d, 0x98, 0xea, 0xa6, 0x6f, 0xb7, 0xbc, 0x69, 0xed, 0xc2, 0x7c, 0x5a, 0x14, 0x2b, 0x33, - 0x74, 0x46, 0x29, 0x33, 0x24, 0x4c, 0xd6, 0x5f, 0x0c, 0x40, 0x87, 0xc3, 0x10, 0x67, 0x8e, 0x93, - 0xb7, 0x84, 0x3a, 0x32, 0xdc, 0x50, 0x2e, 0x1a, 0xf1, 0x16, 0xb2, 0x60, 0x76, 0x30, 0x0c, 0xb1, - 0xd3, 0xc2, 0x1d, 0xcf, 0x75, 0x08, 0xcd, 0xfe, 0xe6, 0xec, 0x14, 0xcd, 0xda, 0x87, 0x45, 0x05, - 0x69, 0x39, 0xa5, 0x7f, 0x61, 0x40, 0x63, 0xbb, 0xed, 0x76, 0x70, 0xff, 0xdd, 0xab, 0x6e, 0x1d, - 0xc1, 0x4a, 0x0e, 0x96, 0x72, 0xca, 0x9d, 0xc2, 0xac, 0x98, 0xe9, 0x6d, 0x6e, 0xc0, 0x2d, 0x98, - 0x93, 0xe4, 0x94, 0xc3, 0xda, 0x07, 0x94, 0xd1, 0xfd, 0x6d, 0x22, 0xde, 0x87, 0x45, 0x45, 0x5a, - 0x39, 0xdc, 0x7f, 0x36, 0x60, 0xa5, 0x95, 0x3a, 0x61, 0x8e, 0x7a, 0x9d, 0x33, 0xb7, 0x3d, 0x88, - 0x6f, 0x2c, 0xdd, 0x74, 0xea, 0xd5, 0x4d, 0x52, 0x2f, 0x97, 0x33, 0xc6, 0xa7, 0x63, 0xdc, 0x4e, - 0x69, 0x3d, 0x5e, 0xac, 0xf5, 0x84, 0xaa, 0x75, 0xb2, 0xbb, 0x2a, 0xa9, 0xdd, 0x75, 0x0c, 0x66, - 0x1e, 0xd0, 0x72, 0x75, 0xc9, 0x80, 0xbe, 0x40, 0xb1, 0x92, 0x41, 0x6b, 0xe8, 0xf3, 0x92, 0x7c, - 0x5c, 0xaf, 0xc8, 0x00, 0x35, 0x8a, 0x80, 0x8e, 0xa5, 0x22, 0x40, 0x81, 0xfa, 0xd1, 0x61, 0x78, - 0x2b, 0x57, 0x68, 0xa9, 0x15, 0xbc, 0x56, 0xb5, 0xe2, 0x92, 0x5e, 0x8b, 0x12, 0x1c, 0x5f, 0xda, - 0x83, 0xeb, 0xaf, 0xd8, 0xc5, 0x46, 0x91, 0x5c, 0xce, 0x04, 0x6f, 0xe2, 0xd9, 0xf5, 0x3f, 0x63, - 0x50, 0x4f, 0xef, 0x2f, 0xa9, 0xa2, 0x9a, 0xe3, 0x04, 0x25, 0x76, 0xc0, 0x08, 0x0e, 0xf0, 0x2d, - 0xc9, 0xb5, 0x2a, 0x3c, 0xeb, 0xef, 0x7a, 0x5e, 0xb7, 0x8f, 0xd9, 0x0f, 0x12, 0x2f, 0x87, 0xa7, - 0xeb, 0xad, 0x30, 0xe8, 0xb9, 0xdd, 0x1f, 0xb6, 0xfb, 0x43, 0x2c, 0x39, 0xde, 0x03, 0x98, 0x3a, - 0x6d, 0x77, 0xf0, 0x27, 0xf6, 0x01, 0x2d, 0xf0, 0x5c, 0x35, 0x30, 0x66, 0x46, 0xdf, 0x86, 0x6a, - 0x20, 0xd2, 0x8c, 0x29, 0x3a, 0xf2, 0x96, 0x32, 0xb2, 0xe9, 0x86, 0xf7, 0x37, 0xd9, 0xc0, 0x84, - 0x1b, 0x7d, 0x04, 0x63, 0xf8, 0x55, 0x63, 0x7a, 0x04, 0x69, 0x63, 0xf8, 0x95, 0xf5, 0x14, 0x96, - 0x74, 0x36, 0x2e, 0xe5, 0xbf, 0x9b, 0xff, 0x5b, 0x04, 0xf6, 0xf7, 0x09, 0xfa, 0x2e, 0xcc, 0x74, - 0x92, 0x7f, 0x16, 0x50, 0x3d, 0x1e, 0x97, 0xfa, 0x71, 0xc3, 0x5c, 0xd2, 0x91, 0x89, 0x8f, 0x1e, - 0x40, 0xf5, 0x27, 0xf1, 0xf3, 0x15, 0x5a, 0xe4, 0x4c, 0xf2, 0xc3, 0x9a, 0x79, 0x53, 0x25, 0xb2, - 0x71, 0xe7, 0xf1, 0xdb, 0x88, 0x18, 0x27, 0xbf, 0xca, 0x88, 0x71, 0xe9, 0x27, 0x94, 0x2d, 0x98, - 0xeb, 0xca, 0xff, 0x1a, 0xa0, 0xe5, 0xf8, 0xcf, 0x91, 0xcc, 0x6f, 0x0f, 0x66, 0x43, 0xdf, 0x41, - 0x7c, 0xf4, 0x10, 0x66, 0x89, 0xf4, 0x08, 0x8f, 0x62, 0xdd, 0x32, 0x3f, 0x0e, 0x98, 0xcb, 0x5a, - 0x3a, 0xf1, 0xd1, 0x8f, 0x61, 0xb9, 0xab, 0x7f, 0x01, 0x47, 0x77, 0x32, 0x52, 0xd5, 0x17, 0x68, - 0xd3, 0xba, 0x8a, 0x85, 0xf8, 0xe8, 0x14, 0x56, 0xba, 0x79, 0xcf, 0xc9, 0xe8, 0x83, 0x64, 0x82, - 0xdc, 0x77, 0x6e, 0xf3, 0xee, 0xd5, 0x4c, 0xc4, 0x47, 0x27, 0x80, 0x42, 0xe5, 0x4d, 0x15, 0xad, - 0xf2, 0xb1, 0xda, 0xf7, 0x62, 0xf3, 0xbd, 0x82, 0x5e, 0xe2, 0xa3, 0x0e, 0x34, 0xba, 0x39, 0x0f, - 0x76, 0xc8, 0x4a, 0xfd, 0xe6, 0xa3, 0x7d, 0xac, 0x34, 0x3f, 0xb8, 0x92, 0x87, 0xe1, 0xee, 0x2a, - 0x2f, 0x4e, 0x02, 0xb7, 0xf6, 0xc1, 0x4c, 0xe0, 0xce, 0x79, 0xaa, 0x7a, 0x06, 0x8b, 0x5d, 0xf5, - 0x09, 0x06, 0xe9, 0x47, 0x89, 0x5d, 0x76, 0xbb, 0xa8, 0x9b, 0xf8, 0x68, 0x1f, 0x6a, 0x67, 0xe9, - 0x37, 0x05, 0x14, 0xff, 0xeb, 0xa4, 0x3e, 0xad, 0x98, 0x66, 0x5e, 0x97, 0x50, 0x39, 0x53, 0xa4, - 0x97, 0x55, 0x56, 0xdf, 0x0d, 0x64, 0x95, 0x75, 0xd5, 0xfd, 0x23, 0x58, 0xe8, 0x65, 0xeb, 0xd6, - 0xe8, 0x56, 0x5c, 0x6a, 0xd6, 0x14, 0xe2, 0xcd, 0xd5, 0xfc, 0x4e, 0x36, 0x5f, 0x37, 0x5b, 0x13, - 0x16, 0xf3, 0xe9, 0xca, 0xd3, 0xe6, 0x6a, 0x7e, 0x27, 0x73, 0x54, 0xb9, 0x74, 0x21, 0x1c, 0x35, - 0x53, 0x1e, 0x31, 0x97, 0xb5, 0x74, 0xe2, 0xa3, 0xfb, 0x30, 0x1d, 0xd3, 0x10, 0xca, 0x30, 0x45, - 0x03, 0x17, 0x15, 0x1a, 0x0b, 0x4d, 0x22, 0x66, 0xa0, 0x2c, 0x07, 0x91, 0x43, 0x53, 0xba, 0x42, - 0x78, 0x22, 0xea, 0x56, 0x52, 0x49, 0x4b, 0x2c, 0x90, 0xb6, 0xb4, 0x26, 0x16, 0x48, 0x5f, 0x0b, - 0x8b, 0x76, 0x4f, 0xa6, 0x04, 0x25, 0x76, 0x8f, 0x5a, 0x22, 0x13, 0xbb, 0x47, 0x53, 0xb5, 0x8a, - 0xa2, 0xbc, 0x54, 0x67, 0x12, 0x51, 0x3e, 0x5d, 0xc9, 0x12, 0x51, 0x3e, 0x53, 0x92, 0x8a, 0x54, - 0x53, 0x2b, 0x29, 0x39, 0xee, 0xc6, 0x53, 0xf8, 0x1c, 0x77, 0x13, 0x59, 0xf5, 0x73, 0xa8, 0x6b, - 0x4b, 0x09, 0xe8, 0x7d, 0x3e, 0x2e, 0xaf, 0xec, 0x61, 0xae, 0x15, 0x33, 0x30, 0xb8, 0x6a, 0x2e, - 0x2f, 0xe0, 0x6a, 0x2b, 0x0e, 0x02, 0x6e, 0x4e, 0x11, 0xe0, 0x21, 0xcc, 0xca, 0x79, 0xb6, 0xd8, - 0x8a, 0x99, 0x3c, 0x5f, 0x6c, 0x45, 0x25, 0x29, 0xdf, 0x87, 0x5a, 0x26, 0xb3, 0x13, 0x4b, 0xa9, - 0x66, 0x9f, 0x62, 0x29, 0x75, 0xc9, 0xe0, 0x73, 0xa8, 0x6b, 0x33, 0x45, 0x61, 0xb9, 0xbc, 0x9c, - 0x56, 0x58, 0x2e, 0x3f, 0xd1, 0x7c, 0x00, 0x55, 0x41, 0x16, 0x7b, 0x5f, 0xce, 0xca, 0xc4, 0xde, - 0x4f, 0x27, 0x4f, 0xfb, 0x50, 0xcb, 0x4c, 0x2a, 0xb4, 0x53, 0x33, 0x3b, 0xa1, 0x9d, 0x2e, 0x0d, - 0xfb, 0x51, 0xf6, 0x96, 0x13, 0x67, 0x2a, 0x68, 0x2d, 0x73, 0x1c, 0x2b, 0x19, 0x97, 0x79, 0xe7, - 0x0a, 0x0e, 0x76, 0x74, 0xe7, 0xa4, 0x10, 0xf2, 0xd1, 0x9d, 0x93, 0xd7, 0xc8, 0x47, 0x77, 0x6e, - 0x16, 0xc2, 0x7c, 0x25, 0x73, 0x39, 0x97, 0x7d, 0x45, 0xcd, 0x18, 0x64, 0x5f, 0xd1, 0xdd, 0xea, - 0x4f, 0x00, 0xa9, 0x37, 0x3f, 0x31, 0xa5, 0xf6, 0xe2, 0x2d, 0xa6, 0xd4, 0x5f, 0x19, 0xb7, 0x6a, - 0xcf, 0xe7, 0xd6, 0xd9, 0xbf, 0xc8, 0x1f, 0xd3, 0xef, 0xcb, 0x49, 0x7a, 0xef, 0xbc, 0xff, 0xff, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x70, 0x4b, 0xcf, 0xa7, 0x2c, 0x00, 0x00, + 0x15, 0x57, 0xdb, 0x99, 0xd8, 0xf3, 0xec, 0xc9, 0xd8, 0xe5, 0x8c, 0x33, 0xee, 0x78, 0xbd, 0x4e, + 0x6d, 0x58, 0x22, 0x58, 0x6c, 0xe1, 0x48, 0x11, 0xb0, 0x88, 0x10, 0xff, 0x8b, 0x27, 0xf1, 0x1f, + 0xdc, 0x93, 0xe5, 0x10, 0x09, 0x85, 0xc9, 0x74, 0x79, 0x34, 0x78, 0xa6, 0xbb, 0xdd, 0xd5, 0x63, + 0x07, 0x2e, 0x2b, 0x2e, 0x48, 0x8b, 0x90, 0x00, 0x21, 0x71, 0x02, 0xc1, 0x9e, 0xe0, 0xc0, 0x81, + 0x03, 0x9c, 0x11, 0x77, 0xbe, 0x00, 0x57, 0xbe, 0x00, 0x9f, 0x00, 0x09, 0x75, 0x55, 0x75, 0x75, + 0x75, 0x77, 0x75, 0x7b, 0xd2, 0x4e, 0x36, 0x97, 0x96, 0xea, 0xd5, 0xab, 0xaa, 0xdf, 0x7b, 0xf5, + 0xde, 0xab, 0x7a, 0xaf, 0x1a, 0xe6, 0x7b, 0xbe, 0x3b, 0xf2, 0xd6, 0xd9, 0x77, 0xcd, 0xf3, 0xdd, + 0xc0, 0x45, 0x15, 0xd6, 0x30, 0xef, 0x1c, 0x79, 0xc4, 0x79, 0xd1, 0x3a, 0x58, 0xf7, 0x4e, 0x7b, + 0xeb, 0xac, 0x67, 0x9d, 0xda, 0xa7, 0x2f, 0x2e, 0xe8, 0xfa, 0x05, 0xe5, 0x9c, 0xe6, 0x97, 0xf3, + 0x59, 0xfc, 0x8e, 0xe7, 0x11, 0x5f, 0x30, 0xe2, 0xef, 0x00, 0x6c, 0xb9, 0xc3, 0xa1, 0xeb, 0x58, + 0x84, 0x7a, 0xa8, 0x09, 0x53, 0x3b, 0xbe, 0xbf, 0xe5, 0xda, 0xa4, 0x69, 0xac, 0x1a, 0xf7, 0x2a, + 0x56, 0xd4, 0x44, 0x8b, 0x70, 0x7d, 0xc7, 0xf7, 0x0f, 0x68, 0xaf, 0x39, 0xb1, 0x6a, 0xdc, 0xab, + 0x5a, 0xa2, 0x85, 0x9f, 0x00, 0x7a, 0x1c, 0x82, 0x7a, 0x64, 0xdb, 0x07, 0x64, 0xf8, 0x92, 0xf8, + 0x2d, 0xe7, 0xc4, 0x0d, 0xb9, 0x3f, 0xa1, 0xc4, 0x6f, 0x6d, 0xb3, 0x69, 0xaa, 0x96, 0x68, 0xa1, + 0x65, 0xa8, 0x5a, 0xee, 0x80, 0xec, 0x93, 0x73, 0x32, 0x60, 0x13, 0x55, 0xac, 0x98, 0x80, 0xff, + 0x6b, 0xc0, 0x8d, 0x2d, 0x9f, 0x74, 0x02, 0xc2, 0xa6, 0xb4, 0xc8, 0x19, 0x7a, 0x04, 0x37, 0x5a, + 0x4e, 0x3f, 0xe0, 0x53, 0xef, 0xf7, 0x69, 0xd0, 0x34, 0x56, 0x27, 0xef, 0xcd, 0x6c, 0x2c, 0xad, + 0x71, 0xbd, 0x64, 0xd7, 0xb6, 0x52, 0x03, 0xd0, 0xb7, 0xa0, 0xca, 0xb8, 0xc2, 0x4e, 0xb6, 0xe6, + 0xcc, 0xc6, 0xf2, 0x1a, 0x25, 0xfe, 0x39, 0xf1, 0x5f, 0x74, 0xbc, 0xfe, 0x0b, 0xaf, 0xe3, 0x77, + 0x86, 0x74, 0x4d, 0xf2, 0x58, 0x31, 0x3b, 0x5a, 0x85, 0x99, 0x23, 0x8f, 0xf8, 0x9d, 0xa0, 0xef, + 0x3a, 0xad, 0xed, 0xe6, 0x24, 0x13, 0x46, 0x25, 0x21, 0x13, 0xa6, 0x8f, 0x3c, 0x21, 0xeb, 0x35, + 0xd6, 0x2d, 0xdb, 0x6c, 0xf4, 0x85, 0x43, 0x7c, 0xd1, 0x5d, 0x11, 0xa3, 0x63, 0x12, 0xfe, 0x14, + 0xea, 0x09, 0x81, 0xcb, 0x6c, 0x41, 0x52, 0xc0, 0xc9, 0xd7, 0x12, 0x10, 0xfb, 0x30, 0xf7, 0x98, + 0x04, 0xac, 0x4d, 0x59, 0x1f, 0x39, 0x0b, 0x61, 0x73, 0x86, 0x6d, 0xa9, 0xf0, 0xaa, 0xa5, 0x92, + 0xd2, 0x6a, 0x99, 0x28, 0x56, 0xcb, 0x64, 0x52, 0x2d, 0xf8, 0x33, 0x03, 0xe6, 0x53, 0x8b, 0x96, + 0x92, 0x7b, 0x13, 0x6a, 0x52, 0x10, 0x86, 0x74, 0x92, 0x99, 0x46, 0xb1, 0xec, 0xc9, 0x21, 0xf8, + 0xf7, 0x06, 0xd4, 0xdb, 0x02, 0x4b, 0x24, 0xff, 0x3e, 0xd4, 0x7b, 0x51, 0x7b, 0xd7, 0xf5, 0xdb, + 0x24, 0x60, 0x88, 0x66, 0x36, 0x70, 0xd1, 0xcc, 0x9c, 0xd3, 0x4a, 0x0f, 0x4d, 0x68, 0x62, 0x42, + 0x63, 0x20, 0x85, 0xe6, 0x85, 0x77, 0x60, 0x2e, 0x09, 0x8f, 0x7a, 0xe8, 0xeb, 0xaa, 0xcb, 0x0a, + 0x68, 0xf3, 0xc2, 0x1f, 0xe2, 0x0e, 0x4b, 0x61, 0xc2, 0x3f, 0x01, 0x33, 0xd2, 0xf8, 0x23, 0xcf, + 0x1b, 0xf4, 0xbb, 0x6c, 0xfe, 0x50, 0x03, 0xa1, 0xc0, 0x2a, 0x44, 0xa3, 0x18, 0xa2, 0x66, 0xab, + 0x57, 0x00, 0x76, 0x7d, 0x77, 0x98, 0xd8, 0x6c, 0x85, 0x82, 0x7f, 0x67, 0xc0, 0xed, 0xdc, 0xc5, + 0x4b, 0x6d, 0xfc, 0x53, 0x98, 0x8b, 0x02, 0xc4, 0x88, 0xd0, 0x40, 0xd9, 0xfb, 0xf7, 0xf3, 0x76, + 0x48, 0xb0, 0x5a, 0x99, 0x81, 0x38, 0x80, 0xe5, 0xc7, 0x24, 0x08, 0xb1, 0x5a, 0xe4, 0x4c, 0xa3, + 0x9c, 0xbc, 0x50, 0x76, 0xb5, 0x7d, 0xfd, 0x83, 0x01, 0xef, 0x15, 0x2c, 0x5b, 0x6a, 0x97, 0xb5, + 0x7a, 0x99, 0x28, 0xab, 0x97, 0x7f, 0x18, 0xd0, 0x78, 0xe6, 0x77, 0x1c, 0x7a, 0x42, 0x7c, 0xd6, + 0xc9, 0xe2, 0x56, 0xa8, 0x91, 0x26, 0x4c, 0x89, 0x60, 0x20, 0x54, 0x12, 0x35, 0xd1, 0x87, 0x70, + 0xe3, 0x68, 0x60, 0xab, 0x31, 0x8f, 0x6b, 0x26, 0x45, 0x0d, 0xf9, 0x0e, 0xc9, 0x85, 0xca, 0xc7, + 0x55, 0x94, 0xa2, 0xa6, 0xf5, 0x78, 0xad, 0x38, 0xce, 0x54, 0x52, 0x71, 0xe6, 0x29, 0x2c, 0xea, + 0x04, 0x28, 0xe7, 0x41, 0xff, 0x32, 0x60, 0xf6, 0x89, 0xdb, 0x77, 0xe4, 0xc9, 0x94, 0xaf, 0x85, + 0x15, 0x00, 0x8b, 0x9c, 0x1d, 0x10, 0x4a, 0x3b, 0x3d, 0x22, 0x34, 0xa0, 0x50, 0x8a, 0x62, 0xe3, + 0x18, 0x12, 0xaf, 0x00, 0x84, 0x38, 0xda, 0xee, 0xc8, 0xef, 0x12, 0x26, 0x73, 0xc5, 0x52, 0x28, + 0xe8, 0x2e, 0xd4, 0x5a, 0xce, 0x79, 0x3f, 0x90, 0xaa, 0xbd, 0xce, 0xe6, 0x48, 0x12, 0xf1, 0x26, + 0xd4, 0x14, 0x69, 0xca, 0xa9, 0xe4, 0xdf, 0xa1, 0x63, 0xa7, 0xbc, 0x3a, 0xec, 0x70, 0x1d, 0x4a, + 0xc4, 0x39, 0xa2, 0xca, 0x62, 0x14, 0xef, 0x5e, 0xda, 0x87, 0x14, 0xfd, 0x4e, 0x66, 0xf4, 0xab, + 0x04, 0x9c, 0x6b, 0xe9, 0x80, 0x13, 0xf6, 0xef, 0x75, 0x1c, 0x7b, 0x40, 0xec, 0x30, 0x74, 0x70, + 0xab, 0x50, 0x28, 0x08, 0xc3, 0x2c, 0x6f, 0x59, 0x84, 0x8e, 0x06, 0x01, 0x53, 0x50, 0xc5, 0x4a, + 0xd0, 0xf0, 0x31, 0x2c, 0xe7, 0x8b, 0x56, 0x4e, 0x5d, 0x27, 0x30, 0x7b, 0x3c, 0xea, 0x07, 0x63, + 0x18, 0xd0, 0xd5, 0x8e, 0xd7, 0x4d, 0xa8, 0x29, 0xeb, 0x94, 0xc3, 0xfa, 0xb9, 0x01, 0x8d, 0x28, + 0x66, 0xc7, 0x57, 0xa9, 0x62, 0xd4, 0x57, 0x0a, 0x88, 0x61, 0x98, 0xdd, 0xed, 0x0f, 0x02, 0xe2, + 0xb3, 0x0d, 0xad, 0x58, 0xa2, 0x15, 0xae, 0x77, 0x48, 0x5e, 0x05, 0x6d, 0x72, 0x26, 0x6c, 0x3d, + 0x6a, 0xe2, 0xbf, 0x18, 0xb0, 0xa8, 0xc3, 0x58, 0xea, 0x48, 0xd9, 0x05, 0x18, 0xc6, 0x77, 0x4c, + 0x7e, 0x98, 0x7c, 0x98, 0x17, 0x34, 0xf9, 0x6a, 0xbb, 0xa3, 0xc1, 0x80, 0x9d, 0xc9, 0xca, 0xc8, + 0x70, 0x65, 0x47, 0xc0, 0xe5, 0x72, 0x44, 0x4d, 0xfc, 0xab, 0x0c, 0x5c, 0x79, 0xe1, 0x2a, 0x0c, + 0x25, 0x0a, 0xac, 0x09, 0x76, 0x13, 0x53, 0x97, 0xbb, 0x52, 0x28, 0xc1, 0xbf, 0x31, 0xe0, 0x96, + 0x16, 0xd2, 0xbb, 0x54, 0x21, 0xfe, 0xab, 0x01, 0xe8, 0x69, 0xbf, 0x7b, 0xaa, 0xf0, 0x15, 0x2b, + 0xe9, 0x2b, 0x30, 0x17, 0xf2, 0x13, 0x9b, 0x0b, 0xae, 0xa8, 0x2a, 0x43, 0x0f, 0xc1, 0x5b, 0xa4, + 0x43, 0x5d, 0x47, 0xa8, 0x4b, 0xb4, 0xd2, 0xca, 0xaa, 0x14, 0xbb, 0xdc, 0xf5, 0x94, 0xcb, 0x7d, + 0x0c, 0xd5, 0x96, 0xbd, 0xc1, 0x43, 0x47, 0xee, 0x85, 0x81, 0x2d, 0xcd, 0x02, 0x0e, 0x4f, 0x7c, + 0x44, 0x0b, 0x7f, 0x0a, 0x0b, 0x19, 0x71, 0x4b, 0x6d, 0xc0, 0x03, 0xa8, 0x49, 0x14, 0xca, 0x1e, + 0xcc, 0x09, 0x57, 0x97, 0x7d, 0x56, 0x92, 0x0d, 0x8f, 0x98, 0xaf, 0x87, 0xc7, 0x01, 0xb1, 0x19, + 0x8a, 0xc8, 0xd7, 0x93, 0x81, 0xd6, 0xc8, 0x04, 0xda, 0x55, 0x98, 0x71, 0xb3, 0x71, 0xca, 0x1d, + 0x33, 0x4e, 0xfd, 0x8c, 0x3b, 0x44, 0x66, 0xdd, 0x2b, 0xe5, 0x40, 0x63, 0xe7, 0x01, 0x31, 0x3b, + 0xfe, 0x9b, 0x01, 0x37, 0xf9, 0xe9, 0x18, 0x22, 0x7b, 0xe6, 0xca, 0x08, 0x7d, 0x79, 0x1c, 0xce, + 0x3f, 0xa4, 0x62, 0x43, 0xbb, 0x96, 0x30, 0xb4, 0x8f, 0x60, 0x9e, 0xaf, 0xa5, 0x5a, 0x6b, 0x85, + 0x59, 0x6b, 0xb6, 0xa3, 0xd0, 0xe8, 0x7e, 0x6a, 0x40, 0x43, 0x03, 0xfb, 0x0b, 0x35, 0x1d, 0x07, + 0x6e, 0xca, 0xab, 0xfd, 0x60, 0x30, 0x8e, 0xb3, 0x5e, 0xed, 0xda, 0xfc, 0x6b, 0xe5, 0x5c, 0x52, + 0x16, 0x7c, 0xa7, 0xf1, 0xea, 0xb7, 0x06, 0x4c, 0x6f, 0x1d, 0xb4, 0x19, 0x5b, 0x32, 0x17, 0x37, + 0x5e, 0xaf, 0xd8, 0x70, 0x0f, 0xea, 0x7c, 0xad, 0x0e, 0x0d, 0x88, 0x7f, 0xd8, 0x19, 0x46, 0x97, + 0xc7, 0x34, 0x39, 0xbc, 0xe3, 0x29, 0xa4, 0x96, 0x2d, 0x54, 0x95, 0x24, 0x86, 0xe1, 0x7d, 0x26, + 0x52, 0x56, 0xb8, 0x29, 0xcb, 0x02, 0x1b, 0x9b, 0x99, 0x6f, 0x4b, 0x4c, 0x40, 0xdb, 0x00, 0xdf, + 0xeb, 0xf4, 0xfa, 0x0e, 0x53, 0xb5, 0xa8, 0x93, 0xdc, 0xd5, 0x40, 0x17, 0x39, 0x42, 0xcc, 0x6b, + 0x29, 0xe3, 0xc6, 0xd8, 0xc2, 0xcf, 0x0d, 0x98, 0x8d, 0x51, 0x51, 0x0f, 0x7d, 0x0d, 0xaa, 0x91, + 0xfa, 0xa8, 0xa8, 0xee, 0xd4, 0xa3, 0xdb, 0x89, 0xa0, 0x5b, 0x31, 0xc7, 0x1b, 0xc2, 0x29, 0x75, + 0x31, 0x1a, 0x52, 0x86, 0xb2, 0x62, 0xc5, 0x04, 0x7c, 0x1e, 0x43, 0xa4, 0xa1, 0xe6, 0x92, 0x6b, + 0x1a, 0x6f, 0x46, 0x37, 0xd9, 0x70, 0x82, 0xff, 0x68, 0x40, 0x4d, 0x59, 0xf8, 0x5d, 0x29, 0xc7, + 0x84, 0xe9, 0x48, 0x17, 0x42, 0x37, 0xb2, 0x8d, 0x8f, 0xe2, 0xda, 0x8d, 0xc6, 0xdd, 0xed, 0xa4, + 0xbb, 0xdb, 0x63, 0xc8, 0x7c, 0x0a, 0x0d, 0xde, 0xe4, 0x35, 0xb0, 0x76, 0xd0, 0x09, 0x46, 0xb4, + 0x78, 0xd2, 0x45, 0xb8, 0xce, 0xd9, 0xa2, 0x93, 0x94, 0xb7, 0xc6, 0x30, 0xbe, 0x26, 0x2c, 0xea, + 0x16, 0xa3, 0x5e, 0x78, 0x1a, 0x21, 0xd1, 0xc5, 0x92, 0x72, 0x77, 0x40, 0x2e, 0x05, 0xc1, 0xc2, + 0x96, 0x1d, 0x85, 0x15, 0xde, 0x4a, 0x96, 0x38, 0x27, 0x53, 0x25, 0xce, 0x31, 0x2e, 0x65, 0x0d, + 0x58, 0xc8, 0xe0, 0xa0, 0x1e, 0xde, 0x87, 0x1b, 0xdb, 0x64, 0x40, 0x94, 0xd2, 0xe8, 0x55, 0x94, + 0x3e, 0x0f, 0xf5, 0xc4, 0x6c, 0xd4, 0xc3, 0x07, 0x50, 0x8f, 0x36, 0x76, 0xf3, 0xc7, 0x2d, 0xfb, + 0xaa, 0x2b, 0x3c, 0x8c, 0x0b, 0x8b, 0x7c, 0x3a, 0xea, 0xa1, 0xaf, 0xc6, 0x81, 0x52, 0x38, 0x51, + 0xc6, 0x96, 0x25, 0x03, 0xfe, 0x7b, 0x26, 0x05, 0xa1, 0x5b, 0x07, 0xed, 0x62, 0x58, 0x26, 0x4c, + 0x87, 0x4a, 0x53, 0x42, 0xa7, 0x6c, 0xa7, 0x5c, 0x63, 0xf2, 0xcd, 0xf8, 0xb0, 0x66, 0xff, 0xfe, + 0x99, 0xbd, 0xe7, 0x33, 0xdc, 0xd4, 0x43, 0xdf, 0x85, 0x29, 0x7e, 0x6e, 0x44, 0xae, 0x3c, 0xee, + 0x71, 0x13, 0x0d, 0x43, 0x3b, 0x1a, 0xff, 0xfe, 0x92, 0x56, 0x08, 0x9e, 0xab, 0xe6, 0x48, 0xb1, + 0x02, 0xc0, 0x57, 0x50, 0xc2, 0x9f, 0x42, 0xc1, 0xbf, 0x30, 0xa0, 0x69, 0x91, 0xa1, 0x7b, 0x4e, + 0x5e, 0x4b, 0xfd, 0x4d, 0x98, 0xe2, 0x4e, 0x40, 0xc5, 0xfd, 0x3b, 0x6a, 0xbe, 0x56, 0x1d, 0xdd, + 0x4e, 0xd5, 0xd1, 0x6d, 0x7c, 0x00, 0x4b, 0x39, 0x68, 0xf8, 0xc1, 0x4f, 0x47, 0xdd, 0x2e, 0xa1, + 0x54, 0x54, 0xaa, 0xa3, 0x66, 0xe8, 0xa1, 0x27, 0x9d, 0xfe, 0x80, 0xd8, 0x02, 0x8d, 0x68, 0xe1, + 0xcf, 0x0c, 0x68, 0x3c, 0xb2, 0xed, 0xb7, 0x21, 0x9a, 0x9d, 0x15, 0xcd, 0x2e, 0x14, 0xed, 0x09, + 0x2c, 0xea, 0xa0, 0x94, 0x92, 0xab, 0x0f, 0xf5, 0xed, 0x3e, 0x1d, 0xf6, 0x29, 0x95, 0x31, 0xc2, + 0x84, 0x69, 0x37, 0x55, 0xd9, 0x75, 0xbd, 0xb1, 0x6f, 0xef, 0x4d, 0x98, 0xea, 0x25, 0x6f, 0xb7, + 0xa2, 0x89, 0x77, 0x60, 0x2e, 0xb9, 0x14, 0x2f, 0x33, 0x74, 0xc7, 0x29, 0x33, 0xc4, 0x4c, 0xf8, + 0xcf, 0x06, 0xa0, 0x83, 0x51, 0x40, 0x52, 0xc7, 0xc9, 0x5b, 0x42, 0x1d, 0x2a, 0x6e, 0xa4, 0x16, + 0x8d, 0x44, 0x0b, 0x61, 0x98, 0x1d, 0x8e, 0x02, 0x62, 0xb7, 0x49, 0xd7, 0x75, 0x6c, 0xca, 0xb2, + 0xbf, 0x9a, 0x95, 0xa0, 0xe1, 0x3d, 0x58, 0xc8, 0x20, 0x2d, 0x27, 0xf4, 0xcf, 0x0d, 0x68, 0x6e, + 0x75, 0x9c, 0x2e, 0x19, 0xbc, 0x7b, 0xd1, 0xf1, 0x21, 0x2c, 0xe5, 0x60, 0x29, 0x27, 0xdc, 0x09, + 0xcc, 0xca, 0x99, 0xde, 0xa6, 0x01, 0x6e, 0x42, 0x4d, 0x59, 0xa7, 0x1c, 0xd6, 0x01, 0xa0, 0x94, + 0xec, 0x6f, 0x13, 0xf1, 0x1e, 0x2c, 0x64, 0x56, 0x2b, 0x87, 0xfb, 0x4f, 0x06, 0x2c, 0xb5, 0x13, + 0x27, 0xcc, 0x61, 0xbf, 0x7b, 0xea, 0x74, 0x86, 0xd1, 0x8d, 0xa5, 0x97, 0x4c, 0xbd, 0x7a, 0x71, + 0xea, 0xe5, 0x08, 0xc6, 0xe8, 0x74, 0x8c, 0xda, 0x09, 0xa9, 0x27, 0x8b, 0xa5, 0xbe, 0x96, 0x95, + 0x3a, 0xb6, 0xae, 0x4a, 0xc2, 0xba, 0x8e, 0xc0, 0xcc, 0x03, 0x5a, 0xae, 0x2e, 0xe9, 0xb3, 0x77, + 0x2c, 0x5e, 0x32, 0x68, 0x8f, 0x3c, 0x51, 0xd8, 0x8f, 0xea, 0x15, 0x29, 0xa0, 0x46, 0x11, 0xd0, + 0x89, 0x44, 0x04, 0x28, 0x10, 0x3f, 0x3c, 0x0c, 0x6f, 0xe7, 0x2e, 0x5a, 0x6a, 0x07, 0xaf, 0x54, + 0xad, 0xb8, 0x60, 0xd7, 0xa2, 0x18, 0xc7, 0x17, 0xf6, 0x6c, 0xfb, 0x4b, 0x7e, 0xb1, 0xc9, 0xac, + 0x5c, 0x4e, 0x05, 0x6f, 0xe2, 0xf1, 0xf6, 0x3f, 0x13, 0xd0, 0x48, 0xda, 0x97, 0x52, 0x51, 0xcd, + 0x71, 0x82, 0x12, 0x16, 0x30, 0x86, 0x03, 0x7c, 0x43, 0x71, 0xad, 0x8a, 0xc8, 0xfa, 0x7b, 0xae, + 0xdb, 0x1b, 0x10, 0xfe, 0x9b, 0xc5, 0xcb, 0xd1, 0xc9, 0x5a, 0x3b, 0xf0, 0xfb, 0x4e, 0xef, 0xfb, + 0x9d, 0xc1, 0x88, 0x28, 0x8e, 0xf7, 0x00, 0xa6, 0x4e, 0x3a, 0x5d, 0xf2, 0x89, 0xb5, 0xcf, 0x0a, + 0x3c, 0x97, 0x0d, 0x8c, 0x98, 0xd1, 0x37, 0xa1, 0xea, 0xcb, 0x34, 0x63, 0x8a, 0x8d, 0xbc, 0x9d, + 0x19, 0xd9, 0x72, 0x82, 0xfb, 0x1b, 0x7c, 0x60, 0xcc, 0x8d, 0x3e, 0x82, 0x09, 0xf2, 0xaa, 0x39, + 0x3d, 0xc6, 0x6a, 0x13, 0xe4, 0x15, 0x7e, 0x0a, 0x8b, 0x3a, 0x1d, 0x97, 0xf2, 0xdf, 0x8d, 0xff, + 0x2d, 0x00, 0xff, 0x87, 0x05, 0x7d, 0x1b, 0x66, 0xba, 0xf1, 0x9f, 0x0f, 0xa8, 0x11, 0x8d, 0x4b, + 0xfc, 0xfe, 0x61, 0x2e, 0xea, 0xc8, 0xd4, 0x43, 0x0f, 0xa0, 0xfa, 0xa3, 0xe8, 0xf9, 0x0a, 0x2d, + 0x08, 0x26, 0xf5, 0x79, 0xce, 0xbc, 0x99, 0x25, 0xf2, 0x71, 0x67, 0xd1, 0xdb, 0x88, 0x1c, 0xa7, + 0xbe, 0xca, 0xc8, 0x71, 0xc9, 0x27, 0x94, 0x4d, 0xa8, 0xf5, 0xd4, 0x3f, 0x16, 0xd0, 0xad, 0xe8, + 0xff, 0x93, 0xd4, 0xcf, 0x13, 0x66, 0x53, 0xdf, 0x41, 0x3d, 0xf4, 0x10, 0x66, 0xa9, 0xf2, 0x94, + 0x8f, 0x22, 0xd9, 0x52, 0xbf, 0x1f, 0x98, 0xb7, 0xb4, 0x74, 0xea, 0xa1, 0x1f, 0xc2, 0xad, 0x9e, + 0xfe, 0x1d, 0x1d, 0xdd, 0x49, 0xad, 0x9a, 0x7d, 0xc7, 0x36, 0xf1, 0x65, 0x2c, 0xd4, 0x43, 0x27, + 0xb0, 0xd4, 0xcb, 0x7b, 0x94, 0x46, 0x1f, 0xc4, 0x13, 0xe4, 0xbe, 0x96, 0x9b, 0x77, 0x2f, 0x67, + 0xa2, 0x1e, 0x3a, 0x06, 0x14, 0x64, 0x5e, 0x66, 0xd1, 0xb2, 0x18, 0xab, 0x7d, 0x75, 0x36, 0xdf, + 0x2b, 0xe8, 0xa5, 0x1e, 0xea, 0x42, 0xb3, 0x97, 0xf3, 0x60, 0x87, 0x70, 0xe2, 0x67, 0x21, 0xed, + 0x63, 0xa5, 0xf9, 0xc1, 0xa5, 0x3c, 0x1c, 0x77, 0x2f, 0xf3, 0xe2, 0x24, 0x71, 0x6b, 0x1f, 0xcc, + 0x24, 0xee, 0x9c, 0xa7, 0xaa, 0x67, 0xb0, 0xd0, 0xcb, 0x3e, 0xc1, 0x20, 0xfd, 0x28, 0x69, 0x65, + 0x2b, 0x45, 0xdd, 0xd4, 0x43, 0x7b, 0x50, 0x3f, 0x4d, 0xbe, 0x29, 0xa0, 0xe8, 0x8f, 0xa9, 0xec, + 0xd3, 0x8a, 0x69, 0xe6, 0x75, 0x49, 0x91, 0x53, 0x45, 0x7a, 0x55, 0xe4, 0xec, 0xbb, 0x81, 0x2a, + 0xb2, 0xae, 0xba, 0x7f, 0x08, 0xf3, 0xfd, 0x74, 0xdd, 0x1a, 0xdd, 0x8e, 0x4a, 0xcd, 0x9a, 0x42, + 0xbc, 0xb9, 0x9c, 0xdf, 0xc9, 0xe7, 0xeb, 0xa5, 0x6b, 0xc2, 0x72, 0x3e, 0x5d, 0x79, 0xda, 0x5c, + 0xce, 0xef, 0xe4, 0x8e, 0xaa, 0x96, 0x2e, 0xa4, 0xa3, 0xa6, 0xca, 0x23, 0xe6, 0x2d, 0x2d, 0x9d, + 0x7a, 0xe8, 0x3e, 0x4c, 0x47, 0x34, 0x84, 0x52, 0x4c, 0xe1, 0xc0, 0x85, 0x0c, 0x8d, 0x87, 0x26, + 0x19, 0x33, 0x50, 0x9a, 0x83, 0xaa, 0xa1, 0x29, 0x59, 0x21, 0x3c, 0x96, 0x75, 0x2b, 0xa5, 0xa4, + 0x25, 0x37, 0x48, 0x5b, 0x5a, 0x93, 0x1b, 0xa4, 0xaf, 0x85, 0x85, 0xd6, 0x93, 0x2a, 0x41, 0x49, + 0xeb, 0xc9, 0x96, 0xc8, 0xa4, 0xf5, 0x68, 0xaa, 0x56, 0x61, 0x94, 0x57, 0xea, 0x4c, 0x32, 0xca, + 0x27, 0x2b, 0x59, 0x32, 0xca, 0xa7, 0x4a, 0x52, 0xa1, 0x68, 0xd9, 0x4a, 0x4a, 0x8e, 0xbb, 0x89, + 0x14, 0x3e, 0xc7, 0xdd, 0x64, 0x56, 0xfd, 0x1c, 0x1a, 0xda, 0x52, 0x02, 0x7a, 0x5f, 0x8c, 0xcb, + 0x2b, 0x7b, 0x98, 0xab, 0xc5, 0x0c, 0x1c, 0x6e, 0x36, 0x97, 0x97, 0x70, 0xb5, 0x15, 0x07, 0x09, + 0x37, 0xa7, 0x08, 0xf0, 0x10, 0x66, 0xd5, 0x3c, 0x5b, 0x9a, 0x62, 0x2a, 0xcf, 0x97, 0xa6, 0x98, + 0x49, 0xca, 0xf7, 0xa0, 0x9e, 0xca, 0xec, 0xe4, 0x56, 0x66, 0xb3, 0x4f, 0xb9, 0x95, 0xba, 0x64, + 0xf0, 0x39, 0x34, 0xb4, 0x99, 0xa2, 0xd4, 0x5c, 0x5e, 0x4e, 0x2b, 0x35, 0x97, 0x9f, 0x68, 0x3e, + 0x80, 0xaa, 0x24, 0x4b, 0xdb, 0x57, 0xb3, 0x32, 0x69, 0xfb, 0xc9, 0xe4, 0x69, 0x0f, 0xea, 0xa9, + 0x49, 0xa5, 0x74, 0xd9, 0xcc, 0x4e, 0x4a, 0xa7, 0x4b, 0xc3, 0x7e, 0x90, 0xbe, 0xe5, 0x44, 0x99, + 0x0a, 0x5a, 0x4d, 0x1d, 0xc7, 0x99, 0x8c, 0xcb, 0xbc, 0x73, 0x09, 0x07, 0x3f, 0xba, 0x73, 0x52, + 0x08, 0xf5, 0xe8, 0xce, 0xc9, 0x6b, 0xd4, 0xa3, 0x3b, 0x37, 0x0b, 0xe1, 0xbe, 0x92, 0xba, 0x9c, + 0xab, 0xbe, 0x92, 0xcd, 0x18, 0x54, 0x5f, 0xd1, 0xdd, 0xea, 0x8f, 0x01, 0x65, 0x6f, 0x7e, 0x72, + 0x4a, 0xed, 0xc5, 0x5b, 0x4e, 0xa9, 0xbf, 0x32, 0x6e, 0xd6, 0x9f, 0xd7, 0xd6, 0xf8, 0x1f, 0xcd, + 0x1f, 0xb3, 0xef, 0xcb, 0xeb, 0xec, 0xde, 0x79, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, + 0x3c, 0xf8, 0x82, 0xed, 0x2c, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index db9d23273..3d9e9de28 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -91,6 +91,9 @@ message JoinGroupReq{ string ReqMessage = 2; string OpUserID = 3; string OperationID = 4; + int32 JoinSource = 5; + string InviterUserID = 6; + } message JoinGroupResp{ CommonResp CommonResp = 1; From 2d110deb09b85a6695523587c462b66e3e4f032c Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 13 Jul 2022 11:09:29 +0800 Subject: [PATCH 19/24] Show group notification editor --- cmd/open_im_api/main.go | 8 +- internal/rpc/group/group.go | 13 +- pkg/common/db/model_struct.go | 28 +- pkg/common/utils/utils.go | 1 + pkg/proto/sdk_ws/ws.pb.go | 604 +++++++++++++++++----------------- pkg/proto/sdk_ws/ws.proto | 2 + 6 files changed, 344 insertions(+), 312 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 8411df63a..7ad6a1304 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -145,10 +145,10 @@ func main() { chatGroup.POST("/batch_send_msg", manage.ManagementBatchSendMsg) } //Manager - managementGroup := r.Group("/manager") - { - managementGroup.POST("/delete_user", manage.DeleteUser) //1 - } + //managementGroup := r.Group("/manager") + //{ + // managementGroup.POST("/delete_user", manage.DeleteUser) //1 + //} //Conversation conversationGroup := r.Group("/conversation") { //1 diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 9a2cce885..cd5200023 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -243,13 +243,18 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo owner, err2 := imdb.GetGroupOwnerInfoByGroupID(v) group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { + if group.Status == constant.GroupStatusDismissed { + log.NewError(req.OperationID, "constant.GroupStatusDismissed ", group) + continue + } utils.CopyStructFields(&groupNode, group) groupNode.CreateTime = uint32(group.CreateTime.Unix()) - groupNode.MemberCount = uint32(num) + groupNode.NotificationUpdateTime = uint32(group.NotificationUpdateTime.Unix()) + groupNode.MemberCount = num groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) } else { - log.NewError(req.OperationID, "check nil ", num, owner, err, group) + log.NewError(req.OperationID, "check nil ", num, owner, err, group, err2) continue } log.NewDebug(req.OperationID, "joinedGroup ", groupNode) @@ -1129,6 +1134,10 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf //only administrators can set group information var groupInfo db.Group utils.CopyStructFields(&groupInfo, req.GroupInfoForSet) + if req.GroupInfoForSet.Notification != "" { + groupInfo.NotificationUserID = req.OpUserID + groupInfo.NotificationUpdateTime = time.Now() + } err = imdb.SetGroupInfo(groupInfo) if err != nil { log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 6ba893441..3f938caea 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -77,19 +77,21 @@ func (FriendRequest) TableName() string { type Group struct { //`json:"operationID" binding:"required"` //`protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` `json:"operationID" binding:"required"` - GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` - GroupName string `gorm:"column:name;size:255" json:"groupName"` - Notification string `gorm:"column:notification;size:255" json:"notification"` - Introduction string `gorm:"column:introduction;size:255" json:"introduction"` - FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` - CreateTime time.Time `gorm:"column:create_time"` - Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` - Status int32 `gorm:"column:status"` - CreatorUserID string `gorm:"column:creator_user_id;size:64"` - GroupType int32 `gorm:"column:group_type"` - NeedVerification int32 `gorm:"column:need_verification"` - LookMemberInfo int32 `gorm:"column:look_member_info" json:"lookMemberInfo"` - ApplyMemberFriend int32 `gorm:"column:apply_member_friend" json:"applyMemberFriend"` + GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` + GroupName string `gorm:"column:name;size:255" json:"groupName"` + Notification string `gorm:"column:notification;size:255" json:"notification"` + Introduction string `gorm:"column:introduction;size:255" json:"introduction"` + FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` + CreateTime time.Time `gorm:"column:create_time"` + Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` + Status int32 `gorm:"column:status"` + CreatorUserID string `gorm:"column:creator_user_id;size:64"` + GroupType int32 `gorm:"column:group_type"` + NeedVerification int32 `gorm:"column:need_verification"` + LookMemberInfo int32 `gorm:"column:look_member_info" json:"lookMemberInfo"` + ApplyMemberFriend int32 `gorm:"column:apply_member_friend" json:"applyMemberFriend"` + NotificationUpdateTime time.Time `gorm:"column:notification_update_time"` + NotificationUserID string `gorm:"column:notification_user_id;size:64"` } //message GroupMemberFullInfo { diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index cf7019492..ccbb08b01 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -98,6 +98,7 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) error { return utils.Wrap(err, "") } dst.CreateTime = uint32(src.CreateTime.Unix()) + dst.NotificationUpdateTime = uint32(src.NotificationUpdateTime.Unix()) return nil } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 87526506e..64943b288 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -20,31 +20,33 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type GroupInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` - NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` - LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` - ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` + NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` + NotificationUpdateTime uint32 `protobuf:"varint,16,opt,name=notificationUpdateTime" json:"notificationUpdateTime,omitempty"` + NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID" json:"notificationUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{0} + return fileDescriptor_ws_83acc919c6c38298, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -169,6 +171,20 @@ func (m *GroupInfo) GetApplyMemberFriend() int32 { return 0 } +func (m *GroupInfo) GetNotificationUpdateTime() uint32 { + if m != nil { + return m.NotificationUpdateTime + } + return 0 +} + +func (m *GroupInfo) GetNotificationUserID() string { + if m != nil { + return m.NotificationUserID + } + return "" +} + type GroupInfoForSet struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` @@ -188,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{1} + return fileDescriptor_ws_83acc919c6c38298, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -292,7 +308,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{2} + return fileDescriptor_ws_83acc919c6c38298, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -404,7 +420,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{3} + return fileDescriptor_ws_83acc919c6c38298, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -480,7 +496,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{4} + return fileDescriptor_ws_83acc919c6c38298, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -594,7 +610,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{5} + return fileDescriptor_ws_83acc919c6c38298, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -679,7 +695,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{6} + return fileDescriptor_ws_83acc919c6c38298, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -760,7 +776,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{7} + return fileDescriptor_ws_83acc919c6c38298, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -868,7 +884,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{8} + return fileDescriptor_ws_83acc919c6c38298, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1013,7 +1029,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{9} + return fileDescriptor_ws_83acc919c6c38298, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1124,7 +1140,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{10} + return fileDescriptor_ws_83acc919c6c38298, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1238,7 +1254,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{11} + return fileDescriptor_ws_83acc919c6c38298, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1319,7 +1335,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{12} + return fileDescriptor_ws_83acc919c6c38298, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1365,7 +1381,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{13} + return fileDescriptor_ws_83acc919c6c38298, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1414,7 +1430,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{14} + return fileDescriptor_ws_83acc919c6c38298, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1473,7 +1489,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{15} + return fileDescriptor_ws_83acc919c6c38298, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1511,7 +1527,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{16} + return fileDescriptor_ws_83acc919c6c38298, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1552,7 +1568,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{17} + return fileDescriptor_ws_83acc919c6c38298, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1613,7 +1629,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{18} + return fileDescriptor_ws_83acc919c6c38298, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1666,7 +1682,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{19} + return fileDescriptor_ws_83acc919c6c38298, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1715,7 +1731,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{20} + return fileDescriptor_ws_83acc919c6c38298, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1783,7 +1799,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{21} + return fileDescriptor_ws_83acc919c6c38298, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1854,7 +1870,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{22} + return fileDescriptor_ws_83acc919c6c38298, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2029,7 +2045,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{23} + return fileDescriptor_ws_83acc919c6c38298, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2097,7 +2113,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{24} + return fileDescriptor_ws_83acc919c6c38298, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2154,7 +2170,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{25} + return fileDescriptor_ws_83acc919c6c38298, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2223,7 +2239,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{26} + return fileDescriptor_ws_83acc919c6c38298, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2278,7 +2294,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{27} + return fileDescriptor_ws_83acc919c6c38298, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2334,7 +2350,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{28} + return fileDescriptor_ws_83acc919c6c38298, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2389,7 +2405,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{29} + return fileDescriptor_ws_83acc919c6c38298, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2444,7 +2460,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{30} + return fileDescriptor_ws_83acc919c6c38298, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2500,7 +2516,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{31} + return fileDescriptor_ws_83acc919c6c38298, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2563,7 +2579,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{32} + return fileDescriptor_ws_83acc919c6c38298, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2626,7 +2642,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{33} + return fileDescriptor_ws_83acc919c6c38298, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2688,7 +2704,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{34} + return fileDescriptor_ws_83acc919c6c38298, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2742,7 +2758,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{35} + return fileDescriptor_ws_83acc919c6c38298, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2798,7 +2814,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{36} + return fileDescriptor_ws_83acc919c6c38298, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2867,7 +2883,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{37} + return fileDescriptor_ws_83acc919c6c38298, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2928,7 +2944,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{38} + return fileDescriptor_ws_83acc919c6c38298, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2982,7 +2998,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{39} + return fileDescriptor_ws_83acc919c6c38298, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3037,7 +3053,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{40} + return fileDescriptor_ws_83acc919c6c38298, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3097,7 +3113,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{41} + return fileDescriptor_ws_83acc919c6c38298, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3144,7 +3160,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{42} + return fileDescriptor_ws_83acc919c6c38298, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3197,7 +3213,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{43} + return fileDescriptor_ws_83acc919c6c38298, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3243,7 +3259,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{44} + return fileDescriptor_ws_83acc919c6c38298, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3283,7 +3299,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{45} + return fileDescriptor_ws_83acc919c6c38298, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3330,7 +3346,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{46} + return fileDescriptor_ws_83acc919c6c38298, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3378,7 +3394,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{47} + return fileDescriptor_ws_83acc919c6c38298, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3431,7 +3447,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{48} + return fileDescriptor_ws_83acc919c6c38298, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3469,7 +3485,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{49} + return fileDescriptor_ws_83acc919c6c38298, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3507,7 +3523,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{50} + return fileDescriptor_ws_83acc919c6c38298, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3545,7 +3561,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{51} + return fileDescriptor_ws_83acc919c6c38298, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3584,7 +3600,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{52} + return fileDescriptor_ws_83acc919c6c38298, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3623,7 +3639,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{53} + return fileDescriptor_ws_83acc919c6c38298, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3663,7 +3679,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{54} + return fileDescriptor_ws_83acc919c6c38298, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3718,7 +3734,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{55} + return fileDescriptor_ws_83acc919c6c38298, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3772,7 +3788,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{56} + return fileDescriptor_ws_83acc919c6c38298, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3818,7 +3834,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{57} + return fileDescriptor_ws_83acc919c6c38298, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3871,7 +3887,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{58} + return fileDescriptor_ws_83acc919c6c38298, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4138,7 +4154,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{59} + return fileDescriptor_ws_83acc919c6c38298, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4407,7 +4423,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{60} + return fileDescriptor_ws_83acc919c6c38298, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4510,7 +4526,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{61} + return fileDescriptor_ws_83acc919c6c38298, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4565,7 +4581,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{62} + return fileDescriptor_ws_83acc919c6c38298, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4626,7 +4642,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{63} + return fileDescriptor_ws_83acc919c6c38298, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4681,7 +4697,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{64} + return fileDescriptor_ws_83acc919c6c38298, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4742,7 +4758,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{65} + return fileDescriptor_ws_83acc919c6c38298, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4797,7 +4813,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{66} + return fileDescriptor_ws_83acc919c6c38298, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4855,7 +4871,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{67} + return fileDescriptor_ws_83acc919c6c38298, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4890,7 +4906,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{68} + return fileDescriptor_ws_83acc919c6c38298, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4958,7 +4974,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{69} + return fileDescriptor_ws_83acc919c6c38298, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5012,7 +5028,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{70} + return fileDescriptor_ws_83acc919c6c38298, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5063,7 +5079,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{71} + return fileDescriptor_ws_83acc919c6c38298, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5098,7 +5114,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{72} + return fileDescriptor_ws_83acc919c6c38298, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5163,7 +5179,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{73} + return fileDescriptor_ws_83acc919c6c38298, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5197,7 +5213,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{74} + return fileDescriptor_ws_83acc919c6c38298, []int{74} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5257,7 +5273,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_bd277b37af84394c, []int{75} + return fileDescriptor_ws_83acc919c6c38298, []int{75} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5374,223 +5390,225 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_bd277b37af84394c) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_83acc919c6c38298) } -var fileDescriptor_ws_bd277b37af84394c = []byte{ - // 3434 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4d, 0x6c, 0x24, 0x47, - 0x15, 0xa6, 0x7b, 0x3c, 0x63, 0xcf, 0x1b, 0xff, 0x8c, 0x7b, 0x37, 0xce, 0x60, 0x36, 0x8b, 0xe9, - 0x58, 0x49, 0x58, 0x82, 0x37, 0xda, 0x10, 0x09, 0xf2, 0xb3, 0xc8, 0x3f, 0xd9, 0x9f, 0x64, 0xc7, - 0x76, 0x7a, 0x76, 0x13, 0x44, 0x90, 0x96, 0xf6, 0x74, 0x79, 0xdc, 0xeb, 0x9e, 0xae, 0x76, 0xff, - 0x78, 0xd7, 0x5c, 0x90, 0x82, 0x84, 0xb8, 0x71, 0x81, 0x0b, 0x17, 0x24, 0x2e, 0x08, 0x14, 0x45, - 0x08, 0x81, 0xc4, 0x01, 0x21, 0x84, 0xb8, 0x71, 0x01, 0x89, 0x0b, 0xe2, 0xc6, 0x99, 0x3b, 0x42, - 0x42, 0x02, 0x55, 0xbd, 0xea, 0xee, 0xaa, 0xee, 0x1e, 0x7b, 0xd6, 0xb2, 0xb2, 0x1b, 0x2d, 0xb7, - 0x79, 0xaf, 0xeb, 0xbd, 0x7a, 0xf5, 0xbe, 0x57, 0xf5, 0x5e, 0xfd, 0x0c, 0xcc, 0x45, 0xce, 0xfe, - 0xdd, 0xfb, 0xd1, 0xe5, 0xfb, 0xd1, 0x4a, 0x10, 0xd2, 0x98, 0x1a, 0xf3, 0x11, 0x09, 0x0f, 0x49, - 0x78, 0xd7, 0x0e, 0xdc, 0xbb, 0x81, 0x1d, 0xda, 0xc3, 0x68, 0xf1, 0xf9, 0xad, 0x80, 0xf8, 0x77, - 0x6f, 0x76, 0x2f, 0x07, 0xfb, 0x83, 0xcb, 0xbc, 0xd5, 0xe5, 0x54, 0x2a, 0xb4, 0x83, 0x80, 0x84, - 0x42, 0xd6, 0xfc, 0x57, 0x0d, 0x9a, 0xd7, 0x43, 0x9a, 0x04, 0x37, 0xfd, 0x5d, 0x6a, 0x74, 0x60, - 0x72, 0xc0, 0x89, 0x8d, 0x8e, 0xb6, 0xa4, 0xbd, 0xd0, 0xb4, 0x52, 0xd2, 0xb8, 0x00, 0x4d, 0xfe, - 0x73, 0xd3, 0x1e, 0x92, 0x8e, 0xce, 0xbf, 0xe5, 0x0c, 0xc3, 0x84, 0x69, 0x9f, 0xc6, 0xee, 0xae, - 0xdb, 0xb7, 0x63, 0x97, 0xfa, 0x9d, 0x1a, 0x6f, 0xa0, 0xf0, 0x58, 0x1b, 0xd7, 0x8f, 0x43, 0xea, - 0x24, 0x7d, 0xde, 0x66, 0x02, 0xdb, 0xc8, 0x3c, 0xd6, 0xff, 0xae, 0xdd, 0x27, 0x77, 0xac, 0x5b, - 0x9d, 0x3a, 0xf6, 0x2f, 0x48, 0x63, 0x09, 0x5a, 0xf4, 0xbe, 0x4f, 0xc2, 0x3b, 0x11, 0x09, 0x6f, - 0x6e, 0x74, 0x1a, 0xfc, 0xab, 0xcc, 0x32, 0x2e, 0x02, 0xf4, 0x43, 0x62, 0xc7, 0xe4, 0xb6, 0x3b, - 0x24, 0x9d, 0xc9, 0x25, 0xed, 0x85, 0x19, 0x4b, 0xe2, 0x30, 0x0d, 0x43, 0x32, 0xdc, 0x21, 0xe1, - 0x3a, 0x4d, 0xfc, 0xb8, 0x33, 0xc5, 0x1b, 0xc8, 0x2c, 0x63, 0x16, 0x74, 0xf2, 0xa0, 0xd3, 0xe4, - 0xaa, 0x75, 0xf2, 0xc0, 0x58, 0x80, 0x46, 0x14, 0xdb, 0x71, 0x12, 0x75, 0x60, 0x49, 0x7b, 0xa1, - 0x6e, 0x09, 0xca, 0x58, 0x86, 0x19, 0xae, 0x97, 0xa6, 0xd6, 0xb4, 0xb8, 0x88, 0xca, 0xcc, 0x3c, - 0x76, 0xfb, 0x28, 0x20, 0x9d, 0x69, 0xae, 0x20, 0x67, 0x18, 0x97, 0xa0, 0xed, 0x13, 0xe2, 0xbc, - 0x4b, 0xc2, 0xdc, 0x6b, 0x33, 0xbc, 0x51, 0x89, 0x6f, 0x3c, 0x07, 0xb3, 0x1e, 0xa5, 0xfb, 0x5d, - 0x6e, 0x2a, 0xc3, 0xa9, 0x33, 0xcb, 0x5b, 0x16, 0xb8, 0xc6, 0x8b, 0x30, 0x6f, 0x07, 0x81, 0x77, - 0x84, 0xac, 0x6b, 0xa1, 0x4b, 0x7c, 0xa7, 0x33, 0xc7, 0x9b, 0x96, 0x3f, 0x98, 0x3f, 0xa8, 0xc1, - 0x5c, 0x86, 0xfc, 0x35, 0x1a, 0xf6, 0x48, 0xfc, 0x18, 0xe3, 0x8f, 0xd8, 0x34, 0x32, 0x6c, 0xae, - 0x57, 0xf8, 0x8f, 0x61, 0xde, 0xba, 0xf2, 0x99, 0x95, 0x01, 0xa5, 0x03, 0x8f, 0x60, 0x80, 0xef, - 0x24, 0xbb, 0x2b, 0x37, 0xfd, 0xf8, 0xe5, 0x2b, 0xef, 0xda, 0x5e, 0x42, 0x2a, 0x9c, 0xbb, 0x5e, - 0x72, 0xee, 0xd4, 0xc9, 0x6a, 0x8a, 0x9e, 0xbf, 0x59, 0xe5, 0xf9, 0xe6, 0xc9, 0x7a, 0x2a, 0x60, - 0xf9, 0x9b, 0x0e, 0xe7, 0x38, 0x2c, 0x82, 0x9b, 0x78, 0xde, 0x09, 0x53, 0x73, 0x01, 0x1a, 0x09, - 0xc6, 0x21, 0xe2, 0x22, 0x28, 0x06, 0x59, 0x48, 0x3d, 0x72, 0x8b, 0x1c, 0x12, 0x8f, 0x23, 0x52, - 0xb7, 0x72, 0x86, 0xb1, 0x08, 0x53, 0xf7, 0xa8, 0xeb, 0xf3, 0xc9, 0x32, 0xc1, 0x3f, 0x66, 0x34, - 0xfb, 0xe6, 0xbb, 0xfd, 0x7d, 0x9f, 0x61, 0x8d, 0x38, 0x64, 0xb4, 0x0c, 0x51, 0x43, 0x85, 0xe8, - 0x39, 0x98, 0xb5, 0x83, 0xa0, 0x6b, 0xfb, 0x03, 0x12, 0x62, 0xa7, 0x93, 0x18, 0xa6, 0x2a, 0x97, - 0x4d, 0x54, 0xd6, 0x53, 0x8f, 0x26, 0x61, 0x9f, 0x70, 0x6f, 0xd7, 0x2d, 0x89, 0xc3, 0xf4, 0xd0, - 0x80, 0x84, 0xd2, 0xfc, 0xc2, 0x29, 0x59, 0xe0, 0x8a, 0x90, 0x80, 0x2c, 0x24, 0xd8, 0x04, 0x4f, - 0x62, 0xf2, 0xa6, 0xef, 0xf0, 0x41, 0xb5, 0xc4, 0x04, 0xcf, 0x59, 0xe6, 0x77, 0x35, 0x98, 0xdd, +var fileDescriptor_ws_83acc919c6c38298 = []byte{ + // 3462 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x57, + 0xd5, 0xff, 0xaa, 0xda, 0xdd, 0x76, 0x9f, 0xf6, 0xa3, 0x5d, 0x33, 0x71, 0xfa, 0x33, 0x93, 0xc1, + 0x54, 0xac, 0x24, 0x0c, 0xc1, 0x13, 0x4d, 0x08, 0x82, 0x3c, 0x06, 0xf9, 0x91, 0x79, 0x24, 0xd3, + 0xb6, 0x53, 0x3d, 0x93, 0x20, 0x82, 0x34, 0x94, 0xbb, 0xae, 0xdb, 0x35, 0xae, 0xae, 0x5b, 0xae, + 0x87, 0x67, 0xcc, 0x06, 0x29, 0x48, 0x88, 0x1d, 0x1b, 0xd8, 0xb0, 0x41, 0x62, 0x83, 0x40, 0x51, + 0x84, 0x10, 0x48, 0x2c, 0x10, 0x42, 0x88, 0x1d, 0x1b, 0x90, 0xd8, 0x20, 0x16, 0x48, 0xac, 0xf9, + 0x07, 0x90, 0x90, 0x40, 0xf7, 0x9e, 0x5b, 0x55, 0xf7, 0x56, 0x55, 0xdb, 0x3d, 0x96, 0x95, 0x99, + 0x68, 0xd8, 0xf5, 0x39, 0x75, 0xcf, 0xb9, 0xe7, 0x9e, 0xdf, 0xb9, 0xf7, 0x9c, 0xfb, 0x68, 0x98, + 0x8b, 0x9c, 0xfd, 0xbb, 0xf7, 0xa3, 0xcb, 0xf7, 0xa3, 0x95, 0x20, 0xa4, 0x31, 0x35, 0xe6, 0x23, + 0x12, 0x1e, 0x92, 0xf0, 0xae, 0x1d, 0xb8, 0x77, 0x03, 0x3b, 0xb4, 0x87, 0xd1, 0xe2, 0xf3, 0x5b, + 0x01, 0xf1, 0xef, 0xde, 0xec, 0x5e, 0x0e, 0xf6, 0x07, 0x97, 0x79, 0xab, 0xcb, 0xa9, 0x54, 0x68, + 0x07, 0x01, 0x09, 0x85, 0xac, 0xf9, 0xf7, 0x09, 0x68, 0x5e, 0x0f, 0x69, 0x12, 0xdc, 0xf4, 0x77, + 0xa9, 0xd1, 0x81, 0xc9, 0x01, 0x27, 0x36, 0x3a, 0xda, 0x92, 0xf6, 0x42, 0xd3, 0x4a, 0x49, 0xe3, + 0x02, 0x34, 0xf9, 0xcf, 0x4d, 0x7b, 0x48, 0x3a, 0x3a, 0xff, 0x96, 0x33, 0x0c, 0x13, 0xa6, 0x7d, + 0x1a, 0xbb, 0xbb, 0x6e, 0xdf, 0x8e, 0x5d, 0xea, 0x77, 0x6a, 0xbc, 0x81, 0xc2, 0x63, 0x6d, 0x5c, + 0x3f, 0x0e, 0xa9, 0x93, 0xf4, 0x79, 0x9b, 0x09, 0x6c, 0x23, 0xf3, 0x58, 0xff, 0xbb, 0x76, 0x9f, + 0xdc, 0xb1, 0x6e, 0x75, 0xea, 0xd8, 0xbf, 0x20, 0x8d, 0x25, 0x68, 0xd1, 0xfb, 0x3e, 0x09, 0xef, + 0x44, 0x24, 0xbc, 0xb9, 0xd1, 0x69, 0xf0, 0xaf, 0x32, 0xcb, 0xb8, 0x08, 0xd0, 0x0f, 0x89, 0x1d, + 0x93, 0xdb, 0xee, 0x90, 0x74, 0x26, 0x97, 0xb4, 0x17, 0x66, 0x2c, 0x89, 0xc3, 0x34, 0x0c, 0xc9, + 0x70, 0x87, 0x84, 0xeb, 0x34, 0xf1, 0xe3, 0xce, 0x14, 0x6f, 0x20, 0xb3, 0x8c, 0x59, 0xd0, 0xc9, + 0x83, 0x4e, 0x93, 0xab, 0xd6, 0xc9, 0x03, 0x63, 0x01, 0x1a, 0x51, 0x6c, 0xc7, 0x49, 0xd4, 0x81, + 0x25, 0xed, 0x85, 0xba, 0x25, 0x28, 0x63, 0x19, 0x66, 0xb8, 0x5e, 0x9a, 0x5a, 0xd3, 0xe2, 0x22, + 0x2a, 0x33, 0xf3, 0xd8, 0xed, 0xa3, 0x80, 0x74, 0xa6, 0xb9, 0x82, 0x9c, 0x61, 0x5c, 0x82, 0xb6, + 0x4f, 0x88, 0xf3, 0x2e, 0x09, 0x73, 0xaf, 0xcd, 0xf0, 0x46, 0x25, 0xbe, 0xf1, 0x1c, 0xcc, 0x7a, + 0x94, 0xee, 0x77, 0xb9, 0xa9, 0x0c, 0xa7, 0xce, 0x2c, 0x6f, 0x59, 0xe0, 0x1a, 0x2f, 0xc2, 0xbc, + 0x1d, 0x04, 0xde, 0x11, 0xb2, 0xae, 0x85, 0x2e, 0xf1, 0x9d, 0xce, 0x1c, 0x6f, 0x5a, 0xfe, 0x60, + 0x7c, 0x11, 0x16, 0x64, 0x7c, 0xee, 0x04, 0x4e, 0xea, 0xbb, 0x36, 0x77, 0xcd, 0x88, 0xaf, 0xc6, + 0x0a, 0x18, 0xca, 0x17, 0x74, 0xc1, 0x3c, 0x77, 0x41, 0xc5, 0x17, 0xf3, 0xfb, 0x35, 0x98, 0xcb, + 0x22, 0xec, 0x1a, 0x0d, 0x7b, 0x24, 0x7e, 0x8c, 0xe3, 0x0c, 0x63, 0xa0, 0x91, 0xc5, 0xc0, 0xf5, + 0x0a, 0x9c, 0x58, 0x6c, 0xb5, 0xae, 0x7c, 0x6a, 0x65, 0x40, 0xe9, 0xc0, 0x23, 0x38, 0x91, 0x76, + 0x92, 0xdd, 0x95, 0x9b, 0x7e, 0xfc, 0xf2, 0x95, 0x77, 0x6d, 0x2f, 0x21, 0x15, 0x20, 0xae, 0x97, + 0x40, 0x9c, 0x3a, 0x59, 0x4d, 0x11, 0xe1, 0x9b, 0x55, 0x08, 0x37, 0x4f, 0xd6, 0x53, 0x96, 0x32, + 0xff, 0xaa, 0xc3, 0x39, 0x0e, 0x8b, 0xe0, 0x26, 0x9e, 0x77, 0xc2, 0x12, 0xb0, 0x00, 0x8d, 0x04, + 0xc1, 0x46, 0x5c, 0x04, 0xc5, 0x20, 0x0b, 0xa9, 0x47, 0x6e, 0x91, 0x43, 0xe2, 0x71, 0x44, 0xea, + 0x56, 0xce, 0x30, 0x16, 0x61, 0xea, 0x1e, 0x75, 0x7d, 0x1e, 0x58, 0x13, 0xfc, 0x63, 0x46, 0xb3, + 0x6f, 0xbe, 0xdb, 0xdf, 0xf7, 0x19, 0xd6, 0x88, 0x43, 0x46, 0xcb, 0x10, 0x35, 0x54, 0x88, 0x9e, + 0x83, 0x59, 0x3b, 0x08, 0xba, 0xb6, 0x3f, 0x20, 0x21, 0x76, 0x3a, 0x89, 0xd3, 0x41, 0xe5, 0xb2, + 0x05, 0x81, 0xf5, 0xd4, 0xa3, 0x49, 0xd8, 0x27, 0xdc, 0xdb, 0x75, 0x4b, 0xe2, 0x30, 0x3d, 0x34, + 0x20, 0xa1, 0x34, 0x8f, 0x71, 0xea, 0x17, 0xb8, 0x22, 0x24, 0x20, 0x0b, 0x09, 0xb6, 0x90, 0x24, + 0x31, 0x79, 0xd3, 0x77, 0xf8, 0xa0, 0x5a, 0x62, 0x21, 0xc9, 0x59, 0xe6, 0x77, 0x34, 0x98, 0xdd, 0x4e, 0x76, 0x3c, 0xb7, 0xcf, 0x55, 0x30, 0xb7, 0xe6, 0xce, 0xd3, 0x14, 0xe7, 0xc9, 0x2e, 0xd0, 0x47, 0xbb, 0xa0, 0xa6, 0xba, 0x60, 0x01, 0x1a, 0x03, 0xe2, 0x3b, 0x24, 0x14, 0x2e, 0x15, 0x94, - 0x30, 0xb5, 0x9e, 0x9a, 0x6a, 0xfe, 0x41, 0x87, 0xa9, 0x8f, 0xd9, 0x84, 0x25, 0x68, 0x05, 0x7b, + 0x30, 0xb5, 0x9e, 0x9a, 0x6a, 0xfe, 0x5e, 0x87, 0xa9, 0x8f, 0xd9, 0x84, 0x25, 0x68, 0x05, 0x7b, 0xd4, 0x27, 0x9b, 0x09, 0x0b, 0x2b, 0x61, 0x8b, 0xcc, 0x32, 0xce, 0x43, 0x7d, 0xc7, 0x0d, 0xe3, 0x3d, 0x8e, 0xeb, 0x8c, 0x85, 0x04, 0xe3, 0x92, 0xa1, 0xed, 0x22, 0x98, 0x4d, 0x0b, 0x09, 0x31, - 0xa0, 0xa9, 0xcc, 0xf7, 0xea, 0xe2, 0xdb, 0x2c, 0x2d, 0xbe, 0xe5, 0xd8, 0x80, 0xca, 0xd8, 0xb8, + 0xa0, 0xa9, 0xcc, 0xf7, 0xea, 0x22, 0xdf, 0x2c, 0x2d, 0xf2, 0xe5, 0xd8, 0x80, 0xca, 0xd8, 0xb8, 0x04, 0xed, 0x81, 0x47, 0x77, 0x6c, 0xcf, 0x22, 0xfd, 0xc3, 0x6e, 0x34, 0xd8, 0x0a, 0x62, 0x0e, - 0x64, 0xdd, 0x2a, 0xf1, 0xcd, 0x7f, 0x6b, 0x00, 0x38, 0x69, 0xb8, 0x1b, 0x0b, 0x19, 0x42, 0x2b, - 0x67, 0x88, 0x05, 0x68, 0x84, 0x64, 0x68, 0x87, 0xfb, 0xe9, 0x44, 0x41, 0xaa, 0x60, 0x7c, 0xad, - 0x64, 0xfc, 0x6b, 0x00, 0xbb, 0xbc, 0x1f, 0xa6, 0x87, 0xbb, 0x95, 0x4d, 0xeb, 0x52, 0xd2, 0x5d, + 0x64, 0xdd, 0x2a, 0xf1, 0xcd, 0x7f, 0x69, 0x00, 0x38, 0x69, 0xb8, 0x1b, 0x0b, 0x99, 0x48, 0x2b, + 0x67, 0xa2, 0x05, 0x68, 0x84, 0x64, 0x68, 0x87, 0xfb, 0xe9, 0x44, 0x41, 0xaa, 0x60, 0x7c, 0xad, + 0x64, 0xfc, 0x6b, 0x00, 0xbb, 0xbc, 0x1f, 0xa6, 0x87, 0xbb, 0x95, 0x4d, 0xeb, 0x52, 0x72, 0x5f, 0x49, 0x11, 0xb5, 0xa4, 0xe6, 0x6c, 0x16, 0xda, 0x8e, 0x23, 0x82, 0xbd, 0x8e, 0xb3, 0x30, 0x63, 0x54, 0xc4, 0x7a, 0xe3, 0x98, 0x58, 0x9f, 0xcc, 0x02, 0xe8, 0x9f, 0x1a, 0x34, 0xd7, 0x3c, 0xbb, 0xbf, 0x3f, 0xe6, 0xd0, 0xd5, 0x21, 0xea, 0xa5, 0x21, 0x5e, 0x87, 0x99, 0x1d, 0xa6, 0x2e, 0x1d, - 0x02, 0xf7, 0x42, 0xeb, 0xca, 0xe7, 0x2a, 0x46, 0xa9, 0x4e, 0x20, 0x4b, 0x95, 0x53, 0x87, 0x3b, - 0x71, 0xf2, 0x70, 0xeb, 0xc7, 0x0c, 0x37, 0x5b, 0xed, 0xcd, 0xbf, 0xe8, 0x30, 0xcd, 0x17, 0x45, + 0x02, 0xf7, 0x42, 0xeb, 0xca, 0x67, 0x2a, 0x46, 0xa9, 0x4e, 0x20, 0x4b, 0x95, 0x53, 0x87, 0x3b, + 0x71, 0xf2, 0x70, 0xeb, 0xc7, 0x0c, 0x37, 0x5b, 0xed, 0xcd, 0x3f, 0xeb, 0x30, 0xcd, 0x17, 0x45, 0x8b, 0x1c, 0x24, 0x24, 0x8a, 0x8d, 0x37, 0x60, 0x2a, 0x49, 0x4d, 0xd5, 0xc6, 0x35, 0x35, 0x13, 0x31, 0x5e, 0x15, 0xd9, 0x8c, 0xcb, 0xeb, 0x5c, 0xfe, 0x42, 0x85, 0x7c, 0x96, 0x1e, 0xad, 0xbc, 0x39, 0xcb, 0x63, 0x7b, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x62, 0x65, 0x55, 0x78, 0x18, 0x69, 0x07, 0xdd, 0x68, 0x20, 0xb2, 0x9c, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, 0x84, 0x43, 0xcf, 0x19, 0x6c, 0x52, 0x87, 0xe4, 0x80, 0x23, 0x84, 0x53, 0x30, 0x25, 0xf3, 0x3e, 0x85, 0xd7, - 0x30, 0x10, 0x14, 0x1e, 0x83, 0x18, 0x69, 0xae, 0x00, 0xcb, 0x1b, 0x89, 0x53, 0xac, 0x6e, 0xcc, - 0xbf, 0xd7, 0x60, 0x06, 0xa7, 0x4f, 0xea, 0xd4, 0x8b, 0x2c, 0xce, 0xe9, 0x50, 0x89, 0x22, 0x89, + 0x30, 0x10, 0x14, 0x1e, 0x83, 0x18, 0x69, 0xae, 0x00, 0xcb, 0x28, 0x89, 0x53, 0xac, 0xa2, 0xcc, + 0xbf, 0xd5, 0x60, 0x06, 0xa7, 0x4f, 0xea, 0xd4, 0x8b, 0x2c, 0xce, 0xe9, 0x50, 0x89, 0x22, 0x89, 0xc3, 0xac, 0x60, 0xd4, 0xa6, 0xba, 0x28, 0x29, 0x3c, 0x16, 0x8a, 0x8c, 0xbe, 0xa6, 0x2c, 0x4e, 0x32, 0x2b, 0xed, 0xe5, 0xba, 0xbc, 0x48, 0x49, 0x1c, 0xb6, 0xec, 0xc5, 0x54, 0x89, 0x8e, 0x8c, 0x66, 0xb2, 0x31, 0xcd, 0xfa, 0xc7, 0xf8, 0x90, 0x38, 0xcc, 0xbf, 0x31, 0x4d, 0xfb, 0x46, 0x27, 0xe5, 0x0c, 0xd4, 0x2c, 0xfa, 0xc5, 0xb4, 0x93, 0xd1, 0x25, 0x54, 0x9b, 0xc7, 0xa2, 0x0a, 0x0a, - 0xaa, 0xea, 0xe4, 0x6a, 0x95, 0x26, 0xd7, 0x32, 0xcc, 0xa0, 0x9e, 0x34, 0xe8, 0xa7, 0xb1, 0x5e, - 0x54, 0x98, 0x6a, 0x6c, 0xcc, 0x14, 0x63, 0x43, 0x45, 0x77, 0x76, 0x04, 0xba, 0x73, 0x19, 0xba, - 0xbf, 0xd4, 0x01, 0x36, 0x48, 0x60, 0x87, 0xf1, 0x90, 0xf8, 0x31, 0x1b, 0x9e, 0x93, 0x51, 0x19, + 0xaa, 0xea, 0xe4, 0x6a, 0x95, 0x26, 0xd7, 0x32, 0xcc, 0xa0, 0x9e, 0x34, 0xe8, 0xa7, 0xb1, 0x2e, + 0x55, 0x98, 0x6a, 0x6c, 0xcc, 0x14, 0x63, 0x43, 0x45, 0x77, 0x76, 0x04, 0xba, 0x73, 0x19, 0xba, + 0xbf, 0xd0, 0x01, 0x36, 0x48, 0x60, 0x87, 0xf1, 0x90, 0xf8, 0x31, 0x1b, 0x9e, 0x93, 0x51, 0x19, 0xb8, 0x0a, 0x4f, 0xce, 0x29, 0xba, 0x9a, 0x53, 0x0c, 0x98, 0xe0, 0x0e, 0x47, 0x34, 0xf9, 0x6f, 0xe6, 0xcc, 0xc0, 0x0e, 0x51, 0x1b, 0x06, 0x79, 0x46, 0xb3, 0x9c, 0x41, 0x43, 0x47, 0x64, 0x99, - 0xba, 0x85, 0x04, 0x9b, 0xfc, 0x79, 0x7f, 0xbc, 0x2a, 0x6e, 0x60, 0x0e, 0x50, 0xb9, 0x27, 0x16, - 0xf2, 0x97, 0xa0, 0x1d, 0x25, 0x3b, 0xf9, 0xe0, 0x36, 0x93, 0xa1, 0x08, 0xf7, 0x12, 0x9f, 0x39, - 0x15, 0x2b, 0x7c, 0xd6, 0x08, 0xd3, 0x52, 0xce, 0x28, 0x56, 0x10, 0xe6, 0x87, 0x3a, 0xb4, 0xb7, - 0xc2, 0x81, 0xed, 0xbb, 0xdf, 0xe2, 0xc5, 0x21, 0x5f, 0xc0, 0x4f, 0x93, 0x9e, 0x97, 0xa0, 0x45, - 0xfc, 0x81, 0xe7, 0x46, 0x7b, 0x9b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0x89, 0x51, 0x09, 0xbc, - 0xae, 0x24, 0xf0, 0x05, 0x68, 0x0c, 0xe9, 0x8e, 0xeb, 0xa5, 0x71, 0x2f, 0x28, 0x1e, 0xf3, 0xc4, - 0x23, 0x3c, 0x93, 0x67, 0x31, 0x9f, 0x32, 0xf2, 0xa4, 0x3e, 0x55, 0x99, 0xd4, 0x9b, 0x72, 0x52, - 0x57, 0x1d, 0x0f, 0x25, 0xc7, 0xa3, 0xbb, 0x5a, 0x99, 0xbb, 0x7e, 0xaf, 0x41, 0x3b, 0x77, 0x37, - 0xd6, 0xab, 0x23, 0xdd, 0x55, 0x8c, 0x40, 0xbd, 0x22, 0x02, 0xb3, 0xb8, 0xa9, 0xc9, 0x71, 0xc3, - 0x22, 0x8d, 0x46, 0xae, 0xb4, 0x69, 0xc8, 0x68, 0xd6, 0x9b, 0x47, 0x6c, 0xc9, 0x59, 0x48, 0x49, - 0x5b, 0xb7, 0x86, 0xb2, 0x75, 0x2b, 0xe6, 0xd1, 0xdf, 0x68, 0x70, 0x9e, 0xa1, 0x5c, 0x1a, 0xc6, - 0x16, 0xb4, 0x69, 0x21, 0x12, 0x44, 0xa2, 0x79, 0xb6, 0x22, 0x51, 0x14, 0x83, 0xc6, 0x2a, 0x09, - 0x33, 0x85, 0x4e, 0xa1, 0x13, 0x91, 0x79, 0xaa, 0x14, 0x16, 0xed, 0xb1, 0x4a, 0xc2, 0xe6, 0x6f, - 0x35, 0x68, 0x63, 0x6a, 0x93, 0xe6, 0xf9, 0x99, 0x9b, 0xfd, 0x1e, 0x9c, 0x2f, 0xf6, 0x7c, 0xcb, - 0x8d, 0xe2, 0x8e, 0xbe, 0x54, 0x1b, 0xd7, 0xf4, 0x4a, 0x05, 0x6c, 0xae, 0x3d, 0xbd, 0x9d, 0x78, - 0x5e, 0x97, 0x44, 0x91, 0x3d, 0x20, 0x6b, 0x47, 0x3d, 0x72, 0xc0, 0x3e, 0x58, 0xe4, 0x60, 0x64, - 0x0c, 0xb1, 0x3a, 0x87, 0x17, 0x0a, 0x2e, 0xf5, 0xb3, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, - 0xa7, 0x53, 0x5b, 0xaa, 0xb1, 0x14, 0x2a, 0x48, 0xe3, 0x9b, 0x30, 0xcd, 0x73, 0xb8, 0xe8, 0xa6, - 0x33, 0xc1, 0x07, 0xf0, 0x7a, 0x65, 0xd5, 0x50, 0x69, 0x15, 0x56, 0x03, 0x82, 0x7e, 0xd3, 0x8f, - 0xc3, 0x23, 0x4b, 0xd1, 0xb8, 0xf8, 0x3e, 0xcc, 0x97, 0x9a, 0x18, 0x6d, 0xa8, 0xed, 0x93, 0x23, - 0x31, 0x0e, 0xf6, 0xd3, 0x78, 0x09, 0xea, 0x87, 0x6c, 0xf3, 0x27, 0xd0, 0x5f, 0xac, 0xb0, 0x40, - 0xd8, 0x6c, 0x61, 0xc3, 0x57, 0xf5, 0x2f, 0x6b, 0xe6, 0xb3, 0xd9, 0xc0, 0xe4, 0x31, 0x6a, 0xca, - 0x18, 0xcd, 0xb7, 0xa1, 0xd5, 0x8d, 0x06, 0x1b, 0x76, 0x6c, 0xf3, 0x86, 0xaf, 0x43, 0x6b, 0x98, - 0x93, 0xbc, 0x71, 0x75, 0x7f, 0x42, 0xc8, 0x92, 0x9b, 0x9b, 0x7f, 0xd6, 0xa1, 0x53, 0xed, 0x8a, - 0x28, 0x60, 0x36, 0x90, 0x30, 0x5c, 0xa7, 0x0e, 0xe1, 0x43, 0xab, 0x5b, 0x29, 0xc9, 0xb0, 0x23, - 0x61, 0xc8, 0x72, 0x98, 0x28, 0xb2, 0x91, 0x32, 0x56, 0x60, 0xc2, 0x4b, 0x61, 0x39, 0xde, 0x0a, - 0xde, 0xce, 0x18, 0x42, 0x9b, 0x7b, 0x57, 0x1a, 0x90, 0xc0, 0x6c, 0x75, 0x6c, 0xcc, 0xa2, 0x00, - 0x41, 0x93, 0x74, 0x20, 0x70, 0x25, 0xd5, 0x8b, 0x7d, 0x78, 0xaa, 0xb2, 0x69, 0x05, 0x80, 0x5f, - 0x52, 0x01, 0xbc, 0x38, 0x7a, 0x28, 0x45, 0x10, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, 0x3f, 0x58, - 0xf5, 0x9d, 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0xad, 0x7c, 0x06, 0x53, - 0xd3, 0x92, 0x59, 0x23, 0x77, 0xf8, 0x85, 0xf9, 0x50, 0x2b, 0xcd, 0x07, 0xf3, 0x2a, 0x4c, 0xcb, - 0xdd, 0xf1, 0x24, 0x62, 0x3f, 0xe8, 0x91, 0x03, 0x3e, 0xa0, 0x19, 0x4b, 0x50, 0x9c, 0xcf, 0x5b, - 0x88, 0xbd, 0x81, 0xa0, 0xcc, 0x3f, 0xe9, 0x70, 0xae, 0x64, 0x72, 0x14, 0x3c, 0xac, 0x1e, 0x39, - 0x5e, 0x6a, 0xa3, 0xe2, 0x65, 0x42, 0x89, 0x97, 0x7d, 0x98, 0x47, 0x90, 0xa4, 0xae, 0x3b, 0x75, - 0x1e, 0x00, 0x6f, 0x54, 0x95, 0xea, 0x65, 0x23, 0x05, 0xf6, 0x12, 0x17, 0xc1, 0x2f, 0xeb, 0x5d, - 0x24, 0xb0, 0x50, 0xdd, 0xb8, 0x02, 0xfe, 0x57, 0x54, 0xf8, 0x3f, 0x5b, 0x05, 0xbf, 0x6c, 0x89, - 0x84, 0xff, 0x01, 0xcc, 0xb1, 0x45, 0xb5, 0x47, 0x7c, 0xa7, 0x1b, 0x0d, 0xb8, 0x23, 0x97, 0xa0, - 0x85, 0xf2, 0xdd, 0x68, 0x90, 0x6f, 0xdd, 0x24, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0xb6, 0x78, 0xf2, - 0x16, 0x62, 0xd1, 0x93, 0x58, 0x2c, 0x41, 0x46, 0x44, 0x9c, 0x7a, 0x30, 0xef, 0xd6, 0xac, 0x8c, - 0x36, 0x3f, 0x68, 0xc0, 0xa4, 0x88, 0x46, 0x9e, 0x14, 0xd9, 0x6e, 0x39, 0x5b, 0x56, 0x91, 0xc2, - 0xba, 0xb6, 0x7f, 0x98, 0x87, 0x17, 0x52, 0xf2, 0x91, 0x53, 0x4d, 0x3d, 0x72, 0x2a, 0xd8, 0x34, - 0x51, 0xb6, 0xa9, 0x30, 0xae, 0x7a, 0x79, 0x5c, 0xac, 0x8c, 0xe3, 0x95, 0xcd, 0xb6, 0x67, 0xc7, - 0xbb, 0x34, 0x1c, 0x8a, 0xcd, 0x6f, 0xdd, 0x2a, 0xf1, 0x59, 0xe9, 0x88, 0xbc, 0xac, 0xf6, 0xc7, - 0x14, 0x5e, 0xe0, 0xb2, 0x4a, 0x1b, 0x39, 0xe9, 0x1e, 0x00, 0x4f, 0x28, 0x54, 0x26, 0xda, 0x16, - 0x45, 0x2e, 0xf5, 0x79, 0x15, 0x8a, 0xa5, 0xbe, 0xcc, 0x62, 0x23, 0x1f, 0x46, 0x83, 0x6b, 0x21, - 0x1d, 0x8a, 0x73, 0x8a, 0x94, 0xe4, 0x23, 0xa7, 0x7e, 0x9c, 0x56, 0xb0, 0x78, 0x36, 0x21, 0xb3, - 0x98, 0xac, 0x20, 0x79, 0x9d, 0x3f, 0x6d, 0xa5, 0x24, 0x8b, 0xa5, 0x88, 0x1c, 0x88, 0xe2, 0x9d, - 0xfd, 0x54, 0x90, 0x9b, 0x53, 0x91, 0x2b, 0x54, 0x63, 0x6d, 0xfe, 0x55, 0xae, 0xc6, 0xf2, 0x12, - 0x67, 0x5e, 0x29, 0x71, 0x56, 0x61, 0x92, 0x06, 0x6c, 0xfa, 0x47, 0x1d, 0x83, 0x4f, 0x97, 0xe7, - 0x47, 0x2f, 0x50, 0x2b, 0x5b, 0xd8, 0x12, 0x27, 0x46, 0x2a, 0x67, 0xdc, 0x82, 0x39, 0xba, 0xbb, - 0xeb, 0xb9, 0x3e, 0xd9, 0x4e, 0xa2, 0x3d, 0xbe, 0x49, 0x3e, 0xc7, 0x83, 0xdd, 0xac, 0x2a, 0x22, - 0xd4, 0x96, 0x56, 0x51, 0x94, 0x55, 0x7e, 0x76, 0x8c, 0x9b, 0x1c, 0xbe, 0xc0, 0x9d, 0xe7, 0x0b, - 0x9c, 0xc2, 0xe3, 0x67, 0x77, 0xd2, 0x42, 0xff, 0x14, 0x77, 0x9c, 0xcc, 0x5a, 0x7c, 0x15, 0xa6, - 0x65, 0x63, 0x2b, 0x26, 0xe6, 0x79, 0x79, 0x62, 0x4e, 0xc9, 0xf3, 0xee, 0x87, 0x1a, 0xcc, 0x15, - 0xcc, 0x64, 0xad, 0x63, 0x37, 0xf6, 0x88, 0xd0, 0x80, 0x04, 0xdb, 0xe9, 0x38, 0x24, 0xea, 0x8b, - 0x89, 0xc0, 0x7f, 0x8b, 0x9a, 0xb1, 0x96, 0x9d, 0x75, 0x99, 0x30, 0xed, 0x6e, 0xf5, 0x98, 0xa2, - 0x1e, 0x4d, 0x7c, 0x27, 0x3b, 0xc8, 0x96, 0x78, 0x2c, 0x10, 0xdd, 0xad, 0xde, 0x9a, 0xed, 0x0c, - 0x08, 0x5e, 0x37, 0xd4, 0xb9, 0x4d, 0x2a, 0xd3, 0x74, 0x60, 0xea, 0xb6, 0x1b, 0x44, 0xeb, 0x74, - 0x38, 0x64, 0x70, 0x3a, 0x24, 0x66, 0x35, 0xb9, 0xc6, 0x07, 0x2f, 0x28, 0xe6, 0x19, 0x87, 0xec, - 0xda, 0x89, 0x17, 0xb3, 0xa6, 0xe9, 0xf4, 0x97, 0x58, 0xfc, 0x3c, 0x35, 0xa2, 0xfe, 0x06, 0x4a, - 0xa3, 0x9d, 0x12, 0xc7, 0xfc, 0xa3, 0x0e, 0x6d, 0xbe, 0xba, 0xad, 0xf3, 0xe0, 0x71, 0xb8, 0xd0, - 0x15, 0xa8, 0xf3, 0xc9, 0x2c, 0xaa, 0xc3, 0xe3, 0x4f, 0x3f, 0xb0, 0xa9, 0x71, 0x15, 0x1a, 0x34, - 0xe0, 0x25, 0x25, 0x2e, 0x7d, 0xcf, 0x8d, 0x12, 0x52, 0x8f, 0xae, 0x2d, 0x21, 0x65, 0x5c, 0x03, - 0x18, 0xe6, 0x15, 0x24, 0x16, 0x02, 0xe3, 0xea, 0x90, 0x24, 0x99, 0x73, 0xb3, 0x1c, 0x97, 0x9d, - 0x5f, 0xd7, 0x2c, 0x95, 0x69, 0x6c, 0xc2, 0x2c, 0x37, 0x7b, 0x2b, 0x3d, 0x06, 0xe3, 0x18, 0x8c, - 0xdf, 0x63, 0x41, 0xda, 0xfc, 0x89, 0x26, 0xdc, 0xc8, 0xbe, 0xf6, 0x08, 0xfa, 0x3e, 0x77, 0x89, - 0x76, 0x2a, 0x97, 0x2c, 0xc2, 0xd4, 0x30, 0x91, 0x4e, 0xe5, 0x6a, 0x56, 0x46, 0xe7, 0x10, 0xd5, - 0xc6, 0x86, 0xc8, 0xfc, 0xa9, 0x06, 0x9d, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xab, 0x41, 0xe0, 0x89, - 0x6b, 0x8e, 0x53, 0x63, 0xfe, 0x55, 0x68, 0xda, 0xa8, 0xc6, 0x8f, 0x05, 0xec, 0x63, 0x9c, 0xb4, - 0xe5, 0x32, 0xd2, 0xa1, 0x49, 0x4d, 0x3e, 0x34, 0x31, 0x3f, 0xd2, 0x60, 0x16, 0x9d, 0xf2, 0x4e, - 0xe2, 0xc6, 0xa7, 0xb6, 0x6f, 0x0d, 0xa6, 0x0e, 0x12, 0x37, 0x3e, 0x45, 0x54, 0x66, 0x72, 0xe5, - 0x78, 0xaa, 0x55, 0xc4, 0x93, 0xf9, 0x0b, 0x0d, 0x2e, 0x14, 0xdd, 0xba, 0xda, 0xef, 0x93, 0xe0, - 0x51, 0x4e, 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, 0x68, 0x54, 0x69, 0xb2, 0x45, 0xee, 0x91, 0xfe, - 0xe3, 0x6b, 0xf2, 0x77, 0x74, 0xf8, 0xf4, 0xf5, 0x6c, 0xe2, 0xdd, 0x0e, 0x6d, 0x3f, 0xda, 0x25, - 0x61, 0xf8, 0x08, 0xed, 0xbd, 0x05, 0x33, 0x3e, 0xb9, 0x9f, 0xdb, 0x24, 0xa6, 0xe3, 0xb8, 0x6a, - 0x54, 0xe1, 0xf1, 0xd6, 0x2e, 0xf3, 0x3f, 0x1a, 0xb4, 0x51, 0xcf, 0xdb, 0x6e, 0x7f, 0xff, 0x11, - 0x0e, 0x7e, 0x13, 0x66, 0xf7, 0xb9, 0x05, 0x8c, 0x3a, 0xc5, 0xb2, 0x5d, 0x90, 0x1e, 0x73, 0xf8, - 0xff, 0xd5, 0x60, 0x3e, 0xbd, 0x5d, 0x3d, 0x74, 0x1f, 0x65, 0xb0, 0x6e, 0xc3, 0x9c, 0x8b, 0x26, - 0x9c, 0xd2, 0x01, 0x45, 0xf1, 0x31, 0x3d, 0xf0, 0x6b, 0x0d, 0xe6, 0x50, 0xd3, 0x9b, 0x7e, 0x4c, - 0xc2, 0x53, 0x8f, 0xff, 0x06, 0xb4, 0x88, 0x1f, 0x87, 0xb6, 0x7f, 0x9a, 0x15, 0x52, 0x16, 0x1d, - 0x73, 0x91, 0xfc, 0x48, 0x03, 0x83, 0xab, 0xda, 0x70, 0xa3, 0xa1, 0x1b, 0x45, 0x8f, 0x10, 0xba, - 0xf1, 0x0c, 0xfe, 0x91, 0x0e, 0xe7, 0x25, 0x2d, 0xdd, 0x24, 0x7e, 0xdc, 0x4d, 0x36, 0x36, 0xa0, - 0xc9, 0x6a, 0x04, 0xf9, 0x36, 0x72, 0xdc, 0x8e, 0x72, 0x41, 0x56, 0xc5, 0x72, 0xa2, 0x47, 0xfa, - 0xd4, 0x77, 0x22, 0x5e, 0x1c, 0xcd, 0x58, 0x0a, 0x8f, 0x2d, 0x43, 0x8b, 0x92, 0x9a, 0x75, 0xdb, - 0xef, 0x13, 0xef, 0x89, 0x71, 0x91, 0xf9, 0x73, 0x0d, 0x66, 0xb1, 0xc9, 0xe3, 0x3f, 0x64, 0x96, - 0xeb, 0x31, 0x90, 0x3f, 0x31, 0x28, 0xb1, 0xf0, 0x5a, 0x90, 0xb4, 0xc8, 0x75, 0xf5, 0xe3, 0x1b, - 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, 0xa9, 0x82, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x5a, - 0x3e, 0x80, 0x5f, 0xc7, 0x4f, 0x7c, 0xf8, 0x2f, 0x17, 0x86, 0x72, 0xec, 0x6b, 0x83, 0x87, 0x73, - 0xfa, 0x3e, 0xcc, 0xe3, 0xad, 0xaf, 0x54, 0x13, 0x1a, 0x1d, 0x98, 0xb4, 0x1d, 0x3c, 0x86, 0xd0, - 0xb8, 0x50, 0x4a, 0xaa, 0xf7, 0xf9, 0xe2, 0xdd, 0x57, 0x7e, 0x9f, 0x7f, 0x11, 0xc0, 0x76, 0x9c, - 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0x5a, 0xe0, 0x4b, 0x1c, 0xf3, 0x2d, 0x98, 0xbe, 0x16, 0xd2, 0xe1, - 0x6d, 0xe9, 0xfe, 0xf6, 0xd8, 0x1b, 0x66, 0xf9, 0xee, 0x57, 0x57, 0xef, 0x7e, 0xcd, 0x6f, 0xc0, - 0x53, 0x25, 0xc3, 0xb9, 0xb3, 0xd6, 0xf1, 0x5a, 0x3a, 0xed, 0x44, 0x84, 0x4c, 0xd5, 0xb9, 0x9c, - 0x6c, 0x8b, 0xa5, 0x08, 0x99, 0x1f, 0x68, 0xf0, 0x4c, 0x49, 0xfd, 0x6a, 0x10, 0x84, 0xf4, 0x50, - 0x60, 0x72, 0x16, 0xdd, 0xa8, 0xc5, 0xaf, 0x5e, 0x2c, 0x7e, 0x2b, 0x8d, 0x50, 0x0a, 0xf6, 0x8f, - 0xc1, 0x88, 0x9f, 0x69, 0x30, 0x27, 0x8c, 0x70, 0x1c, 0xd1, 0xed, 0x2b, 0xd0, 0xc0, 0x27, 0x2d, - 0xa2, 0xc3, 0x67, 0x2a, 0x3b, 0x4c, 0x9f, 0xe2, 0x58, 0xa2, 0x71, 0x39, 0x22, 0xf5, 0xaa, 0x19, - 0xf5, 0x95, 0x2c, 0xd8, 0xc7, 0x7e, 0x74, 0x22, 0x04, 0xcc, 0xaf, 0xa5, 0xc1, 0xbc, 0x41, 0x3c, - 0x72, 0x96, 0x3e, 0x32, 0xef, 0xc0, 0x2c, 0x7f, 0x5f, 0x93, 0xfb, 0xe0, 0x4c, 0xd4, 0xbe, 0x07, - 0x6d, 0xae, 0xf6, 0xcc, 0xed, 0xcd, 0x66, 0x07, 0xf3, 0x8f, 0xbc, 0x94, 0x9c, 0x89, 0xf6, 0x2f, - 0xc2, 0xb9, 0xd4, 0xf7, 0x77, 0x02, 0x27, 0x3b, 0x44, 0x1a, 0x71, 0x4f, 0x67, 0xbe, 0x04, 0x0b, - 0xeb, 0xd4, 0x3f, 0x24, 0x61, 0x84, 0x17, 0x89, 0x5c, 0x24, 0x95, 0x50, 0x26, 0xbf, 0xa0, 0xcc, - 0x7b, 0xb0, 0x28, 0x4b, 0xf4, 0x48, 0xbc, 0x1d, 0xba, 0x87, 0x92, 0x94, 0x38, 0xa0, 0xd6, 0x94, - 0x03, 0xea, 0xfc, 0x40, 0x5b, 0x57, 0x0e, 0xb4, 0x2f, 0x40, 0xd3, 0x8d, 0x84, 0x02, 0x1e, 0x54, - 0x53, 0x56, 0xce, 0x30, 0x6d, 0x98, 0x47, 0xf7, 0x8b, 0x0b, 0x23, 0xde, 0xc5, 0x22, 0x4c, 0x61, - 0x4c, 0x65, 0x9d, 0x64, 0xf4, 0xc8, 0xeb, 0x97, 0x91, 0x97, 0x8d, 0x66, 0x0f, 0xe6, 0xc5, 0xa3, - 0x9a, 0x6d, 0x7b, 0xe0, 0xfa, 0xb8, 0xc8, 0x5e, 0x04, 0x08, 0xec, 0x41, 0xfa, 0x00, 0x0f, 0xaf, - 0xcd, 0x24, 0x0e, 0xfb, 0x1e, 0xed, 0xd1, 0xfb, 0xe2, 0xbb, 0x8e, 0xdf, 0x73, 0x8e, 0xf9, 0x2e, - 0x18, 0x16, 0x89, 0x02, 0xea, 0x47, 0x44, 0xd2, 0xba, 0x04, 0xad, 0xf5, 0x24, 0x0c, 0x89, 0xcf, - 0xba, 0x4a, 0x5f, 0x98, 0xc9, 0x2c, 0xa6, 0xb7, 0x97, 0xeb, 0xc5, 0x23, 0x76, 0x89, 0x63, 0xfe, - 0xb8, 0x06, 0xcd, 0x9e, 0x3b, 0xf0, 0x6d, 0xcf, 0x22, 0x07, 0xc6, 0xeb, 0xd0, 0xc0, 0x2d, 0x8b, - 0x88, 0x94, 0xaa, 0x23, 0x5f, 0x6c, 0x8d, 0x7b, 0x33, 0x8b, 0x1c, 0xdc, 0xf8, 0x94, 0x25, 0x64, - 0x8c, 0x77, 0x60, 0x06, 0x7f, 0xdd, 0xc4, 0x23, 0x28, 0x91, 0xbf, 0x3e, 0x7f, 0x82, 0x12, 0xd1, - 0x1a, 0x75, 0xa9, 0x1a, 0x98, 0x41, 0x7d, 0x5e, 0xd2, 0x88, 0xe5, 0x61, 0xb4, 0x41, 0x58, 0xf9, - 0x08, 0x83, 0x50, 0x86, 0x49, 0xdb, 0xfc, 0x90, 0x46, 0x64, 0xea, 0xd1, 0xd2, 0x78, 0x96, 0x23, - 0xa4, 0x51, 0x86, 0x49, 0xef, 0x25, 0xfe, 0xe0, 0x4e, 0x20, 0xce, 0x0e, 0x47, 0x4b, 0xdf, 0xe0, - 0xcd, 0x84, 0x34, 0xca, 0x30, 0xe9, 0x90, 0x2f, 0xde, 0xdc, 0xe9, 0xc7, 0x49, 0xe3, 0x1a, 0x2f, - 0xa4, 0x51, 0x66, 0xad, 0x09, 0x93, 0x81, 0x7d, 0xe4, 0x51, 0xdb, 0x31, 0x3f, 0xac, 0x01, 0xa4, - 0x0d, 0x23, 0x5e, 0xe8, 0x28, 0x10, 0x2d, 0x9f, 0x08, 0x51, 0xe0, 0x1d, 0x49, 0x20, 0xf5, 0xaa, - 0x41, 0xfa, 0xc2, 0xb8, 0x20, 0xa1, 0xb6, 0x02, 0x4c, 0x57, 0x0b, 0x30, 0x2d, 0x9f, 0x08, 0x93, - 0x30, 0x4a, 0x00, 0x75, 0xb5, 0x00, 0xd4, 0xf2, 0x89, 0x40, 0x09, 0x79, 0x01, 0xd5, 0xd5, 0x02, - 0x54, 0xcb, 0x27, 0x42, 0x25, 0xe4, 0x05, 0x58, 0x57, 0x0b, 0x60, 0x2d, 0x9f, 0x08, 0x96, 0x90, - 0x2f, 0xc3, 0xf5, 0x57, 0x1d, 0x66, 0xb9, 0xcb, 0xf0, 0x16, 0xd6, 0xdf, 0xa5, 0xfc, 0x3e, 0x80, - 0xbb, 0x4b, 0x7d, 0xa3, 0xa9, 0x32, 0x8d, 0x17, 0x61, 0x1e, 0x19, 0x44, 0xba, 0x2e, 0xd1, 0xf9, - 0x75, 0x49, 0xf9, 0x03, 0xbf, 0x20, 0x4a, 0xa2, 0x98, 0x0e, 0x37, 0xec, 0xd8, 0x4e, 0x8b, 0xaf, - 0x9c, 0x23, 0x5f, 0xdf, 0x4d, 0x94, 0x5e, 0x8c, 0x87, 0x94, 0x0e, 0xb3, 0x7b, 0x39, 0x41, 0x31, - 0x89, 0xd8, 0x1d, 0x12, 0x9a, 0xc4, 0x62, 0x99, 0x48, 0x49, 0x7c, 0x47, 0xe5, 0xb8, 0x36, 0xbf, - 0xf4, 0x12, 0x8f, 0x8c, 0x32, 0x06, 0x5f, 0xd9, 0xf2, 0x4b, 0x3c, 0xf1, 0xa2, 0x3b, 0xe7, 0x8c, - 0x71, 0xe1, 0xc6, 0xff, 0x1c, 0xe0, 0xc6, 0xae, 0xfc, 0xf8, 0xa8, 0x6e, 0x29, 0x3c, 0xf3, 0x1f, - 0x1a, 0x9c, 0xdb, 0xb6, 0xc3, 0xd8, 0xed, 0xbb, 0x81, 0xed, 0xc7, 0x5d, 0x12, 0xdb, 0x7c, 0x9c, - 0xca, 0x63, 0x4e, 0xed, 0xe1, 0x1e, 0x73, 0x6e, 0xc3, 0xdc, 0x40, 0xdd, 0x81, 0x3c, 0xe4, 0xe6, - 0xa1, 0x28, 0xae, 0xbc, 0x4c, 0xad, 0x3d, 0xf4, 0xcb, 0x54, 0xf3, 0x7b, 0x3a, 0xcc, 0x15, 0x96, - 0xd7, 0x63, 0x73, 0xd3, 0x2a, 0x80, 0x9b, 0x85, 0xda, 0x31, 0x07, 0xf4, 0x6a, 0x3c, 0x5a, 0x92, - 0x50, 0xd5, 0x6d, 0x5f, 0xed, 0xf4, 0xb7, 0x7d, 0x37, 0xa0, 0x15, 0xe4, 0x20, 0x1d, 0xb3, 0x3f, - 0xaa, 0x80, 0xd2, 0x92, 0x45, 0xcd, 0xf7, 0x61, 0xbe, 0xb4, 0x8a, 0xf1, 0x6b, 0x3b, 0xba, 0x4f, - 0xfc, 0xec, 0xda, 0x8e, 0x11, 0x52, 0x40, 0xeb, 0xc5, 0x80, 0xf6, 0xdc, 0x43, 0xf9, 0x99, 0xbc, - 0x20, 0xcd, 0xef, 0xeb, 0xb0, 0x50, 0x9d, 0x81, 0x9e, 0x54, 0x77, 0xef, 0x40, 0x67, 0xd4, 0x6a, - 0x7f, 0x66, 0x5e, 0xcf, 0xa3, 0x3b, 0xcb, 0xd5, 0x4f, 0xaa, 0xbb, 0xcf, 0xa5, 0xd1, 0x2d, 0xa5, - 0x43, 0xf3, 0x57, 0x99, 0x7f, 0xb2, 0x6a, 0xe4, 0x09, 0xf5, 0x8f, 0x71, 0x09, 0xda, 0x38, 0x4c, - 0xe9, 0x79, 0x08, 0x16, 0xb7, 0x25, 0x7e, 0xbe, 0x52, 0x48, 0xa5, 0xc1, 0x99, 0xc5, 0xec, 0xef, - 0xb4, 0x14, 0x93, 0xac, 0xc6, 0xfb, 0x44, 0x61, 0x92, 0x47, 0x9a, 0x54, 0xf8, 0x48, 0x91, 0x96, - 0xd5, 0x9e, 0xff, 0x8f, 0xb4, 0x93, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x04, 0x9a, 0xdf, 0x86, 0x99, - 0x0d, 0xe2, 0x75, 0xa3, 0x41, 0xfa, 0x7e, 0xf5, 0x4c, 0x37, 0x93, 0xc5, 0x57, 0x7e, 0x13, 0xe5, - 0x57, 0x7e, 0x6b, 0x30, 0x2b, 0x1b, 0x70, 0x9a, 0xf7, 0x99, 0x6b, 0x17, 0xbe, 0xbe, 0xb8, 0x22, - 0xfe, 0x23, 0xfc, 0x5a, 0xc9, 0x89, 0x3b, 0x0d, 0xfe, 0xef, 0xc5, 0x97, 0xff, 0x17, 0x00, 0x00, - 0xff, 0xff, 0x01, 0xbd, 0x6f, 0xf7, 0x7c, 0x3c, 0x00, 0x00, + 0xba, 0x85, 0x04, 0x9b, 0xfc, 0x79, 0x7f, 0xbc, 0xfa, 0x6e, 0x60, 0x0e, 0x50, 0xb9, 0x27, 0x6e, + 0x18, 0x2e, 0x41, 0x3b, 0x4a, 0x76, 0xf2, 0xc1, 0x6d, 0x26, 0x43, 0x11, 0xee, 0x25, 0x3e, 0x73, + 0x2a, 0xee, 0x24, 0x58, 0x23, 0x4c, 0x4b, 0x39, 0xa3, 0x58, 0x41, 0x98, 0x1f, 0xea, 0xd0, 0xde, + 0x0a, 0x07, 0xb6, 0xef, 0x7e, 0x33, 0xab, 0x94, 0x4f, 0x95, 0x9e, 0x97, 0xa0, 0x45, 0xfc, 0x81, + 0xe7, 0x46, 0x7b, 0x9b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0x89, 0x51, 0x09, 0xbc, 0xae, 0x24, + 0xf0, 0x05, 0x68, 0x0c, 0xe9, 0x8e, 0xeb, 0xa5, 0x71, 0x2f, 0x28, 0x1e, 0xf3, 0xc4, 0x23, 0x3c, + 0x93, 0x67, 0x31, 0x9f, 0x32, 0xf2, 0xa4, 0x3e, 0x55, 0x99, 0xd4, 0x9b, 0x72, 0x52, 0x57, 0x1d, + 0x0f, 0x25, 0xc7, 0xa3, 0xbb, 0x5a, 0x99, 0xbb, 0x7e, 0xa7, 0x41, 0x3b, 0x77, 0x37, 0xd6, 0xab, + 0x23, 0xdd, 0x55, 0x8c, 0x40, 0xbd, 0x22, 0x02, 0xb3, 0xb8, 0xa9, 0xc9, 0x71, 0xc3, 0x22, 0x8d, + 0x46, 0xae, 0xb4, 0x69, 0xc8, 0x68, 0xd6, 0x9b, 0x47, 0x6c, 0xc9, 0x59, 0x48, 0x49, 0x5b, 0xc4, + 0x86, 0xb2, 0x45, 0x2c, 0xe6, 0xd1, 0x5f, 0x6b, 0x70, 0x9e, 0xa1, 0x5c, 0x1a, 0xc6, 0x16, 0xb4, + 0x69, 0x21, 0x12, 0x44, 0xa2, 0x79, 0xb6, 0x22, 0x51, 0x14, 0x83, 0xc6, 0x2a, 0x09, 0x33, 0x85, + 0x4e, 0xa1, 0x13, 0x91, 0x79, 0xaa, 0x14, 0x16, 0xed, 0xb1, 0x4a, 0xc2, 0xe6, 0x6f, 0x34, 0x68, + 0x63, 0x6a, 0x93, 0xe6, 0xf9, 0x99, 0x9b, 0xfd, 0x1e, 0x9c, 0x2f, 0xf6, 0x7c, 0xcb, 0x8d, 0xe2, + 0x8e, 0xbe, 0x54, 0x1b, 0xd7, 0xf4, 0x4a, 0x05, 0x6c, 0xae, 0x3d, 0xbd, 0x9d, 0x78, 0x5e, 0x97, + 0x44, 0x91, 0x3d, 0x20, 0x6b, 0x47, 0x3d, 0x72, 0xc0, 0x3e, 0x58, 0xe4, 0x60, 0x64, 0x0c, 0xb1, + 0x3a, 0x87, 0x17, 0x0a, 0x2e, 0xf5, 0xb3, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, 0xa7, 0x53, + 0x5b, 0xaa, 0xb1, 0x14, 0x2a, 0x48, 0xe3, 0x1b, 0x30, 0xcd, 0x73, 0xb8, 0xe8, 0xa6, 0x33, 0xc1, + 0x07, 0xf0, 0x7a, 0x65, 0xd5, 0x50, 0x69, 0x15, 0x56, 0x03, 0x82, 0x7e, 0xd3, 0x8f, 0xc3, 0x23, + 0x4b, 0xd1, 0xb8, 0xf8, 0x3e, 0xcc, 0x97, 0x9a, 0x18, 0x6d, 0xa8, 0xed, 0x93, 0x23, 0x31, 0x0e, + 0xf6, 0xd3, 0x78, 0x09, 0xea, 0x87, 0x6c, 0xf3, 0x27, 0xd0, 0x5f, 0xac, 0xb0, 0x40, 0xd8, 0x6c, + 0x61, 0xc3, 0x57, 0xf5, 0x2f, 0x69, 0xe6, 0xb3, 0xd9, 0xc0, 0xe4, 0x31, 0x6a, 0xca, 0x18, 0xcd, + 0xb7, 0xa1, 0xd5, 0x8d, 0x06, 0x1b, 0x76, 0x6c, 0xf3, 0x86, 0xaf, 0x43, 0x6b, 0x98, 0x93, 0xbc, + 0x71, 0x75, 0x7f, 0x42, 0xc8, 0x92, 0x9b, 0x9b, 0x7f, 0xd2, 0xa1, 0x53, 0xed, 0x8a, 0x28, 0x60, + 0x36, 0x90, 0x30, 0x5c, 0xa7, 0x0e, 0xe1, 0x43, 0xab, 0x5b, 0x29, 0xc9, 0xb0, 0x23, 0x61, 0xc8, + 0x72, 0x98, 0x28, 0xb2, 0x91, 0x32, 0x56, 0x60, 0xc2, 0x4b, 0x61, 0x39, 0xde, 0x0a, 0xde, 0xce, + 0x18, 0x42, 0x9b, 0x7b, 0x57, 0x1a, 0x90, 0xc0, 0x6c, 0x75, 0x6c, 0xcc, 0xa2, 0x00, 0x41, 0x93, + 0x74, 0x20, 0x70, 0x25, 0xd5, 0x8b, 0x7d, 0x78, 0xaa, 0xb2, 0x69, 0x05, 0x80, 0x5f, 0x50, 0x01, + 0xbc, 0x38, 0x7a, 0x28, 0x45, 0x10, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, 0x3f, 0x58, 0xf5, 0x9d, + 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0xad, 0x7c, 0x06, 0x53, 0xd3, 0x92, + 0x59, 0x23, 0x77, 0xf8, 0x85, 0xf9, 0x50, 0x2b, 0xcd, 0x07, 0xf3, 0x2a, 0x4c, 0xcb, 0xdd, 0xf1, + 0x24, 0x62, 0x3f, 0xe8, 0x91, 0x03, 0x3e, 0xa0, 0x19, 0x4b, 0x50, 0x9c, 0xcf, 0x5b, 0x88, 0xbd, + 0x81, 0xa0, 0xcc, 0x3f, 0xea, 0x70, 0xae, 0x64, 0x72, 0x14, 0x3c, 0xac, 0x1e, 0x39, 0x5e, 0x6a, + 0xa3, 0xe2, 0x65, 0x42, 0x89, 0x97, 0x7d, 0x98, 0x47, 0x90, 0xa4, 0xae, 0x3b, 0x75, 0x1e, 0x00, + 0x6f, 0x54, 0x95, 0xea, 0x65, 0x23, 0x05, 0xf6, 0x12, 0x17, 0xc1, 0x2f, 0xeb, 0x5d, 0x24, 0xb0, + 0x50, 0xdd, 0xb8, 0x02, 0xfe, 0x57, 0x54, 0xf8, 0x3f, 0x5d, 0x05, 0xbf, 0x6c, 0x89, 0x84, 0xff, + 0x01, 0xcc, 0xb1, 0x45, 0xb5, 0x47, 0x7c, 0xa7, 0x1b, 0x0d, 0xb8, 0x23, 0x97, 0xa0, 0x85, 0xf2, + 0xdd, 0x68, 0x90, 0x6f, 0xdd, 0x24, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0xb6, 0x78, 0xf2, 0x16, 0x62, + 0xd1, 0x93, 0x58, 0x2c, 0x41, 0x46, 0x44, 0x9c, 0x7a, 0x30, 0xef, 0xd6, 0xac, 0x8c, 0x36, 0x3f, + 0x68, 0xc0, 0xa4, 0x88, 0x46, 0x9e, 0x14, 0xd9, 0x6e, 0x39, 0x5b, 0x56, 0x91, 0xc2, 0xba, 0xb6, + 0x7f, 0x98, 0x87, 0x17, 0x52, 0xf2, 0x91, 0x53, 0x4d, 0x3d, 0x72, 0x2a, 0xd8, 0x34, 0x51, 0xb6, + 0xa9, 0x30, 0xae, 0x7a, 0x79, 0x5c, 0xac, 0x8c, 0xe3, 0x95, 0xcd, 0xb6, 0x67, 0xc7, 0xbb, 0x34, + 0x1c, 0x8a, 0xcd, 0x6f, 0xdd, 0x2a, 0xf1, 0x59, 0xe9, 0x88, 0xbc, 0xac, 0xf6, 0xc7, 0x14, 0x5e, + 0xe0, 0xb2, 0x4a, 0x1b, 0x39, 0xe9, 0x1e, 0x00, 0x4f, 0x28, 0x54, 0x26, 0xda, 0x16, 0x45, 0x2e, + 0xf5, 0x79, 0x15, 0x8a, 0xa5, 0xbe, 0xcc, 0x62, 0x23, 0x1f, 0x46, 0x83, 0x6b, 0x21, 0x1d, 0x8a, + 0x73, 0x8a, 0x94, 0xe4, 0x23, 0xa7, 0x7e, 0x9c, 0x56, 0xb0, 0x78, 0x36, 0x21, 0xb3, 0x98, 0xac, + 0x20, 0x79, 0x9d, 0x3f, 0x6d, 0xa5, 0x24, 0x8b, 0xa5, 0x88, 0x1c, 0x88, 0xe2, 0x9d, 0xfd, 0x54, + 0x90, 0x9b, 0x53, 0x91, 0x2b, 0x54, 0x63, 0x6d, 0xfe, 0x55, 0xae, 0xc6, 0xf2, 0x12, 0x67, 0x5e, + 0x29, 0x71, 0x56, 0x61, 0x92, 0x06, 0x6c, 0xfa, 0x47, 0x1d, 0x83, 0x4f, 0x97, 0xe7, 0x47, 0x2f, + 0x50, 0x2b, 0x5b, 0xd8, 0x12, 0x27, 0x46, 0x2a, 0x67, 0xdc, 0x82, 0x39, 0xba, 0xbb, 0xeb, 0xb9, + 0x3e, 0xd9, 0x4e, 0xa2, 0x3d, 0xbe, 0x49, 0x3e, 0xc7, 0x83, 0xdd, 0xac, 0x2a, 0x22, 0xd4, 0x96, + 0x56, 0x51, 0x94, 0x55, 0x7e, 0x76, 0x8c, 0x9b, 0x1c, 0xbe, 0xc0, 0x9d, 0xe7, 0x0b, 0x9c, 0xc2, + 0xe3, 0x67, 0x77, 0xd2, 0x42, 0xff, 0x14, 0x77, 0x9c, 0xcc, 0x5a, 0x7c, 0x15, 0xa6, 0x65, 0x63, + 0x2b, 0x26, 0xe6, 0x79, 0x79, 0x62, 0x4e, 0xc9, 0xf3, 0xee, 0x07, 0x1a, 0xcc, 0x15, 0xcc, 0x64, + 0xad, 0x63, 0x37, 0xf6, 0x88, 0xd0, 0x80, 0x04, 0xdb, 0xe9, 0x38, 0x24, 0xea, 0x8b, 0x89, 0xc0, + 0x7f, 0x8b, 0x9a, 0xb1, 0x96, 0x9d, 0x75, 0x99, 0x30, 0xed, 0x6e, 0xf5, 0x98, 0xa2, 0x1e, 0x4d, + 0x7c, 0x27, 0x3b, 0xc8, 0x96, 0x78, 0x2c, 0x10, 0xdd, 0xad, 0xde, 0x9a, 0xed, 0x0c, 0x08, 0x5e, + 0x6b, 0xd4, 0xb9, 0x4d, 0x2a, 0xd3, 0x74, 0x60, 0xea, 0xb6, 0x1b, 0x44, 0xeb, 0x74, 0x38, 0x64, + 0x70, 0x3a, 0x24, 0x66, 0x35, 0xb9, 0xc6, 0x07, 0x2f, 0x28, 0xe6, 0x19, 0x87, 0xec, 0xda, 0x89, + 0x17, 0xb3, 0xa6, 0xe9, 0xf4, 0x97, 0x58, 0xfc, 0x3c, 0x35, 0xa2, 0xfe, 0x06, 0x4a, 0xa3, 0x9d, + 0x12, 0xc7, 0xfc, 0x83, 0x0e, 0x6d, 0xbe, 0xba, 0xad, 0xf3, 0xe0, 0x71, 0xb8, 0xd0, 0x15, 0xa8, + 0xf3, 0xc9, 0x2c, 0xaa, 0xc3, 0xe3, 0x4f, 0x3f, 0xb0, 0xa9, 0x71, 0x15, 0x1a, 0x34, 0xe0, 0x25, + 0x25, 0x2e, 0x7d, 0xcf, 0x8d, 0x12, 0x52, 0x8f, 0xae, 0x2d, 0x21, 0x65, 0x5c, 0x03, 0x18, 0xe6, + 0x15, 0x24, 0x16, 0x02, 0xe3, 0xea, 0x90, 0x24, 0x99, 0x73, 0xb3, 0x1c, 0x97, 0x9d, 0x5f, 0xd7, + 0x2c, 0x95, 0x69, 0x6c, 0xc2, 0x2c, 0x37, 0x7b, 0x2b, 0x3d, 0x06, 0xe3, 0x18, 0x8c, 0xdf, 0x63, + 0x41, 0xda, 0xfc, 0xb1, 0x26, 0xdc, 0xc8, 0xbe, 0xf6, 0x08, 0xfa, 0x3e, 0x77, 0x89, 0x76, 0x2a, + 0x97, 0x2c, 0xc2, 0xd4, 0x30, 0x91, 0x4e, 0xe5, 0x6a, 0x56, 0x46, 0xe7, 0x10, 0xd5, 0xc6, 0x86, + 0xc8, 0xfc, 0x89, 0x06, 0x9d, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xab, 0x41, 0xe0, 0x89, 0x6b, 0x8e, + 0x53, 0x63, 0xfe, 0x15, 0x68, 0xda, 0xa8, 0xc6, 0x8f, 0x05, 0xec, 0x63, 0x9c, 0xb4, 0xe5, 0x32, + 0xd2, 0xa1, 0x49, 0x4d, 0x3e, 0x34, 0x31, 0x3f, 0xd2, 0x60, 0x16, 0x9d, 0xf2, 0x4e, 0xe2, 0xc6, + 0xa7, 0xb6, 0x6f, 0x0d, 0xa6, 0x0e, 0x12, 0x37, 0x3e, 0x45, 0x54, 0x66, 0x72, 0xe5, 0x78, 0xaa, + 0x55, 0xc4, 0x93, 0xf9, 0x73, 0x0d, 0x2e, 0x14, 0xdd, 0xba, 0xda, 0xef, 0x93, 0xe0, 0x51, 0x4e, + 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, 0x68, 0x54, 0x69, 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x6b, + 0xf2, 0xb7, 0x75, 0xf8, 0xff, 0xeb, 0xd9, 0xc4, 0xbb, 0x1d, 0xda, 0x7e, 0xb4, 0x4b, 0xc2, 0xf0, + 0x11, 0xda, 0x7b, 0x0b, 0x66, 0x7c, 0x72, 0x3f, 0xb7, 0x49, 0x4c, 0xc7, 0x71, 0xd5, 0xa8, 0xc2, + 0xe3, 0xad, 0x5d, 0xe6, 0xbf, 0x35, 0x68, 0xa3, 0x9e, 0xb7, 0xdd, 0xfe, 0xfe, 0x23, 0x1c, 0xfc, + 0x26, 0xcc, 0xee, 0x73, 0x0b, 0x18, 0x75, 0x8a, 0x65, 0xbb, 0x20, 0x3d, 0xe6, 0xf0, 0xff, 0xa3, + 0xc1, 0x7c, 0x7a, 0xbb, 0x7a, 0xe8, 0x3e, 0xca, 0x60, 0xdd, 0x86, 0x39, 0x17, 0x4d, 0x38, 0xa5, + 0x03, 0x8a, 0xe2, 0x63, 0x7a, 0xe0, 0x57, 0x1a, 0xcc, 0xa1, 0xa6, 0x37, 0xfd, 0x98, 0x84, 0xa7, + 0x1e, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, 0x2b, 0xa4, 0x2c, 0x3a, 0xe6, 0x22, + 0xf9, 0x91, 0x06, 0x06, 0x57, 0xb5, 0xe1, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x21, 0x74, 0xe3, 0x19, + 0xfc, 0x43, 0x1d, 0xce, 0x4b, 0x5a, 0xba, 0x49, 0xfc, 0xb8, 0x9b, 0x6c, 0x6c, 0x40, 0x93, 0xd5, + 0x08, 0xf2, 0x6d, 0xe4, 0xb8, 0x1d, 0xe5, 0x82, 0xac, 0x8a, 0xe5, 0x44, 0x8f, 0xf4, 0xa9, 0xef, + 0x44, 0xbc, 0x38, 0x9a, 0xb1, 0x14, 0x1e, 0x5b, 0x86, 0x16, 0x25, 0x35, 0xeb, 0xb6, 0xdf, 0x27, + 0xde, 0x13, 0xe3, 0x22, 0xf3, 0x67, 0x1a, 0xcc, 0x62, 0x93, 0xc7, 0x7f, 0xc8, 0x2c, 0xd7, 0x63, + 0x20, 0x7f, 0x62, 0x50, 0x62, 0xe1, 0xb5, 0x20, 0x69, 0x91, 0xeb, 0xea, 0xc7, 0x37, 0xb4, 0x6e, + 0x40, 0xab, 0xbf, 0x67, 0xfb, 0x83, 0x53, 0x05, 0x97, 0x2c, 0x6a, 0xc6, 0xf0, 0xb4, 0x7c, 0x00, + 0xbf, 0x8e, 0x9f, 0xf8, 0xf0, 0x5f, 0x2e, 0x0c, 0xe5, 0xd8, 0xd7, 0x06, 0x0f, 0xe7, 0xf4, 0x7d, + 0x98, 0xc7, 0x5b, 0x5f, 0xa9, 0x26, 0x34, 0x3a, 0x30, 0x69, 0x3b, 0x78, 0x0c, 0xa1, 0x71, 0xa1, + 0x94, 0x54, 0xef, 0xf3, 0xc5, 0xbb, 0xaf, 0xfc, 0x3e, 0xff, 0x22, 0x80, 0xed, 0x38, 0xef, 0xd1, + 0xd0, 0x71, 0xfd, 0xb4, 0xc0, 0x97, 0x38, 0xe6, 0x5b, 0x30, 0x7d, 0x2d, 0xa4, 0xc3, 0xdb, 0xd2, + 0xfd, 0xed, 0xb1, 0x37, 0xcc, 0xf2, 0xdd, 0xaf, 0xae, 0xde, 0xfd, 0x9a, 0x5f, 0x87, 0xa7, 0x4a, + 0x86, 0x73, 0x67, 0xad, 0xe3, 0xb5, 0x74, 0xda, 0x89, 0x08, 0x99, 0xaa, 0x73, 0x39, 0xd9, 0x16, + 0x4b, 0x11, 0x32, 0x3f, 0xd0, 0xe0, 0x99, 0x92, 0xfa, 0xd5, 0x20, 0x08, 0xe9, 0xa1, 0xc0, 0xe4, + 0x2c, 0xba, 0x51, 0x8b, 0x5f, 0xbd, 0x58, 0xfc, 0x56, 0x1a, 0xa1, 0x14, 0xec, 0x1f, 0x83, 0x11, + 0x3f, 0xd5, 0x60, 0x4e, 0x18, 0xe1, 0x38, 0xa2, 0xdb, 0x57, 0xa0, 0x81, 0x4f, 0x5a, 0x44, 0x87, + 0xcf, 0x54, 0x76, 0x98, 0x3e, 0xc5, 0xb1, 0x44, 0xe3, 0x72, 0x44, 0xea, 0x55, 0x33, 0xea, 0xcb, + 0x59, 0xb0, 0x8f, 0xfd, 0xe8, 0x44, 0x08, 0x98, 0x5f, 0x4d, 0x83, 0x79, 0x83, 0x78, 0xe4, 0x2c, + 0x7d, 0x64, 0xde, 0x81, 0x59, 0xfe, 0xbe, 0x26, 0xf7, 0xc1, 0x99, 0xa8, 0x7d, 0x0f, 0xda, 0x5c, + 0xed, 0x99, 0xdb, 0x9b, 0xcd, 0x0e, 0xe6, 0x1f, 0x79, 0x29, 0x39, 0x13, 0xed, 0x9f, 0x87, 0x73, + 0xa9, 0xef, 0xf1, 0xc5, 0x29, 0xea, 0x1e, 0x71, 0x4f, 0x67, 0xbe, 0x04, 0x0b, 0xeb, 0xd4, 0x3f, + 0x24, 0x61, 0xa4, 0x3c, 0x52, 0x45, 0x09, 0x65, 0xf2, 0x0b, 0xca, 0xbc, 0x07, 0x8b, 0xb2, 0x44, + 0x8f, 0xc4, 0xdb, 0xa1, 0x7b, 0x28, 0x49, 0x89, 0x03, 0x6a, 0x4d, 0x39, 0xa0, 0xce, 0x0f, 0xb4, + 0x75, 0xe5, 0x40, 0xfb, 0x02, 0x34, 0xdd, 0x48, 0x28, 0xe0, 0x41, 0x35, 0x65, 0xe5, 0x0c, 0xd3, + 0x86, 0x79, 0x74, 0xbf, 0xb8, 0x30, 0xe2, 0x5d, 0x2c, 0xc2, 0x14, 0xc6, 0x54, 0xd6, 0x49, 0x46, + 0x8f, 0xbc, 0x7e, 0x19, 0x79, 0xd9, 0x68, 0xf6, 0x60, 0x5e, 0x3c, 0xaa, 0xd9, 0xb6, 0x07, 0xae, + 0x8f, 0x8b, 0xec, 0x45, 0x80, 0xc0, 0x1e, 0xa4, 0x0f, 0xf0, 0xf0, 0xda, 0x4c, 0xe2, 0xb0, 0xef, + 0xd1, 0x1e, 0xbd, 0x2f, 0xbe, 0xeb, 0xf8, 0x3d, 0xe7, 0x98, 0xef, 0x82, 0x61, 0x91, 0x28, 0xa0, + 0x7e, 0x44, 0x24, 0xad, 0x4b, 0xd0, 0x5a, 0x4f, 0xc2, 0x90, 0xf8, 0xac, 0xab, 0xf4, 0x85, 0x99, + 0xcc, 0x62, 0x7a, 0x7b, 0xb9, 0x5e, 0x3c, 0x62, 0x97, 0x38, 0xe6, 0x8f, 0x6a, 0xd0, 0xec, 0xb9, + 0x03, 0xdf, 0xf6, 0x2c, 0x72, 0x60, 0xbc, 0x0e, 0x0d, 0xdc, 0xb2, 0x88, 0x48, 0xa9, 0x3a, 0xf2, + 0xc5, 0xd6, 0xb8, 0x37, 0xb3, 0xc8, 0xc1, 0x8d, 0xff, 0xb3, 0x84, 0x8c, 0xf1, 0x0e, 0xcc, 0xe0, + 0xaf, 0x9b, 0x78, 0x04, 0x25, 0xf2, 0xd7, 0x67, 0x4f, 0x50, 0x22, 0x5a, 0xa3, 0x2e, 0x55, 0x03, + 0x33, 0xa8, 0xcf, 0x4b, 0x1a, 0xb1, 0x3c, 0x8c, 0x36, 0x08, 0x2b, 0x1f, 0x61, 0x10, 0xca, 0x30, + 0x69, 0x9b, 0x1f, 0xd2, 0x88, 0x4c, 0x3d, 0x5a, 0x1a, 0xcf, 0x72, 0x84, 0x34, 0xca, 0x30, 0xe9, + 0xbd, 0xc4, 0x1f, 0xdc, 0x09, 0xc4, 0xd9, 0xe1, 0x68, 0xe9, 0x1b, 0xbc, 0x99, 0x90, 0x46, 0x19, + 0x26, 0x1d, 0xf2, 0xc5, 0x9b, 0x3b, 0xfd, 0x38, 0x69, 0x5c, 0xe3, 0x85, 0x34, 0xca, 0xac, 0x35, + 0x61, 0x32, 0xb0, 0x8f, 0x3c, 0x6a, 0x3b, 0xe6, 0x87, 0x35, 0x80, 0xb4, 0x61, 0xc4, 0x0b, 0x1d, + 0x05, 0xa2, 0xe5, 0x13, 0x21, 0x0a, 0xbc, 0x23, 0x09, 0xa4, 0x5e, 0x35, 0x48, 0x9f, 0x1b, 0x17, + 0x24, 0xd4, 0x56, 0x80, 0xe9, 0x6a, 0x01, 0xa6, 0xe5, 0x13, 0x61, 0x12, 0x46, 0x09, 0xa0, 0xae, + 0x16, 0x80, 0x5a, 0x3e, 0x11, 0x28, 0x21, 0x2f, 0xa0, 0xba, 0x5a, 0x80, 0x6a, 0xf9, 0x44, 0xa8, + 0x84, 0xbc, 0x00, 0xeb, 0x6a, 0x01, 0xac, 0xe5, 0x13, 0xc1, 0x12, 0xf2, 0x65, 0xb8, 0xfe, 0xa2, + 0xc3, 0x2c, 0x77, 0x19, 0xde, 0xc2, 0xfa, 0xbb, 0x94, 0xdf, 0x07, 0x70, 0x77, 0xa9, 0x6f, 0x34, + 0x55, 0xa6, 0xf1, 0x22, 0xcc, 0x23, 0x83, 0x48, 0xd7, 0x25, 0x3a, 0xbf, 0x2e, 0x29, 0x7f, 0xe0, + 0x17, 0x44, 0x49, 0x14, 0xd3, 0xe1, 0x86, 0x1d, 0xdb, 0x69, 0xf1, 0x95, 0x73, 0xe4, 0xeb, 0xbb, + 0x89, 0xd2, 0x8b, 0xf1, 0x90, 0xd2, 0x61, 0x76, 0x2f, 0x27, 0x28, 0x26, 0x11, 0xbb, 0x43, 0x42, + 0x93, 0x58, 0x2c, 0x13, 0x29, 0x89, 0xef, 0xa8, 0x1c, 0xd7, 0xe6, 0x97, 0x5e, 0xe2, 0x91, 0x51, + 0xc6, 0xe0, 0x2b, 0x5b, 0x7e, 0x89, 0x27, 0x5e, 0x74, 0xe7, 0x9c, 0x31, 0x2e, 0xdc, 0xf8, 0x9f, + 0x03, 0xdc, 0xd8, 0x95, 0x1f, 0x1f, 0xd5, 0x2d, 0x85, 0x67, 0xfe, 0x43, 0x83, 0x73, 0xdb, 0x76, + 0x18, 0xbb, 0x7d, 0x37, 0xb0, 0xfd, 0xb8, 0x4b, 0x62, 0x9b, 0x8f, 0x53, 0x79, 0xcc, 0xa9, 0x3d, + 0xdc, 0x63, 0xce, 0x6d, 0x98, 0x1b, 0xa8, 0x3b, 0x90, 0x87, 0xdc, 0x3c, 0x14, 0xc5, 0x95, 0x97, + 0xa9, 0xb5, 0x87, 0x7e, 0x99, 0x6a, 0x7e, 0x57, 0x87, 0xb9, 0xc2, 0xf2, 0x7a, 0x6c, 0x6e, 0x5a, + 0x05, 0x70, 0xb3, 0x50, 0x3b, 0xe6, 0x80, 0x5e, 0x8d, 0x47, 0x4b, 0x12, 0xaa, 0xba, 0xed, 0xab, + 0x9d, 0xfe, 0xb6, 0xef, 0x06, 0xb4, 0x82, 0x1c, 0xa4, 0x63, 0xf6, 0x47, 0x15, 0x50, 0x5a, 0xb2, + 0xa8, 0xf9, 0x3e, 0xcc, 0x97, 0x56, 0x31, 0x7e, 0x6d, 0x47, 0xf7, 0x89, 0x9f, 0x5d, 0xdb, 0x31, + 0x42, 0x0a, 0x68, 0xbd, 0x18, 0xd0, 0x9e, 0x7b, 0x28, 0x3f, 0x93, 0x17, 0xa4, 0xf9, 0x3d, 0x1d, + 0x16, 0xaa, 0x33, 0xd0, 0x93, 0xea, 0xee, 0x1d, 0xe8, 0x8c, 0x5a, 0xed, 0xcf, 0xcc, 0xeb, 0x79, + 0x74, 0x67, 0xb9, 0xfa, 0x49, 0x75, 0xf7, 0xb9, 0x34, 0xba, 0xa5, 0x74, 0x68, 0xfe, 0x32, 0xf3, + 0x4f, 0x56, 0x8d, 0x3c, 0xa1, 0xfe, 0x31, 0x2e, 0x41, 0x1b, 0x87, 0x29, 0x3d, 0x0f, 0xc1, 0xe2, + 0xb6, 0xc4, 0xcf, 0x57, 0x0a, 0xa9, 0x34, 0x38, 0xb3, 0x98, 0xfd, 0xad, 0x96, 0x62, 0x92, 0xd5, + 0x78, 0x9f, 0x28, 0x4c, 0xf2, 0x48, 0x93, 0x0a, 0x1f, 0x29, 0xd2, 0xb2, 0xda, 0xf3, 0x7f, 0x91, + 0x76, 0x72, 0xa4, 0x65, 0xbe, 0x94, 0x8a, 0x40, 0xf3, 0x5b, 0x30, 0xb3, 0x41, 0xbc, 0x6e, 0x34, + 0x48, 0xdf, 0xaf, 0x9e, 0xe9, 0x66, 0xb2, 0xf8, 0xca, 0x6f, 0xa2, 0xfc, 0xca, 0x6f, 0x0d, 0x66, + 0x65, 0x03, 0x4e, 0xf3, 0x3e, 0x73, 0xed, 0xc2, 0xd7, 0x16, 0x57, 0xc4, 0x7f, 0x91, 0x5f, 0x2b, + 0x39, 0x71, 0xa7, 0xc1, 0xff, 0xbd, 0xf8, 0xf2, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x18, 0xee, + 0xfd, 0x92, 0xe4, 0x3c, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index b82964d95..e351309ff 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -23,6 +23,8 @@ message GroupInfo{ int32 needVerification = 13; int32 lookMemberInfo =14; int32 applyMemberFriend = 15; + uint32 notificationUpdateTime = 16; + string notificationUserID = 17; } message GroupInfoForSet{ From d4e575f777e3951a0578cada37b4ec43c2036627 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 13 Jul 2022 11:43:37 +0800 Subject: [PATCH 20/24] Show group notification editor --- internal/rpc/group/group.go | 4 ++++ pkg/common/utils/utils.go | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index cd5200023..d2f03312f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -250,6 +250,10 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo utils.CopyStructFields(&groupNode, group) groupNode.CreateTime = uint32(group.CreateTime.Unix()) groupNode.NotificationUpdateTime = uint32(group.NotificationUpdateTime.Unix()) + if group.NotificationUpdateTime.Unix() < 0 { + groupNode.NotificationUpdateTime = 0 + } + groupNode.MemberCount = num groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index ccbb08b01..c25614ad5 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -99,6 +99,9 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) error { } dst.CreateTime = uint32(src.CreateTime.Unix()) dst.NotificationUpdateTime = uint32(src.NotificationUpdateTime.Unix()) + if src.NotificationUpdateTime.Unix() < 0 { + dst.NotificationUpdateTime = 0 + } return nil } @@ -119,7 +122,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } dst.JoinTime = int32(src.JoinTime.Unix()) - if src.MuteEndTime.Unix() < 0 { + if src.JoinTime.Unix() < 0 { dst.JoinTime = 0 return nil } From 58f4ebe4116724d9c9e8850470308ea0a76f7671 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 13 Jul 2022 14:28:49 +0800 Subject: [PATCH 21/24] Limit the number of members invited to join the group --- internal/api/group/group.go | 8 +++++++- internal/rpc/msg/group_notification.go | 4 +++- pkg/base_info/public_struct.go | 2 +- pkg/common/constant/constant.go | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 5105a117d..9c7500872 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -3,6 +3,7 @@ package group import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -316,7 +317,12 @@ func InviteUserToGroup(c *gin.Context) { } req := &rpc.InviteUserToGroupReq{} utils.CopyStructFields(req, ¶ms) - + if len(req.InvitedUserIDList) > constant.MaxNotificationNum { + errMsg := req.OperationID + " too many, Limit: " + utils.IntToString(constant.MaxNotificationNum) + log.NewError(req.OperationID, errMsg, len(req.InvitedUserIDList)) + c.JSON(http.StatusRequestEntityTooLarge, gin.H{"errCode": 400, "errMsg": errMsg}) + return + } var ok bool var errInfo string ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 8d18657a2..e14bfce8d 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -232,6 +232,9 @@ func GroupCreatedNotification(operationID, opUserID, groupID string, initMemberL continue } GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) + if len(GroupCreatedTips.MemberList) == constant.MaxNotificationNum { + break + } } groupNotification(constant.GroupCreatedNotification, &GroupCreatedTips, opUserID, groupID, "", operationID) } @@ -536,7 +539,6 @@ func MemberInvitedNotification(operationID, groupID, opUserID, reason string, in } MemberInvitedTips.InvitedUserList = append(MemberInvitedTips.InvitedUserList, &groupMemberInfo) } - groupNotification(constant.MemberInvitedNotification, &MemberInvitedTips, opUserID, groupID, "", operationID) } diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 824f58043..e00be850d 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -32,7 +32,7 @@ type ApiUserInfo struct { type GroupAddMemberInfo struct { UserID string `json:"userID" binding:"required"` - RoleLevel int32 `json:"roleLevel" binding:"required"` + RoleLevel int32 `json:"roleLevel" binding:"required,oneof= 1 3"` } func SetErrCodeMsg(c *gin.Context, status int) *CommResp { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 7b6c77d12..3deeed5e6 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -303,3 +303,5 @@ const BigVersion = "v2" const LogFileName = "OpenIM.log" const StatisticsTimeInterval = 60 + +const MaxNotificationNum = 100 From 02347952005ec150c48c4b48d2f6c5f20d82df38 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 13 Jul 2022 18:25:00 +0800 Subject: [PATCH 22/24] fix bug --- pkg/proto/sdk_ws/ws.pb.go | 590 +++++++++++++++++++------------------- pkg/proto/sdk_ws/ws.proto | 1 + 2 files changed, 300 insertions(+), 291 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 64943b288..2118f34b4 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -46,7 +46,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{0} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{1} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -299,6 +299,7 @@ type GroupMemberFullInfo struct { OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"` + InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID" json:"inviterUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -308,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{2} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -405,6 +406,13 @@ func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { return 0 } +func (m *GroupMemberFullInfo) GetInviterUserID() string { + if m != nil { + return m.InviterUserID + } + return "" +} + type PublicUserInfo struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` @@ -420,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{3} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -496,7 +504,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{4} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -610,7 +618,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{5} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -695,7 +703,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{6} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -776,7 +784,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{7} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -884,7 +892,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{8} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1029,7 +1037,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{9} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1140,7 +1148,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{10} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1254,7 +1262,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{11} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1335,7 +1343,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{12} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1381,7 +1389,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{13} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1430,7 +1438,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{14} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1489,7 +1497,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{15} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1527,7 +1535,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{16} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1568,7 +1576,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{17} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1629,7 +1637,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{18} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1682,7 +1690,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{19} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1731,7 +1739,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{20} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1799,7 +1807,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{21} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1870,7 +1878,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{22} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2045,7 +2053,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{23} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2113,7 +2121,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{24} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2170,7 +2178,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{25} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2239,7 +2247,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{26} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2294,7 +2302,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{27} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2350,7 +2358,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{28} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2405,7 +2413,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{29} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2460,7 +2468,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{30} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2516,7 +2524,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{31} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2579,7 +2587,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{32} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2642,7 +2650,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{33} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2704,7 +2712,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{34} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2758,7 +2766,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{35} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2814,7 +2822,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{36} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2883,7 +2891,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{37} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2944,7 +2952,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{38} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2998,7 +3006,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{39} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3053,7 +3061,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{40} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3113,7 +3121,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{41} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3160,7 +3168,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{42} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3213,7 +3221,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{43} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3259,7 +3267,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{44} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3299,7 +3307,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{45} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3346,7 +3354,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{46} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3394,7 +3402,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{47} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3447,7 +3455,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{48} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3485,7 +3493,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{49} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3523,7 +3531,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{50} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3561,7 +3569,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{51} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3600,7 +3608,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{52} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3639,7 +3647,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{53} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3679,7 +3687,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{54} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3734,7 +3742,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{55} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3788,7 +3796,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{56} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3834,7 +3842,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{57} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3887,7 +3895,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{58} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4154,7 +4162,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{59} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4423,7 +4431,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{60} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4526,7 +4534,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{61} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4581,7 +4589,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{62} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4642,7 +4650,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{63} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4697,7 +4705,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{64} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4758,7 +4766,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{65} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4813,7 +4821,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{66} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4871,7 +4879,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{67} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4906,7 +4914,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{68} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4974,7 +4982,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{69} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5028,7 +5036,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{70} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5079,7 +5087,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{71} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5114,7 +5122,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{72} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5179,7 +5187,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{73} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5213,7 +5221,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{74} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{74} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5273,7 +5281,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_83acc919c6c38298, []int{75} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{75} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5390,225 +5398,225 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_83acc919c6c38298) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_7a6f9f3abd69f213) } -var fileDescriptor_ws_83acc919c6c38298 = []byte{ - // 3462 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_7a6f9f3abd69f213 = []byte{ + // 3469 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x57, 0xd5, 0xff, 0xaa, 0xda, 0xdd, 0x76, 0x9f, 0xf6, 0xa3, 0x5d, 0x33, 0x71, 0xfa, 0x33, 0x93, 0xc1, 0x54, 0xac, 0x24, 0x0c, 0xc1, 0x13, 0x4d, 0x08, 0x82, 0x3c, 0x06, 0xf9, 0x91, 0x79, 0x24, 0xd3, 0xb6, 0x53, 0x3d, 0x93, 0x20, 0x82, 0x34, 0x94, 0xbb, 0xae, 0xdb, 0x35, 0xae, 0xae, 0x5b, 0xae, 0x87, 0x67, 0xcc, 0x06, 0x29, 0x48, 0x88, 0x1d, 0x1b, 0xd8, 0xb0, 0x41, 0x62, 0x83, 0x40, 0x51, - 0x84, 0x10, 0x48, 0x2c, 0x10, 0x42, 0x88, 0x1d, 0x1b, 0x90, 0xd8, 0x20, 0x16, 0x48, 0xac, 0xf9, - 0x07, 0x90, 0x90, 0x40, 0xf7, 0x9e, 0x5b, 0x55, 0xf7, 0x56, 0x55, 0xdb, 0x3d, 0x96, 0x95, 0x99, - 0x68, 0xd8, 0xf5, 0x39, 0x75, 0xcf, 0xb9, 0xe7, 0x9e, 0xdf, 0xb9, 0xf7, 0x9c, 0xfb, 0x68, 0x98, - 0x8b, 0x9c, 0xfd, 0xbb, 0xf7, 0xa3, 0xcb, 0xf7, 0xa3, 0x95, 0x20, 0xa4, 0x31, 0x35, 0xe6, 0x23, - 0x12, 0x1e, 0x92, 0xf0, 0xae, 0x1d, 0xb8, 0x77, 0x03, 0x3b, 0xb4, 0x87, 0xd1, 0xe2, 0xf3, 0x5b, - 0x01, 0xf1, 0xef, 0xde, 0xec, 0x5e, 0x0e, 0xf6, 0x07, 0x97, 0x79, 0xab, 0xcb, 0xa9, 0x54, 0x68, - 0x07, 0x01, 0x09, 0x85, 0xac, 0xf9, 0xf7, 0x09, 0x68, 0x5e, 0x0f, 0x69, 0x12, 0xdc, 0xf4, 0x77, - 0xa9, 0xd1, 0x81, 0xc9, 0x01, 0x27, 0x36, 0x3a, 0xda, 0x92, 0xf6, 0x42, 0xd3, 0x4a, 0x49, 0xe3, - 0x02, 0x34, 0xf9, 0xcf, 0x4d, 0x7b, 0x48, 0x3a, 0x3a, 0xff, 0x96, 0x33, 0x0c, 0x13, 0xa6, 0x7d, - 0x1a, 0xbb, 0xbb, 0x6e, 0xdf, 0x8e, 0x5d, 0xea, 0x77, 0x6a, 0xbc, 0x81, 0xc2, 0x63, 0x6d, 0x5c, - 0x3f, 0x0e, 0xa9, 0x93, 0xf4, 0x79, 0x9b, 0x09, 0x6c, 0x23, 0xf3, 0x58, 0xff, 0xbb, 0x76, 0x9f, - 0xdc, 0xb1, 0x6e, 0x75, 0xea, 0xd8, 0xbf, 0x20, 0x8d, 0x25, 0x68, 0xd1, 0xfb, 0x3e, 0x09, 0xef, - 0x44, 0x24, 0xbc, 0xb9, 0xd1, 0x69, 0xf0, 0xaf, 0x32, 0xcb, 0xb8, 0x08, 0xd0, 0x0f, 0x89, 0x1d, - 0x93, 0xdb, 0xee, 0x90, 0x74, 0x26, 0x97, 0xb4, 0x17, 0x66, 0x2c, 0x89, 0xc3, 0x34, 0x0c, 0xc9, - 0x70, 0x87, 0x84, 0xeb, 0x34, 0xf1, 0xe3, 0xce, 0x14, 0x6f, 0x20, 0xb3, 0x8c, 0x59, 0xd0, 0xc9, - 0x83, 0x4e, 0x93, 0xab, 0xd6, 0xc9, 0x03, 0x63, 0x01, 0x1a, 0x51, 0x6c, 0xc7, 0x49, 0xd4, 0x81, - 0x25, 0xed, 0x85, 0xba, 0x25, 0x28, 0x63, 0x19, 0x66, 0xb8, 0x5e, 0x9a, 0x5a, 0xd3, 0xe2, 0x22, - 0x2a, 0x33, 0xf3, 0xd8, 0xed, 0xa3, 0x80, 0x74, 0xa6, 0xb9, 0x82, 0x9c, 0x61, 0x5c, 0x82, 0xb6, - 0x4f, 0x88, 0xf3, 0x2e, 0x09, 0x73, 0xaf, 0xcd, 0xf0, 0x46, 0x25, 0xbe, 0xf1, 0x1c, 0xcc, 0x7a, - 0x94, 0xee, 0x77, 0xb9, 0xa9, 0x0c, 0xa7, 0xce, 0x2c, 0x6f, 0x59, 0xe0, 0x1a, 0x2f, 0xc2, 0xbc, - 0x1d, 0x04, 0xde, 0x11, 0xb2, 0xae, 0x85, 0x2e, 0xf1, 0x9d, 0xce, 0x1c, 0x6f, 0x5a, 0xfe, 0x60, - 0x7c, 0x11, 0x16, 0x64, 0x7c, 0xee, 0x04, 0x4e, 0xea, 0xbb, 0x36, 0x77, 0xcd, 0x88, 0xaf, 0xc6, - 0x0a, 0x18, 0xca, 0x17, 0x74, 0xc1, 0x3c, 0x77, 0x41, 0xc5, 0x17, 0xf3, 0xfb, 0x35, 0x98, 0xcb, - 0x22, 0xec, 0x1a, 0x0d, 0x7b, 0x24, 0x7e, 0x8c, 0xe3, 0x0c, 0x63, 0xa0, 0x91, 0xc5, 0xc0, 0xf5, - 0x0a, 0x9c, 0x58, 0x6c, 0xb5, 0xae, 0x7c, 0x6a, 0x65, 0x40, 0xe9, 0xc0, 0x23, 0x38, 0x91, 0x76, - 0x92, 0xdd, 0x95, 0x9b, 0x7e, 0xfc, 0xf2, 0x95, 0x77, 0x6d, 0x2f, 0x21, 0x15, 0x20, 0xae, 0x97, - 0x40, 0x9c, 0x3a, 0x59, 0x4d, 0x11, 0xe1, 0x9b, 0x55, 0x08, 0x37, 0x4f, 0xd6, 0x53, 0x96, 0x32, - 0xff, 0xaa, 0xc3, 0x39, 0x0e, 0x8b, 0xe0, 0x26, 0x9e, 0x77, 0xc2, 0x12, 0xb0, 0x00, 0x8d, 0x04, - 0xc1, 0x46, 0x5c, 0x04, 0xc5, 0x20, 0x0b, 0xa9, 0x47, 0x6e, 0x91, 0x43, 0xe2, 0x71, 0x44, 0xea, - 0x56, 0xce, 0x30, 0x16, 0x61, 0xea, 0x1e, 0x75, 0x7d, 0x1e, 0x58, 0x13, 0xfc, 0x63, 0x46, 0xb3, - 0x6f, 0xbe, 0xdb, 0xdf, 0xf7, 0x19, 0xd6, 0x88, 0x43, 0x46, 0xcb, 0x10, 0x35, 0x54, 0x88, 0x9e, - 0x83, 0x59, 0x3b, 0x08, 0xba, 0xb6, 0x3f, 0x20, 0x21, 0x76, 0x3a, 0x89, 0xd3, 0x41, 0xe5, 0xb2, - 0x05, 0x81, 0xf5, 0xd4, 0xa3, 0x49, 0xd8, 0x27, 0xdc, 0xdb, 0x75, 0x4b, 0xe2, 0x30, 0x3d, 0x34, - 0x20, 0xa1, 0x34, 0x8f, 0x71, 0xea, 0x17, 0xb8, 0x22, 0x24, 0x20, 0x0b, 0x09, 0xb6, 0x90, 0x24, - 0x31, 0x79, 0xd3, 0x77, 0xf8, 0xa0, 0x5a, 0x62, 0x21, 0xc9, 0x59, 0xe6, 0x77, 0x34, 0x98, 0xdd, - 0x4e, 0x76, 0x3c, 0xb7, 0xcf, 0x55, 0x30, 0xb7, 0xe6, 0xce, 0xd3, 0x14, 0xe7, 0xc9, 0x2e, 0xd0, - 0x47, 0xbb, 0xa0, 0xa6, 0xba, 0x60, 0x01, 0x1a, 0x03, 0xe2, 0x3b, 0x24, 0x14, 0x2e, 0x15, 0x94, - 0x30, 0xb5, 0x9e, 0x9a, 0x6a, 0xfe, 0x5e, 0x87, 0xa9, 0x8f, 0xd9, 0x84, 0x25, 0x68, 0x05, 0x7b, - 0xd4, 0x27, 0x9b, 0x09, 0x0b, 0x2b, 0x61, 0x8b, 0xcc, 0x32, 0xce, 0x43, 0x7d, 0xc7, 0x0d, 0xe3, - 0x3d, 0x8e, 0xeb, 0x8c, 0x85, 0x04, 0xe3, 0x92, 0xa1, 0xed, 0x22, 0x98, 0x4d, 0x0b, 0x09, 0x31, - 0xa0, 0xa9, 0xcc, 0xf7, 0xea, 0x22, 0xdf, 0x2c, 0x2d, 0xf2, 0xe5, 0xd8, 0x80, 0xca, 0xd8, 0xb8, - 0x04, 0xed, 0x81, 0x47, 0x77, 0x6c, 0xcf, 0x22, 0xfd, 0xc3, 0x6e, 0x34, 0xd8, 0x0a, 0x62, 0x0e, - 0x64, 0xdd, 0x2a, 0xf1, 0xcd, 0x7f, 0x69, 0x00, 0x38, 0x69, 0xb8, 0x1b, 0x0b, 0x99, 0x48, 0x2b, - 0x67, 0xa2, 0x05, 0x68, 0x84, 0x64, 0x68, 0x87, 0xfb, 0xe9, 0x44, 0x41, 0xaa, 0x60, 0x7c, 0xad, - 0x64, 0xfc, 0x6b, 0x00, 0xbb, 0xbc, 0x1f, 0xa6, 0x87, 0xbb, 0x95, 0x4d, 0xeb, 0x52, 0x72, 0x5f, - 0x49, 0x11, 0xb5, 0xa4, 0xe6, 0x6c, 0x16, 0xda, 0x8e, 0x23, 0x82, 0xbd, 0x8e, 0xb3, 0x30, 0x63, - 0x54, 0xc4, 0x7a, 0xe3, 0x98, 0x58, 0x9f, 0xcc, 0x02, 0xe8, 0x9f, 0x1a, 0x34, 0xd7, 0x3c, 0xbb, - 0xbf, 0x3f, 0xe6, 0xd0, 0xd5, 0x21, 0xea, 0xa5, 0x21, 0x5e, 0x87, 0x99, 0x1d, 0xa6, 0x2e, 0x1d, - 0x02, 0xf7, 0x42, 0xeb, 0xca, 0x67, 0x2a, 0x46, 0xa9, 0x4e, 0x20, 0x4b, 0x95, 0x53, 0x87, 0x3b, - 0x71, 0xf2, 0x70, 0xeb, 0xc7, 0x0c, 0x37, 0x5b, 0xed, 0xcd, 0x3f, 0xeb, 0x30, 0xcd, 0x17, 0x45, - 0x8b, 0x1c, 0x24, 0x24, 0x8a, 0x8d, 0x37, 0x60, 0x2a, 0x49, 0x4d, 0xd5, 0xc6, 0x35, 0x35, 0x13, - 0x31, 0x5e, 0x15, 0xd9, 0x8c, 0xcb, 0xeb, 0x5c, 0xfe, 0x42, 0x85, 0x7c, 0x96, 0x1e, 0xad, 0xbc, - 0x39, 0xcb, 0x63, 0x7b, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x62, 0x65, 0x55, 0x78, - 0x18, 0x69, 0x07, 0xdd, 0x68, 0x20, 0xb2, 0x9c, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, 0x84, 0x43, - 0xcf, 0x19, 0x6c, 0x52, 0x87, 0xe4, 0x80, 0x23, 0x84, 0x53, 0x30, 0x25, 0xf3, 0x3e, 0x85, 0xd7, - 0x30, 0x10, 0x14, 0x1e, 0x83, 0x18, 0x69, 0xae, 0x00, 0xcb, 0x28, 0x89, 0x53, 0xac, 0xa2, 0xcc, - 0xbf, 0xd5, 0x60, 0x06, 0xa7, 0x4f, 0xea, 0xd4, 0x8b, 0x2c, 0xce, 0xe9, 0x50, 0x89, 0x22, 0x89, - 0xc3, 0xac, 0x60, 0xd4, 0xa6, 0xba, 0x28, 0x29, 0x3c, 0x16, 0x8a, 0x8c, 0xbe, 0xa6, 0x2c, 0x4e, - 0x32, 0x2b, 0xed, 0xe5, 0xba, 0xbc, 0x48, 0x49, 0x1c, 0xb6, 0xec, 0xc5, 0x54, 0x89, 0x8e, 0x8c, - 0x66, 0xb2, 0x31, 0xcd, 0xfa, 0xc7, 0xf8, 0x90, 0x38, 0xcc, 0xbf, 0x31, 0x4d, 0xfb, 0x46, 0x27, - 0xe5, 0x0c, 0xd4, 0x2c, 0xfa, 0xc5, 0xb4, 0x93, 0xd1, 0x25, 0x54, 0x9b, 0xc7, 0xa2, 0x0a, 0x0a, - 0xaa, 0xea, 0xe4, 0x6a, 0x95, 0x26, 0xd7, 0x32, 0xcc, 0xa0, 0x9e, 0x34, 0xe8, 0xa7, 0xb1, 0x2e, - 0x55, 0x98, 0x6a, 0x6c, 0xcc, 0x14, 0x63, 0x43, 0x45, 0x77, 0x76, 0x04, 0xba, 0x73, 0x19, 0xba, - 0xbf, 0xd0, 0x01, 0x36, 0x48, 0x60, 0x87, 0xf1, 0x90, 0xf8, 0x31, 0x1b, 0x9e, 0x93, 0x51, 0x19, - 0xb8, 0x0a, 0x4f, 0xce, 0x29, 0xba, 0x9a, 0x53, 0x0c, 0x98, 0xe0, 0x0e, 0x47, 0x34, 0xf9, 0x6f, - 0xe6, 0xcc, 0xc0, 0x0e, 0x51, 0x1b, 0x06, 0x79, 0x46, 0xb3, 0x9c, 0x41, 0x43, 0x47, 0x64, 0x99, - 0xba, 0x85, 0x04, 0x9b, 0xfc, 0x79, 0x7f, 0xbc, 0xfa, 0x6e, 0x60, 0x0e, 0x50, 0xb9, 0x27, 0x6e, - 0x18, 0x2e, 0x41, 0x3b, 0x4a, 0x76, 0xf2, 0xc1, 0x6d, 0x26, 0x43, 0x11, 0xee, 0x25, 0x3e, 0x73, - 0x2a, 0xee, 0x24, 0x58, 0x23, 0x4c, 0x4b, 0x39, 0xa3, 0x58, 0x41, 0x98, 0x1f, 0xea, 0xd0, 0xde, - 0x0a, 0x07, 0xb6, 0xef, 0x7e, 0x33, 0xab, 0x94, 0x4f, 0x95, 0x9e, 0x97, 0xa0, 0x45, 0xfc, 0x81, - 0xe7, 0x46, 0x7b, 0x9b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0x89, 0x51, 0x09, 0xbc, 0xae, 0x24, - 0xf0, 0x05, 0x68, 0x0c, 0xe9, 0x8e, 0xeb, 0xa5, 0x71, 0x2f, 0x28, 0x1e, 0xf3, 0xc4, 0x23, 0x3c, - 0x93, 0x67, 0x31, 0x9f, 0x32, 0xf2, 0xa4, 0x3e, 0x55, 0x99, 0xd4, 0x9b, 0x72, 0x52, 0x57, 0x1d, - 0x0f, 0x25, 0xc7, 0xa3, 0xbb, 0x5a, 0x99, 0xbb, 0x7e, 0xa7, 0x41, 0x3b, 0x77, 0x37, 0xd6, 0xab, - 0x23, 0xdd, 0x55, 0x8c, 0x40, 0xbd, 0x22, 0x02, 0xb3, 0xb8, 0xa9, 0xc9, 0x71, 0xc3, 0x22, 0x8d, - 0x46, 0xae, 0xb4, 0x69, 0xc8, 0x68, 0xd6, 0x9b, 0x47, 0x6c, 0xc9, 0x59, 0x48, 0x49, 0x5b, 0xc4, - 0x86, 0xb2, 0x45, 0x2c, 0xe6, 0xd1, 0x5f, 0x6b, 0x70, 0x9e, 0xa1, 0x5c, 0x1a, 0xc6, 0x16, 0xb4, - 0x69, 0x21, 0x12, 0x44, 0xa2, 0x79, 0xb6, 0x22, 0x51, 0x14, 0x83, 0xc6, 0x2a, 0x09, 0x33, 0x85, - 0x4e, 0xa1, 0x13, 0x91, 0x79, 0xaa, 0x14, 0x16, 0xed, 0xb1, 0x4a, 0xc2, 0xe6, 0x6f, 0x34, 0x68, - 0x63, 0x6a, 0x93, 0xe6, 0xf9, 0x99, 0x9b, 0xfd, 0x1e, 0x9c, 0x2f, 0xf6, 0x7c, 0xcb, 0x8d, 0xe2, - 0x8e, 0xbe, 0x54, 0x1b, 0xd7, 0xf4, 0x4a, 0x05, 0x6c, 0xae, 0x3d, 0xbd, 0x9d, 0x78, 0x5e, 0x97, - 0x44, 0x91, 0x3d, 0x20, 0x6b, 0x47, 0x3d, 0x72, 0xc0, 0x3e, 0x58, 0xe4, 0x60, 0x64, 0x0c, 0xb1, - 0x3a, 0x87, 0x17, 0x0a, 0x2e, 0xf5, 0xb3, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, 0xa7, 0x53, - 0x5b, 0xaa, 0xb1, 0x14, 0x2a, 0x48, 0xe3, 0x1b, 0x30, 0xcd, 0x73, 0xb8, 0xe8, 0xa6, 0x33, 0xc1, - 0x07, 0xf0, 0x7a, 0x65, 0xd5, 0x50, 0x69, 0x15, 0x56, 0x03, 0x82, 0x7e, 0xd3, 0x8f, 0xc3, 0x23, - 0x4b, 0xd1, 0xb8, 0xf8, 0x3e, 0xcc, 0x97, 0x9a, 0x18, 0x6d, 0xa8, 0xed, 0x93, 0x23, 0x31, 0x0e, - 0xf6, 0xd3, 0x78, 0x09, 0xea, 0x87, 0x6c, 0xf3, 0x27, 0xd0, 0x5f, 0xac, 0xb0, 0x40, 0xd8, 0x6c, - 0x61, 0xc3, 0x57, 0xf5, 0x2f, 0x69, 0xe6, 0xb3, 0xd9, 0xc0, 0xe4, 0x31, 0x6a, 0xca, 0x18, 0xcd, - 0xb7, 0xa1, 0xd5, 0x8d, 0x06, 0x1b, 0x76, 0x6c, 0xf3, 0x86, 0xaf, 0x43, 0x6b, 0x98, 0x93, 0xbc, - 0x71, 0x75, 0x7f, 0x42, 0xc8, 0x92, 0x9b, 0x9b, 0x7f, 0xd2, 0xa1, 0x53, 0xed, 0x8a, 0x28, 0x60, - 0x36, 0x90, 0x30, 0x5c, 0xa7, 0x0e, 0xe1, 0x43, 0xab, 0x5b, 0x29, 0xc9, 0xb0, 0x23, 0x61, 0xc8, - 0x72, 0x98, 0x28, 0xb2, 0x91, 0x32, 0x56, 0x60, 0xc2, 0x4b, 0x61, 0x39, 0xde, 0x0a, 0xde, 0xce, - 0x18, 0x42, 0x9b, 0x7b, 0x57, 0x1a, 0x90, 0xc0, 0x6c, 0x75, 0x6c, 0xcc, 0xa2, 0x00, 0x41, 0x93, - 0x74, 0x20, 0x70, 0x25, 0xd5, 0x8b, 0x7d, 0x78, 0xaa, 0xb2, 0x69, 0x05, 0x80, 0x5f, 0x50, 0x01, - 0xbc, 0x38, 0x7a, 0x28, 0x45, 0x10, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x6b, 0x3f, 0x58, 0xf5, 0x9d, - 0xae, 0xeb, 0xf7, 0xc8, 0x01, 0x8b, 0xf6, 0x25, 0x68, 0x89, 0xad, 0x7c, 0x06, 0x53, 0xd3, 0x92, - 0x59, 0x23, 0x77, 0xf8, 0x85, 0xf9, 0x50, 0x2b, 0xcd, 0x07, 0xf3, 0x2a, 0x4c, 0xcb, 0xdd, 0xf1, - 0x24, 0x62, 0x3f, 0xe8, 0x91, 0x03, 0x3e, 0xa0, 0x19, 0x4b, 0x50, 0x9c, 0xcf, 0x5b, 0x88, 0xbd, - 0x81, 0xa0, 0xcc, 0x3f, 0xea, 0x70, 0xae, 0x64, 0x72, 0x14, 0x3c, 0xac, 0x1e, 0x39, 0x5e, 0x6a, - 0xa3, 0xe2, 0x65, 0x42, 0x89, 0x97, 0x7d, 0x98, 0x47, 0x90, 0xa4, 0xae, 0x3b, 0x75, 0x1e, 0x00, - 0x6f, 0x54, 0x95, 0xea, 0x65, 0x23, 0x05, 0xf6, 0x12, 0x17, 0xc1, 0x2f, 0xeb, 0x5d, 0x24, 0xb0, - 0x50, 0xdd, 0xb8, 0x02, 0xfe, 0x57, 0x54, 0xf8, 0x3f, 0x5d, 0x05, 0xbf, 0x6c, 0x89, 0x84, 0xff, - 0x01, 0xcc, 0xb1, 0x45, 0xb5, 0x47, 0x7c, 0xa7, 0x1b, 0x0d, 0xb8, 0x23, 0x97, 0xa0, 0x85, 0xf2, - 0xdd, 0x68, 0x90, 0x6f, 0xdd, 0x24, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0xb6, 0x78, 0xf2, 0x16, 0x62, - 0xd1, 0x93, 0x58, 0x2c, 0x41, 0x46, 0x44, 0x9c, 0x7a, 0x30, 0xef, 0xd6, 0xac, 0x8c, 0x36, 0x3f, - 0x68, 0xc0, 0xa4, 0x88, 0x46, 0x9e, 0x14, 0xd9, 0x6e, 0x39, 0x5b, 0x56, 0x91, 0xc2, 0xba, 0xb6, - 0x7f, 0x98, 0x87, 0x17, 0x52, 0xf2, 0x91, 0x53, 0x4d, 0x3d, 0x72, 0x2a, 0xd8, 0x34, 0x51, 0xb6, - 0xa9, 0x30, 0xae, 0x7a, 0x79, 0x5c, 0xac, 0x8c, 0xe3, 0x95, 0xcd, 0xb6, 0x67, 0xc7, 0xbb, 0x34, - 0x1c, 0x8a, 0xcd, 0x6f, 0xdd, 0x2a, 0xf1, 0x59, 0xe9, 0x88, 0xbc, 0xac, 0xf6, 0xc7, 0x14, 0x5e, - 0xe0, 0xb2, 0x4a, 0x1b, 0x39, 0xe9, 0x1e, 0x00, 0x4f, 0x28, 0x54, 0x26, 0xda, 0x16, 0x45, 0x2e, - 0xf5, 0x79, 0x15, 0x8a, 0xa5, 0xbe, 0xcc, 0x62, 0x23, 0x1f, 0x46, 0x83, 0x6b, 0x21, 0x1d, 0x8a, - 0x73, 0x8a, 0x94, 0xe4, 0x23, 0xa7, 0x7e, 0x9c, 0x56, 0xb0, 0x78, 0x36, 0x21, 0xb3, 0x98, 0xac, - 0x20, 0x79, 0x9d, 0x3f, 0x6d, 0xa5, 0x24, 0x8b, 0xa5, 0x88, 0x1c, 0x88, 0xe2, 0x9d, 0xfd, 0x54, - 0x90, 0x9b, 0x53, 0x91, 0x2b, 0x54, 0x63, 0x6d, 0xfe, 0x55, 0xae, 0xc6, 0xf2, 0x12, 0x67, 0x5e, - 0x29, 0x71, 0x56, 0x61, 0x92, 0x06, 0x6c, 0xfa, 0x47, 0x1d, 0x83, 0x4f, 0x97, 0xe7, 0x47, 0x2f, - 0x50, 0x2b, 0x5b, 0xd8, 0x12, 0x27, 0x46, 0x2a, 0x67, 0xdc, 0x82, 0x39, 0xba, 0xbb, 0xeb, 0xb9, - 0x3e, 0xd9, 0x4e, 0xa2, 0x3d, 0xbe, 0x49, 0x3e, 0xc7, 0x83, 0xdd, 0xac, 0x2a, 0x22, 0xd4, 0x96, - 0x56, 0x51, 0x94, 0x55, 0x7e, 0x76, 0x8c, 0x9b, 0x1c, 0xbe, 0xc0, 0x9d, 0xe7, 0x0b, 0x9c, 0xc2, - 0xe3, 0x67, 0x77, 0xd2, 0x42, 0xff, 0x14, 0x77, 0x9c, 0xcc, 0x5a, 0x7c, 0x15, 0xa6, 0x65, 0x63, - 0x2b, 0x26, 0xe6, 0x79, 0x79, 0x62, 0x4e, 0xc9, 0xf3, 0xee, 0x07, 0x1a, 0xcc, 0x15, 0xcc, 0x64, - 0xad, 0x63, 0x37, 0xf6, 0x88, 0xd0, 0x80, 0x04, 0xdb, 0xe9, 0x38, 0x24, 0xea, 0x8b, 0x89, 0xc0, - 0x7f, 0x8b, 0x9a, 0xb1, 0x96, 0x9d, 0x75, 0x99, 0x30, 0xed, 0x6e, 0xf5, 0x98, 0xa2, 0x1e, 0x4d, - 0x7c, 0x27, 0x3b, 0xc8, 0x96, 0x78, 0x2c, 0x10, 0xdd, 0xad, 0xde, 0x9a, 0xed, 0x0c, 0x08, 0x5e, - 0x6b, 0xd4, 0xb9, 0x4d, 0x2a, 0xd3, 0x74, 0x60, 0xea, 0xb6, 0x1b, 0x44, 0xeb, 0x74, 0x38, 0x64, - 0x70, 0x3a, 0x24, 0x66, 0x35, 0xb9, 0xc6, 0x07, 0x2f, 0x28, 0xe6, 0x19, 0x87, 0xec, 0xda, 0x89, - 0x17, 0xb3, 0xa6, 0xe9, 0xf4, 0x97, 0x58, 0xfc, 0x3c, 0x35, 0xa2, 0xfe, 0x06, 0x4a, 0xa3, 0x9d, - 0x12, 0xc7, 0xfc, 0x83, 0x0e, 0x6d, 0xbe, 0xba, 0xad, 0xf3, 0xe0, 0x71, 0xb8, 0xd0, 0x15, 0xa8, - 0xf3, 0xc9, 0x2c, 0xaa, 0xc3, 0xe3, 0x4f, 0x3f, 0xb0, 0xa9, 0x71, 0x15, 0x1a, 0x34, 0xe0, 0x25, - 0x25, 0x2e, 0x7d, 0xcf, 0x8d, 0x12, 0x52, 0x8f, 0xae, 0x2d, 0x21, 0x65, 0x5c, 0x03, 0x18, 0xe6, - 0x15, 0x24, 0x16, 0x02, 0xe3, 0xea, 0x90, 0x24, 0x99, 0x73, 0xb3, 0x1c, 0x97, 0x9d, 0x5f, 0xd7, - 0x2c, 0x95, 0x69, 0x6c, 0xc2, 0x2c, 0x37, 0x7b, 0x2b, 0x3d, 0x06, 0xe3, 0x18, 0x8c, 0xdf, 0x63, - 0x41, 0xda, 0xfc, 0xb1, 0x26, 0xdc, 0xc8, 0xbe, 0xf6, 0x08, 0xfa, 0x3e, 0x77, 0x89, 0x76, 0x2a, - 0x97, 0x2c, 0xc2, 0xd4, 0x30, 0x91, 0x4e, 0xe5, 0x6a, 0x56, 0x46, 0xe7, 0x10, 0xd5, 0xc6, 0x86, - 0xc8, 0xfc, 0x89, 0x06, 0x9d, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xab, 0x41, 0xe0, 0x89, 0x6b, 0x8e, - 0x53, 0x63, 0xfe, 0x15, 0x68, 0xda, 0xa8, 0xc6, 0x8f, 0x05, 0xec, 0x63, 0x9c, 0xb4, 0xe5, 0x32, - 0xd2, 0xa1, 0x49, 0x4d, 0x3e, 0x34, 0x31, 0x3f, 0xd2, 0x60, 0x16, 0x9d, 0xf2, 0x4e, 0xe2, 0xc6, - 0xa7, 0xb6, 0x6f, 0x0d, 0xa6, 0x0e, 0x12, 0x37, 0x3e, 0x45, 0x54, 0x66, 0x72, 0xe5, 0x78, 0xaa, - 0x55, 0xc4, 0x93, 0xf9, 0x73, 0x0d, 0x2e, 0x14, 0xdd, 0xba, 0xda, 0xef, 0x93, 0xe0, 0x51, 0x4e, - 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, 0x68, 0x54, 0x69, 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x6b, - 0xf2, 0xb7, 0x75, 0xf8, 0xff, 0xeb, 0xd9, 0xc4, 0xbb, 0x1d, 0xda, 0x7e, 0xb4, 0x4b, 0xc2, 0xf0, - 0x11, 0xda, 0x7b, 0x0b, 0x66, 0x7c, 0x72, 0x3f, 0xb7, 0x49, 0x4c, 0xc7, 0x71, 0xd5, 0xa8, 0xc2, - 0xe3, 0xad, 0x5d, 0xe6, 0xbf, 0x35, 0x68, 0xa3, 0x9e, 0xb7, 0xdd, 0xfe, 0xfe, 0x23, 0x1c, 0xfc, - 0x26, 0xcc, 0xee, 0x73, 0x0b, 0x18, 0x75, 0x8a, 0x65, 0xbb, 0x20, 0x3d, 0xe6, 0xf0, 0xff, 0xa3, - 0xc1, 0x7c, 0x7a, 0xbb, 0x7a, 0xe8, 0x3e, 0xca, 0x60, 0xdd, 0x86, 0x39, 0x17, 0x4d, 0x38, 0xa5, - 0x03, 0x8a, 0xe2, 0x63, 0x7a, 0xe0, 0x57, 0x1a, 0xcc, 0xa1, 0xa6, 0x37, 0xfd, 0x98, 0x84, 0xa7, - 0x1e, 0xff, 0x0d, 0x68, 0x11, 0x3f, 0x0e, 0x6d, 0xff, 0x34, 0x2b, 0xa4, 0x2c, 0x3a, 0xe6, 0x22, - 0xf9, 0x91, 0x06, 0x06, 0x57, 0xb5, 0xe1, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x21, 0x74, 0xe3, 0x19, - 0xfc, 0x43, 0x1d, 0xce, 0x4b, 0x5a, 0xba, 0x49, 0xfc, 0xb8, 0x9b, 0x6c, 0x6c, 0x40, 0x93, 0xd5, - 0x08, 0xf2, 0x6d, 0xe4, 0xb8, 0x1d, 0xe5, 0x82, 0xac, 0x8a, 0xe5, 0x44, 0x8f, 0xf4, 0xa9, 0xef, - 0x44, 0xbc, 0x38, 0x9a, 0xb1, 0x14, 0x1e, 0x5b, 0x86, 0x16, 0x25, 0x35, 0xeb, 0xb6, 0xdf, 0x27, - 0xde, 0x13, 0xe3, 0x22, 0xf3, 0x67, 0x1a, 0xcc, 0x62, 0x93, 0xc7, 0x7f, 0xc8, 0x2c, 0xd7, 0x63, - 0x20, 0x7f, 0x62, 0x50, 0x62, 0xe1, 0xb5, 0x20, 0x69, 0x91, 0xeb, 0xea, 0xc7, 0x37, 0xb4, 0x6e, - 0x40, 0xab, 0xbf, 0x67, 0xfb, 0x83, 0x53, 0x05, 0x97, 0x2c, 0x6a, 0xc6, 0xf0, 0xb4, 0x7c, 0x00, - 0xbf, 0x8e, 0x9f, 0xf8, 0xf0, 0x5f, 0x2e, 0x0c, 0xe5, 0xd8, 0xd7, 0x06, 0x0f, 0xe7, 0xf4, 0x7d, - 0x98, 0xc7, 0x5b, 0x5f, 0xa9, 0x26, 0x34, 0x3a, 0x30, 0x69, 0x3b, 0x78, 0x0c, 0xa1, 0x71, 0xa1, - 0x94, 0x54, 0xef, 0xf3, 0xc5, 0xbb, 0xaf, 0xfc, 0x3e, 0xff, 0x22, 0x80, 0xed, 0x38, 0xef, 0xd1, - 0xd0, 0x71, 0xfd, 0xb4, 0xc0, 0x97, 0x38, 0xe6, 0x5b, 0x30, 0x7d, 0x2d, 0xa4, 0xc3, 0xdb, 0xd2, - 0xfd, 0xed, 0xb1, 0x37, 0xcc, 0xf2, 0xdd, 0xaf, 0xae, 0xde, 0xfd, 0x9a, 0x5f, 0x87, 0xa7, 0x4a, - 0x86, 0x73, 0x67, 0xad, 0xe3, 0xb5, 0x74, 0xda, 0x89, 0x08, 0x99, 0xaa, 0x73, 0x39, 0xd9, 0x16, - 0x4b, 0x11, 0x32, 0x3f, 0xd0, 0xe0, 0x99, 0x92, 0xfa, 0xd5, 0x20, 0x08, 0xe9, 0xa1, 0xc0, 0xe4, - 0x2c, 0xba, 0x51, 0x8b, 0x5f, 0xbd, 0x58, 0xfc, 0x56, 0x1a, 0xa1, 0x14, 0xec, 0x1f, 0x83, 0x11, - 0x3f, 0xd5, 0x60, 0x4e, 0x18, 0xe1, 0x38, 0xa2, 0xdb, 0x57, 0xa0, 0x81, 0x4f, 0x5a, 0x44, 0x87, - 0xcf, 0x54, 0x76, 0x98, 0x3e, 0xc5, 0xb1, 0x44, 0xe3, 0x72, 0x44, 0xea, 0x55, 0x33, 0xea, 0xcb, - 0x59, 0xb0, 0x8f, 0xfd, 0xe8, 0x44, 0x08, 0x98, 0x5f, 0x4d, 0x83, 0x79, 0x83, 0x78, 0xe4, 0x2c, - 0x7d, 0x64, 0xde, 0x81, 0x59, 0xfe, 0xbe, 0x26, 0xf7, 0xc1, 0x99, 0xa8, 0x7d, 0x0f, 0xda, 0x5c, - 0xed, 0x99, 0xdb, 0x9b, 0xcd, 0x0e, 0xe6, 0x1f, 0x79, 0x29, 0x39, 0x13, 0xed, 0x9f, 0x87, 0x73, - 0xa9, 0xef, 0xf1, 0xc5, 0x29, 0xea, 0x1e, 0x71, 0x4f, 0x67, 0xbe, 0x04, 0x0b, 0xeb, 0xd4, 0x3f, - 0x24, 0x61, 0xa4, 0x3c, 0x52, 0x45, 0x09, 0x65, 0xf2, 0x0b, 0xca, 0xbc, 0x07, 0x8b, 0xb2, 0x44, - 0x8f, 0xc4, 0xdb, 0xa1, 0x7b, 0x28, 0x49, 0x89, 0x03, 0x6a, 0x4d, 0x39, 0xa0, 0xce, 0x0f, 0xb4, - 0x75, 0xe5, 0x40, 0xfb, 0x02, 0x34, 0xdd, 0x48, 0x28, 0xe0, 0x41, 0x35, 0x65, 0xe5, 0x0c, 0xd3, - 0x86, 0x79, 0x74, 0xbf, 0xb8, 0x30, 0xe2, 0x5d, 0x2c, 0xc2, 0x14, 0xc6, 0x54, 0xd6, 0x49, 0x46, - 0x8f, 0xbc, 0x7e, 0x19, 0x79, 0xd9, 0x68, 0xf6, 0x60, 0x5e, 0x3c, 0xaa, 0xd9, 0xb6, 0x07, 0xae, - 0x8f, 0x8b, 0xec, 0x45, 0x80, 0xc0, 0x1e, 0xa4, 0x0f, 0xf0, 0xf0, 0xda, 0x4c, 0xe2, 0xb0, 0xef, - 0xd1, 0x1e, 0xbd, 0x2f, 0xbe, 0xeb, 0xf8, 0x3d, 0xe7, 0x98, 0xef, 0x82, 0x61, 0x91, 0x28, 0xa0, - 0x7e, 0x44, 0x24, 0xad, 0x4b, 0xd0, 0x5a, 0x4f, 0xc2, 0x90, 0xf8, 0xac, 0xab, 0xf4, 0x85, 0x99, - 0xcc, 0x62, 0x7a, 0x7b, 0xb9, 0x5e, 0x3c, 0x62, 0x97, 0x38, 0xe6, 0x8f, 0x6a, 0xd0, 0xec, 0xb9, - 0x03, 0xdf, 0xf6, 0x2c, 0x72, 0x60, 0xbc, 0x0e, 0x0d, 0xdc, 0xb2, 0x88, 0x48, 0xa9, 0x3a, 0xf2, - 0xc5, 0xd6, 0xb8, 0x37, 0xb3, 0xc8, 0xc1, 0x8d, 0xff, 0xb3, 0x84, 0x8c, 0xf1, 0x0e, 0xcc, 0xe0, - 0xaf, 0x9b, 0x78, 0x04, 0x25, 0xf2, 0xd7, 0x67, 0x4f, 0x50, 0x22, 0x5a, 0xa3, 0x2e, 0x55, 0x03, - 0x33, 0xa8, 0xcf, 0x4b, 0x1a, 0xb1, 0x3c, 0x8c, 0x36, 0x08, 0x2b, 0x1f, 0x61, 0x10, 0xca, 0x30, - 0x69, 0x9b, 0x1f, 0xd2, 0x88, 0x4c, 0x3d, 0x5a, 0x1a, 0xcf, 0x72, 0x84, 0x34, 0xca, 0x30, 0xe9, - 0xbd, 0xc4, 0x1f, 0xdc, 0x09, 0xc4, 0xd9, 0xe1, 0x68, 0xe9, 0x1b, 0xbc, 0x99, 0x90, 0x46, 0x19, - 0x26, 0x1d, 0xf2, 0xc5, 0x9b, 0x3b, 0xfd, 0x38, 0x69, 0x5c, 0xe3, 0x85, 0x34, 0xca, 0xac, 0x35, - 0x61, 0x32, 0xb0, 0x8f, 0x3c, 0x6a, 0x3b, 0xe6, 0x87, 0x35, 0x80, 0xb4, 0x61, 0xc4, 0x0b, 0x1d, - 0x05, 0xa2, 0xe5, 0x13, 0x21, 0x0a, 0xbc, 0x23, 0x09, 0xa4, 0x5e, 0x35, 0x48, 0x9f, 0x1b, 0x17, - 0x24, 0xd4, 0x56, 0x80, 0xe9, 0x6a, 0x01, 0xa6, 0xe5, 0x13, 0x61, 0x12, 0x46, 0x09, 0xa0, 0xae, - 0x16, 0x80, 0x5a, 0x3e, 0x11, 0x28, 0x21, 0x2f, 0xa0, 0xba, 0x5a, 0x80, 0x6a, 0xf9, 0x44, 0xa8, - 0x84, 0xbc, 0x00, 0xeb, 0x6a, 0x01, 0xac, 0xe5, 0x13, 0xc1, 0x12, 0xf2, 0x65, 0xb8, 0xfe, 0xa2, - 0xc3, 0x2c, 0x77, 0x19, 0xde, 0xc2, 0xfa, 0xbb, 0x94, 0xdf, 0x07, 0x70, 0x77, 0xa9, 0x6f, 0x34, - 0x55, 0xa6, 0xf1, 0x22, 0xcc, 0x23, 0x83, 0x48, 0xd7, 0x25, 0x3a, 0xbf, 0x2e, 0x29, 0x7f, 0xe0, - 0x17, 0x44, 0x49, 0x14, 0xd3, 0xe1, 0x86, 0x1d, 0xdb, 0x69, 0xf1, 0x95, 0x73, 0xe4, 0xeb, 0xbb, - 0x89, 0xd2, 0x8b, 0xf1, 0x90, 0xd2, 0x61, 0x76, 0x2f, 0x27, 0x28, 0x26, 0x11, 0xbb, 0x43, 0x42, - 0x93, 0x58, 0x2c, 0x13, 0x29, 0x89, 0xef, 0xa8, 0x1c, 0xd7, 0xe6, 0x97, 0x5e, 0xe2, 0x91, 0x51, - 0xc6, 0xe0, 0x2b, 0x5b, 0x7e, 0x89, 0x27, 0x5e, 0x74, 0xe7, 0x9c, 0x31, 0x2e, 0xdc, 0xf8, 0x9f, - 0x03, 0xdc, 0xd8, 0x95, 0x1f, 0x1f, 0xd5, 0x2d, 0x85, 0x67, 0xfe, 0x43, 0x83, 0x73, 0xdb, 0x76, - 0x18, 0xbb, 0x7d, 0x37, 0xb0, 0xfd, 0xb8, 0x4b, 0x62, 0x9b, 0x8f, 0x53, 0x79, 0xcc, 0xa9, 0x3d, - 0xdc, 0x63, 0xce, 0x6d, 0x98, 0x1b, 0xa8, 0x3b, 0x90, 0x87, 0xdc, 0x3c, 0x14, 0xc5, 0x95, 0x97, - 0xa9, 0xb5, 0x87, 0x7e, 0x99, 0x6a, 0x7e, 0x57, 0x87, 0xb9, 0xc2, 0xf2, 0x7a, 0x6c, 0x6e, 0x5a, - 0x05, 0x70, 0xb3, 0x50, 0x3b, 0xe6, 0x80, 0x5e, 0x8d, 0x47, 0x4b, 0x12, 0xaa, 0xba, 0xed, 0xab, - 0x9d, 0xfe, 0xb6, 0xef, 0x06, 0xb4, 0x82, 0x1c, 0xa4, 0x63, 0xf6, 0x47, 0x15, 0x50, 0x5a, 0xb2, - 0xa8, 0xf9, 0x3e, 0xcc, 0x97, 0x56, 0x31, 0x7e, 0x6d, 0x47, 0xf7, 0x89, 0x9f, 0x5d, 0xdb, 0x31, - 0x42, 0x0a, 0x68, 0xbd, 0x18, 0xd0, 0x9e, 0x7b, 0x28, 0x3f, 0x93, 0x17, 0xa4, 0xf9, 0x3d, 0x1d, - 0x16, 0xaa, 0x33, 0xd0, 0x93, 0xea, 0xee, 0x1d, 0xe8, 0x8c, 0x5a, 0xed, 0xcf, 0xcc, 0xeb, 0x79, - 0x74, 0x67, 0xb9, 0xfa, 0x49, 0x75, 0xf7, 0xb9, 0x34, 0xba, 0xa5, 0x74, 0x68, 0xfe, 0x32, 0xf3, - 0x4f, 0x56, 0x8d, 0x3c, 0xa1, 0xfe, 0x31, 0x2e, 0x41, 0x1b, 0x87, 0x29, 0x3d, 0x0f, 0xc1, 0xe2, - 0xb6, 0xc4, 0xcf, 0x57, 0x0a, 0xa9, 0x34, 0x38, 0xb3, 0x98, 0xfd, 0xad, 0x96, 0x62, 0x92, 0xd5, - 0x78, 0x9f, 0x28, 0x4c, 0xf2, 0x48, 0x93, 0x0a, 0x1f, 0x29, 0xd2, 0xb2, 0xda, 0xf3, 0x7f, 0x91, - 0x76, 0x72, 0xa4, 0x65, 0xbe, 0x94, 0x8a, 0x40, 0xf3, 0x5b, 0x30, 0xb3, 0x41, 0xbc, 0x6e, 0x34, - 0x48, 0xdf, 0xaf, 0x9e, 0xe9, 0x66, 0xb2, 0xf8, 0xca, 0x6f, 0xa2, 0xfc, 0xca, 0x6f, 0x0d, 0x66, - 0x65, 0x03, 0x4e, 0xf3, 0x3e, 0x73, 0xed, 0xc2, 0xd7, 0x16, 0x57, 0xc4, 0x7f, 0x91, 0x5f, 0x2b, - 0x39, 0x71, 0xa7, 0xc1, 0xff, 0xbd, 0xf8, 0xf2, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x18, 0xee, - 0xfd, 0x92, 0xe4, 0x3c, 0x00, 0x00, + 0x84, 0x10, 0x48, 0x2c, 0x10, 0x42, 0x88, 0x1d, 0x1b, 0x90, 0xd8, 0xb1, 0x40, 0x62, 0xcd, 0x3f, + 0x80, 0x84, 0x14, 0x74, 0xef, 0xb9, 0x55, 0x75, 0x6f, 0x55, 0xb5, 0xdd, 0x63, 0x59, 0x99, 0x89, + 0x86, 0x5d, 0x9f, 0x53, 0xf7, 0x9c, 0x7b, 0xee, 0xf9, 0x9d, 0x7b, 0xcf, 0xb9, 0x8f, 0x86, 0xb9, + 0xc8, 0xd9, 0xbf, 0x7b, 0x3f, 0xba, 0x7c, 0x3f, 0x5a, 0x09, 0x42, 0x1a, 0x53, 0x63, 0x3e, 0x22, + 0xe1, 0x21, 0x09, 0xef, 0xda, 0x81, 0x7b, 0x37, 0xb0, 0x43, 0x7b, 0x18, 0x2d, 0x3e, 0xbf, 0x15, + 0x10, 0xff, 0xee, 0xcd, 0xee, 0xe5, 0x60, 0x7f, 0x70, 0x99, 0xb7, 0xba, 0x9c, 0x4a, 0x85, 0x76, + 0x10, 0x90, 0x50, 0xc8, 0x9a, 0xff, 0x98, 0x80, 0xe6, 0xf5, 0x90, 0x26, 0xc1, 0x4d, 0x7f, 0x97, + 0x1a, 0x1d, 0x98, 0x1c, 0x70, 0x62, 0xa3, 0xa3, 0x2d, 0x69, 0x2f, 0x34, 0xad, 0x94, 0x34, 0x2e, + 0x40, 0x93, 0xff, 0xdc, 0xb4, 0x87, 0xa4, 0xa3, 0xf3, 0x6f, 0x39, 0xc3, 0x30, 0x61, 0xda, 0xa7, + 0xb1, 0xbb, 0xeb, 0xf6, 0xed, 0xd8, 0xa5, 0x7e, 0xa7, 0xc6, 0x1b, 0x28, 0x3c, 0xd6, 0xc6, 0xf5, + 0xe3, 0x90, 0x3a, 0x49, 0x9f, 0xb7, 0x99, 0xc0, 0x36, 0x32, 0x8f, 0xf5, 0xbf, 0x6b, 0xf7, 0xc9, + 0x1d, 0xeb, 0x56, 0xa7, 0x8e, 0xfd, 0x0b, 0xd2, 0x58, 0x82, 0x16, 0xbd, 0xef, 0x93, 0xf0, 0x4e, + 0x44, 0xc2, 0x9b, 0x1b, 0x9d, 0x06, 0xff, 0x2a, 0xb3, 0x8c, 0x8b, 0x00, 0xfd, 0x90, 0xd8, 0x31, + 0xb9, 0xed, 0x0e, 0x49, 0x67, 0x72, 0x49, 0x7b, 0x61, 0xc6, 0x92, 0x38, 0x4c, 0xc3, 0x90, 0x0c, + 0x77, 0x48, 0xb8, 0x4e, 0x13, 0x3f, 0xee, 0x4c, 0xf1, 0x06, 0x32, 0xcb, 0x98, 0x05, 0x9d, 0x3c, + 0xe8, 0x34, 0xb9, 0x6a, 0x9d, 0x3c, 0x30, 0x16, 0xa0, 0x11, 0xc5, 0x76, 0x9c, 0x44, 0x1d, 0x58, + 0xd2, 0x5e, 0xa8, 0x5b, 0x82, 0x32, 0x96, 0x61, 0x86, 0xeb, 0xa5, 0xa9, 0x35, 0x2d, 0x2e, 0xa2, + 0x32, 0x33, 0x8f, 0xdd, 0x3e, 0x0a, 0x48, 0x67, 0x9a, 0x2b, 0xc8, 0x19, 0xc6, 0x25, 0x68, 0xfb, + 0x84, 0x38, 0xef, 0x92, 0x30, 0xf7, 0xda, 0x0c, 0x6f, 0x54, 0xe2, 0x1b, 0xcf, 0xc1, 0xac, 0x47, + 0xe9, 0x7e, 0x97, 0x9b, 0xca, 0x70, 0xea, 0xcc, 0xf2, 0x96, 0x05, 0xae, 0xf1, 0x22, 0xcc, 0xdb, + 0x41, 0xe0, 0x1d, 0x21, 0xeb, 0x5a, 0xe8, 0x12, 0xdf, 0xe9, 0xcc, 0xf1, 0xa6, 0xe5, 0x0f, 0xc6, + 0x97, 0x61, 0x41, 0xc6, 0xe7, 0x4e, 0xe0, 0xa4, 0xbe, 0x6b, 0x73, 0xd7, 0x8c, 0xf8, 0x6a, 0xac, + 0x80, 0xa1, 0x7c, 0x41, 0x17, 0xcc, 0x73, 0x17, 0x54, 0x7c, 0x31, 0x7f, 0x58, 0x83, 0xb9, 0x2c, + 0xc2, 0xae, 0xd1, 0xb0, 0x47, 0xe2, 0xc7, 0x38, 0xce, 0x30, 0x06, 0x1a, 0x59, 0x0c, 0x5c, 0xaf, + 0xc0, 0x89, 0xc5, 0x56, 0xeb, 0xca, 0x67, 0x56, 0x06, 0x94, 0x0e, 0x3c, 0x82, 0x13, 0x69, 0x27, + 0xd9, 0x5d, 0xb9, 0xe9, 0xc7, 0x2f, 0x5f, 0x79, 0xd7, 0xf6, 0x12, 0x52, 0x01, 0xe2, 0x7a, 0x09, + 0xc4, 0xa9, 0x93, 0xd5, 0x14, 0x11, 0xbe, 0x59, 0x85, 0x70, 0xf3, 0x64, 0x3d, 0x65, 0x29, 0xf3, + 0x63, 0x1d, 0xce, 0x71, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x13, 0x96, 0x80, 0x05, 0x68, 0x24, 0x08, + 0x36, 0xe2, 0x22, 0x28, 0x06, 0x59, 0x48, 0x3d, 0x72, 0x8b, 0x1c, 0x12, 0x8f, 0x23, 0x52, 0xb7, + 0x72, 0x86, 0xb1, 0x08, 0x53, 0xf7, 0xa8, 0xeb, 0xf3, 0xc0, 0x9a, 0xe0, 0x1f, 0x33, 0x9a, 0x7d, + 0xf3, 0xdd, 0xfe, 0xbe, 0xcf, 0xb0, 0x46, 0x1c, 0x32, 0x5a, 0x86, 0xa8, 0xa1, 0x42, 0xf4, 0x1c, + 0xcc, 0xda, 0x41, 0xd0, 0xb5, 0xfd, 0x01, 0x09, 0xb1, 0xd3, 0x49, 0x9c, 0x0e, 0x2a, 0x97, 0x2d, + 0x08, 0xac, 0xa7, 0x1e, 0x4d, 0xc2, 0x3e, 0xe1, 0xde, 0xae, 0x5b, 0x12, 0x87, 0xe9, 0xa1, 0x01, + 0x09, 0xa5, 0x79, 0x8c, 0x53, 0xbf, 0xc0, 0x15, 0x21, 0x01, 0x59, 0x48, 0xb0, 0x85, 0x24, 0x89, + 0xc9, 0x9b, 0xbe, 0xc3, 0x07, 0xd5, 0x12, 0x0b, 0x49, 0xce, 0x62, 0x0b, 0x84, 0xeb, 0x1f, 0xba, + 0x71, 0xb6, 0x5c, 0x4d, 0xe3, 0x02, 0xa1, 0x30, 0xcd, 0xef, 0x69, 0x30, 0xbb, 0x9d, 0xec, 0x78, + 0x6e, 0x9f, 0x33, 0x98, 0xf3, 0x73, 0x17, 0x6b, 0x8a, 0x8b, 0x65, 0x47, 0xe9, 0xa3, 0x1d, 0x55, + 0x53, 0x1d, 0xb5, 0x00, 0x8d, 0x01, 0xf1, 0x1d, 0x12, 0x0a, 0xc7, 0x0b, 0x4a, 0x0c, 0xa8, 0x9e, + 0x0e, 0xc8, 0xfc, 0xa3, 0x0e, 0x53, 0x9f, 0xb0, 0x09, 0x4b, 0xd0, 0x0a, 0xf6, 0xa8, 0x4f, 0x36, + 0x13, 0x16, 0x7c, 0xc2, 0x16, 0x99, 0x65, 0x9c, 0x87, 0xfa, 0x8e, 0x1b, 0xc6, 0x7b, 0x1c, 0xfd, + 0x19, 0x0b, 0x09, 0xc6, 0x25, 0x43, 0xdb, 0x45, 0xc8, 0x9b, 0x16, 0x12, 0x62, 0x40, 0x53, 0x19, + 0x42, 0x6a, 0x2a, 0x68, 0x96, 0x52, 0x41, 0x39, 0x82, 0xa0, 0x32, 0x82, 0x2e, 0x41, 0x7b, 0xe0, + 0xd1, 0x1d, 0xdb, 0xb3, 0x48, 0xff, 0xb0, 0x1b, 0x0d, 0xb6, 0x82, 0x98, 0xc3, 0x5d, 0xb7, 0x4a, + 0x7c, 0xf3, 0xdf, 0x1a, 0x00, 0x4e, 0x2d, 0xee, 0xc6, 0x42, 0xbe, 0xd2, 0xca, 0xf9, 0x6a, 0x01, + 0x1a, 0x21, 0x19, 0xda, 0xe1, 0x7e, 0x3a, 0x9d, 0x90, 0x2a, 0x18, 0x5f, 0x2b, 0x19, 0xff, 0x1a, + 0xc0, 0x2e, 0xef, 0x87, 0xe9, 0xe1, 0x6e, 0x65, 0x93, 0xbf, 0x54, 0x02, 0xac, 0xa4, 0x88, 0x5a, + 0x52, 0x73, 0x36, 0x57, 0x6d, 0xc7, 0x11, 0x53, 0xa2, 0x8e, 0x73, 0x35, 0x63, 0x54, 0xcc, 0x88, + 0xc6, 0x31, 0x33, 0x62, 0x32, 0x0b, 0xa0, 0x7f, 0x69, 0xd0, 0x5c, 0xf3, 0xec, 0xfe, 0xfe, 0x98, + 0x43, 0x57, 0x87, 0xa8, 0x97, 0x86, 0x78, 0x1d, 0x66, 0x76, 0x98, 0xba, 0x74, 0x08, 0xdc, 0x0b, + 0xad, 0x2b, 0x9f, 0xab, 0x18, 0xa5, 0x3a, 0x81, 0x2c, 0x55, 0x4e, 0x1d, 0xee, 0xc4, 0xc9, 0xc3, + 0xad, 0x1f, 0x33, 0xdc, 0x2c, 0x27, 0x98, 0x7f, 0xd5, 0x61, 0x9a, 0x2f, 0x9d, 0x16, 0x39, 0x48, + 0x48, 0x14, 0x1b, 0x6f, 0xc0, 0x54, 0x92, 0x9a, 0xaa, 0x8d, 0x6b, 0x6a, 0x26, 0x62, 0xbc, 0x2a, + 0x72, 0x1e, 0x97, 0xd7, 0xb9, 0xfc, 0x85, 0x0a, 0xf9, 0x2c, 0x89, 0x5a, 0x79, 0x73, 0x96, 0xed, + 0xf6, 0x6c, 0xdf, 0xf1, 0x88, 0x45, 0xa2, 0xc4, 0x8b, 0xc5, 0xfa, 0xab, 0xf0, 0x30, 0xd2, 0x0e, + 0xba, 0xd1, 0x40, 0xe4, 0x42, 0x41, 0x31, 0xef, 0x60, 0x3b, 0xf6, 0x09, 0x87, 0x9e, 0x33, 0xd8, + 0xa4, 0x0e, 0xc9, 0x01, 0x47, 0x08, 0xa7, 0x60, 0x4a, 0xe6, 0x7d, 0x0a, 0xaf, 0x61, 0x20, 0x28, + 0x3c, 0x06, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x5b, 0x12, 0xa7, 0x58, 0x6b, 0x99, 0x7f, 0xaf, 0xc1, + 0x0c, 0x4e, 0x9f, 0xd4, 0xa9, 0x17, 0x59, 0x9c, 0xd3, 0xa1, 0x12, 0x45, 0x12, 0x87, 0x59, 0xc1, + 0xa8, 0x4d, 0x75, 0x51, 0x52, 0x78, 0x2c, 0x14, 0x19, 0x7d, 0x4d, 0x59, 0x9c, 0x64, 0x56, 0xda, + 0xcb, 0x75, 0x79, 0x91, 0x92, 0x38, 0x6c, 0xd9, 0x8b, 0xa9, 0x12, 0x1d, 0x19, 0xcd, 0x64, 0x63, + 0x9a, 0xf5, 0x8f, 0xf1, 0x21, 0x71, 0x98, 0x7f, 0x63, 0x9a, 0xf6, 0x8d, 0x4e, 0xca, 0x19, 0xa8, + 0x59, 0xf4, 0x8b, 0xc9, 0x29, 0xa3, 0x4b, 0xa8, 0x36, 0x8f, 0x45, 0x15, 0x14, 0x54, 0xd5, 0xc9, + 0xd5, 0x2a, 0x4d, 0xae, 0x65, 0x98, 0x41, 0x3d, 0x85, 0xe4, 0xa4, 0x30, 0xd5, 0xd8, 0x98, 0x29, + 0xc6, 0x86, 0x8a, 0xee, 0xec, 0x08, 0x74, 0xe7, 0x32, 0x74, 0x7f, 0xa5, 0x03, 0x6c, 0x90, 0xc0, + 0x0e, 0xe3, 0x21, 0xf1, 0x63, 0x36, 0x3c, 0x27, 0xa3, 0x32, 0x70, 0x15, 0x9e, 0x9c, 0x53, 0x74, + 0x35, 0xa7, 0x18, 0x30, 0xc1, 0x1d, 0x8e, 0x68, 0xf2, 0xdf, 0xcc, 0x99, 0x81, 0x1d, 0xa2, 0x36, + 0x0c, 0xf2, 0x8c, 0x66, 0x39, 0x83, 0x86, 0x8e, 0xc8, 0x32, 0x75, 0x0b, 0x09, 0x36, 0xf9, 0xf3, + 0xfe, 0x78, 0x8d, 0xde, 0xc0, 0x1c, 0xa0, 0x72, 0x4f, 0xdc, 0x56, 0x5c, 0x82, 0x76, 0x94, 0xec, + 0xe4, 0x83, 0xdb, 0x4c, 0x86, 0x22, 0xdc, 0x4b, 0x7c, 0xe6, 0x54, 0xdc, 0x6f, 0xb0, 0x46, 0x98, + 0x96, 0x72, 0x46, 0xb1, 0xce, 0x30, 0x3f, 0xd4, 0xa1, 0xbd, 0x15, 0x0e, 0x6c, 0xdf, 0xfd, 0x76, + 0x56, 0x4f, 0x9f, 0x2a, 0x3d, 0x2f, 0x41, 0x8b, 0xf8, 0x03, 0xcf, 0x8d, 0xf6, 0x36, 0x73, 0xbf, + 0xc9, 0x2c, 0xd9, 0xd9, 0x13, 0xa3, 0x12, 0x78, 0x5d, 0x49, 0xe0, 0x0b, 0xd0, 0x18, 0xd2, 0x1d, + 0xd7, 0x4b, 0xe3, 0x5e, 0x50, 0x3c, 0xe6, 0x89, 0x47, 0x78, 0x26, 0xcf, 0x62, 0x3e, 0x65, 0xe4, + 0x49, 0x7d, 0xaa, 0x32, 0xa9, 0x37, 0xe5, 0xa4, 0xae, 0x3a, 0x1e, 0x4a, 0x8e, 0x47, 0x77, 0xb5, + 0x32, 0x77, 0xfd, 0x41, 0x83, 0x76, 0xee, 0x6e, 0xac, 0x6a, 0x47, 0xba, 0xab, 0x18, 0x81, 0x7a, + 0x45, 0x04, 0x66, 0x71, 0x53, 0x93, 0xe3, 0x86, 0x45, 0x1a, 0x8d, 0x5c, 0x69, 0x6b, 0x91, 0xd1, + 0xac, 0x37, 0x8f, 0xd8, 0x92, 0xb3, 0x90, 0x92, 0x36, 0x92, 0x0d, 0x65, 0x23, 0x59, 0xcc, 0xa3, + 0xbf, 0xd5, 0xe0, 0x3c, 0x43, 0xb9, 0x34, 0x8c, 0x2d, 0x68, 0xd3, 0x42, 0x24, 0x88, 0x44, 0xf3, + 0x6c, 0x45, 0xa2, 0x28, 0x06, 0x8d, 0x55, 0x12, 0x66, 0x0a, 0x9d, 0x42, 0x27, 0x22, 0xf3, 0x54, + 0x29, 0x2c, 0xda, 0x63, 0x95, 0x84, 0xcd, 0xdf, 0x69, 0xd0, 0xc6, 0xd4, 0x26, 0xcd, 0xf3, 0x33, + 0x37, 0xfb, 0x3d, 0x38, 0x5f, 0xec, 0xf9, 0x96, 0x1b, 0xc5, 0x1d, 0x7d, 0xa9, 0x36, 0xae, 0xe9, + 0x95, 0x0a, 0xd8, 0x5c, 0x7b, 0x7a, 0x3b, 0xf1, 0xbc, 0x2e, 0x89, 0x22, 0x7b, 0x40, 0xd6, 0x8e, + 0x7a, 0xe4, 0x80, 0x7d, 0xb0, 0xc8, 0xc1, 0xc8, 0x18, 0x62, 0x75, 0x0e, 0x2f, 0x14, 0x5c, 0xea, + 0x67, 0x21, 0x24, 0xb3, 0xd8, 0xb4, 0x8a, 0x50, 0x4f, 0xa7, 0xb6, 0x54, 0x63, 0x29, 0x54, 0x90, + 0xc6, 0xb7, 0x60, 0x9a, 0xe7, 0x70, 0xd1, 0x4d, 0x67, 0x82, 0x0f, 0xe0, 0xf5, 0xca, 0xaa, 0xa1, + 0xd2, 0x2a, 0xac, 0x06, 0x04, 0xfd, 0xa6, 0x1f, 0x87, 0x47, 0x96, 0xa2, 0x71, 0xf1, 0x7d, 0x98, + 0x2f, 0x35, 0x31, 0xda, 0x50, 0xdb, 0x27, 0x47, 0x62, 0x1c, 0xec, 0xa7, 0xf1, 0x12, 0xd4, 0x0f, + 0xd9, 0x16, 0x51, 0xa0, 0xbf, 0x58, 0x61, 0x81, 0xb0, 0xd9, 0xc2, 0x86, 0xaf, 0xea, 0x5f, 0xd1, + 0xcc, 0x67, 0xb3, 0x81, 0xc9, 0x63, 0xd4, 0x94, 0x31, 0x9a, 0x6f, 0x43, 0xab, 0x1b, 0x0d, 0x36, + 0xec, 0xd8, 0xe6, 0x0d, 0x5f, 0x87, 0xd6, 0x30, 0x27, 0x79, 0xe3, 0xea, 0xfe, 0x84, 0x90, 0x25, + 0x37, 0x37, 0xff, 0xa2, 0x43, 0xa7, 0xda, 0x15, 0x51, 0xc0, 0x6c, 0x20, 0x61, 0xb8, 0x4e, 0x1d, + 0xc2, 0x87, 0x56, 0xb7, 0x52, 0x92, 0x61, 0x47, 0xc2, 0x90, 0xe5, 0x30, 0x51, 0x64, 0x23, 0x65, + 0xac, 0xc0, 0x84, 0x97, 0xc2, 0x72, 0xbc, 0x15, 0xbc, 0x9d, 0x31, 0x84, 0x36, 0xf7, 0xae, 0x34, + 0x20, 0x81, 0xd9, 0xea, 0xd8, 0x98, 0x45, 0x01, 0x82, 0x26, 0xe9, 0x40, 0xe0, 0x4a, 0xaa, 0x17, + 0xfb, 0xf0, 0x54, 0x65, 0xd3, 0x0a, 0x00, 0xbf, 0xa4, 0x02, 0x78, 0x71, 0xf4, 0x50, 0x8a, 0x20, + 0x06, 0x60, 0x5c, 0x27, 0x71, 0xd7, 0x7e, 0xb0, 0xea, 0x3b, 0x5d, 0xd7, 0xef, 0x91, 0x03, 0x16, + 0xed, 0x4b, 0xd0, 0x12, 0x1b, 0xfe, 0x0c, 0xa6, 0xa6, 0x25, 0xb3, 0x46, 0x9e, 0x03, 0x14, 0xe6, + 0x43, 0xad, 0x34, 0x1f, 0xcc, 0xab, 0x30, 0x2d, 0x77, 0xc7, 0x93, 0x88, 0xfd, 0xa0, 0x47, 0x0e, + 0xf8, 0x80, 0x66, 0x2c, 0x41, 0x71, 0x3e, 0x6f, 0x21, 0xf6, 0x06, 0x82, 0x32, 0xff, 0xac, 0xc3, + 0xb9, 0x92, 0xc9, 0x51, 0xf0, 0xb0, 0x7a, 0xe4, 0x78, 0xa9, 0x8d, 0x8a, 0x97, 0x09, 0x25, 0x5e, + 0xf6, 0x61, 0x1e, 0x41, 0x92, 0xba, 0xee, 0xd4, 0x79, 0x00, 0xbc, 0x51, 0x55, 0xaa, 0x97, 0x8d, + 0x14, 0xd8, 0x4b, 0x5c, 0x04, 0xbf, 0xac, 0x77, 0x91, 0xc0, 0x42, 0x75, 0xe3, 0x0a, 0xf8, 0x5f, + 0x51, 0xe1, 0xff, 0x6c, 0x15, 0xfc, 0xb2, 0x25, 0x12, 0xfe, 0x07, 0x30, 0xc7, 0x16, 0xd5, 0x1e, + 0xf1, 0x9d, 0x6e, 0x34, 0xe0, 0x8e, 0x5c, 0x82, 0x16, 0xca, 0x77, 0xa3, 0x41, 0xbe, 0x75, 0x93, + 0x58, 0xac, 0x45, 0xdf, 0x73, 0xd9, 0xe2, 0xc9, 0x5b, 0x88, 0x45, 0x4f, 0x62, 0xb1, 0x04, 0x19, + 0x11, 0x71, 0x36, 0xc2, 0xbc, 0x5b, 0xb3, 0x32, 0xda, 0xfc, 0xa0, 0x01, 0x93, 0x22, 0x1a, 0x79, + 0x52, 0x64, 0xbb, 0xe5, 0x6c, 0x59, 0x45, 0x0a, 0xeb, 0xda, 0xfe, 0x61, 0x1e, 0x5e, 0x48, 0xc9, + 0x07, 0x53, 0x35, 0xf5, 0x60, 0xaa, 0x60, 0xd3, 0x44, 0xd9, 0xa6, 0xc2, 0xb8, 0xea, 0xe5, 0x71, + 0xb1, 0x32, 0x8e, 0x57, 0x36, 0xdb, 0x9e, 0x1d, 0xef, 0xd2, 0x70, 0x28, 0x36, 0xbf, 0x75, 0xab, + 0xc4, 0x67, 0xa5, 0x23, 0xf2, 0xb2, 0xda, 0x1f, 0x53, 0x78, 0x81, 0xcb, 0x2a, 0x6d, 0xe4, 0xa4, + 0x7b, 0x00, 0x3c, 0xa1, 0x50, 0x99, 0x68, 0x5b, 0x14, 0xb9, 0xd4, 0xe7, 0x55, 0x28, 0x96, 0xfa, + 0x32, 0x8b, 0x8d, 0x7c, 0x18, 0x0d, 0xae, 0x85, 0x74, 0x28, 0xce, 0x29, 0x52, 0x92, 0x8f, 0x9c, + 0xfa, 0x71, 0x5a, 0xc1, 0xe2, 0xd9, 0x84, 0xcc, 0x62, 0xb2, 0x82, 0xe4, 0x75, 0xfe, 0xb4, 0x95, + 0x92, 0x2c, 0x96, 0x22, 0x72, 0x20, 0x8a, 0x77, 0xf6, 0x53, 0x41, 0x6e, 0x4e, 0x45, 0xae, 0x50, + 0x8d, 0xb5, 0xf9, 0x57, 0xb9, 0x1a, 0xcb, 0x4b, 0x9c, 0x79, 0xa5, 0xc4, 0x59, 0x85, 0x49, 0x1a, + 0xb0, 0xe9, 0x1f, 0x75, 0x0c, 0x3e, 0x5d, 0x9e, 0x1f, 0xbd, 0x40, 0xad, 0x6c, 0x61, 0x4b, 0x9c, + 0x18, 0xa9, 0x9c, 0x71, 0x0b, 0xe6, 0xe8, 0xee, 0xae, 0xe7, 0xfa, 0x64, 0x3b, 0x89, 0xf6, 0xf8, + 0x26, 0xf9, 0x1c, 0x0f, 0x76, 0xb3, 0xaa, 0x88, 0x50, 0x5b, 0x5a, 0x45, 0x51, 0x56, 0xf9, 0xd9, + 0x31, 0x6e, 0x72, 0xf8, 0x02, 0x77, 0x9e, 0x2f, 0x70, 0x0a, 0x8f, 0x9f, 0xf0, 0x49, 0x0b, 0xfd, + 0x53, 0xdc, 0x71, 0x32, 0x6b, 0xf1, 0x55, 0x98, 0x96, 0x8d, 0xad, 0x98, 0x98, 0xe7, 0xe5, 0x89, + 0x39, 0x25, 0xcf, 0xbb, 0x1f, 0x69, 0x30, 0x57, 0x30, 0x93, 0xb5, 0x8e, 0xdd, 0xd8, 0x23, 0x42, + 0x03, 0x12, 0x6c, 0xa7, 0xe3, 0x90, 0xa8, 0x2f, 0x26, 0x02, 0xff, 0x2d, 0x6a, 0xc6, 0x5a, 0x76, + 0xd6, 0x65, 0xc2, 0xb4, 0xbb, 0xd5, 0x63, 0x8a, 0x7a, 0x34, 0xf1, 0x9d, 0xec, 0xb8, 0x5b, 0xe2, + 0xf1, 0xf3, 0xc8, 0xad, 0xde, 0x9a, 0xed, 0x0c, 0x08, 0x5e, 0x7e, 0xd4, 0xb9, 0x4d, 0x2a, 0xd3, + 0x74, 0x60, 0xea, 0xb6, 0x1b, 0x44, 0xeb, 0x74, 0x38, 0x64, 0x70, 0x3a, 0x24, 0x66, 0x35, 0xb9, + 0xc6, 0x07, 0x2f, 0x28, 0xe6, 0x19, 0x87, 0xec, 0xda, 0x89, 0x17, 0xb3, 0xa6, 0xe9, 0xf4, 0x97, + 0x58, 0xfc, 0xd4, 0x35, 0xa2, 0xfe, 0x06, 0x4a, 0xa3, 0x9d, 0x12, 0xc7, 0xfc, 0x93, 0x0e, 0x6d, + 0xbe, 0xba, 0xad, 0xf3, 0xe0, 0x71, 0xb8, 0xd0, 0x15, 0xa8, 0xf3, 0xc9, 0x2c, 0xaa, 0xc3, 0xe3, + 0x4f, 0x3f, 0xb0, 0xa9, 0x71, 0x15, 0x1a, 0x34, 0xe0, 0x25, 0x25, 0x2e, 0x7d, 0xcf, 0x8d, 0x12, + 0x52, 0x0f, 0xb8, 0x2d, 0x21, 0x65, 0x5c, 0x03, 0x18, 0xe6, 0x15, 0x24, 0x16, 0x02, 0xe3, 0xea, + 0x90, 0x24, 0x99, 0x73, 0xb3, 0x1c, 0x97, 0x9d, 0x72, 0xd7, 0x2c, 0x95, 0x69, 0x6c, 0xc2, 0x2c, + 0x37, 0x7b, 0x2b, 0x3d, 0x06, 0xe3, 0x18, 0x8c, 0xdf, 0x63, 0x41, 0xda, 0xfc, 0xa9, 0x26, 0xdc, + 0xc8, 0xbe, 0xf6, 0x08, 0xfa, 0x3e, 0x77, 0x89, 0x76, 0x2a, 0x97, 0x2c, 0xc2, 0xd4, 0x30, 0x91, + 0x4e, 0xe5, 0x6a, 0x56, 0x46, 0xe7, 0x10, 0xd5, 0xc6, 0x86, 0xc8, 0xfc, 0x99, 0x06, 0x9d, 0xb7, + 0xa8, 0xeb, 0xf3, 0x0f, 0xab, 0x41, 0xe0, 0x89, 0xcb, 0x90, 0x53, 0x63, 0xfe, 0x35, 0x68, 0xda, + 0xa8, 0xc6, 0x8f, 0x05, 0xec, 0x63, 0x9c, 0xb4, 0xe5, 0x32, 0xd2, 0xa1, 0x49, 0x4d, 0x3e, 0x34, + 0x31, 0x3f, 0xd2, 0x60, 0x16, 0x9d, 0xf2, 0x4e, 0xe2, 0xc6, 0xa7, 0xb6, 0x6f, 0x0d, 0xa6, 0x0e, + 0x12, 0x37, 0x3e, 0x45, 0x54, 0x66, 0x72, 0xe5, 0x78, 0xaa, 0x55, 0xc4, 0x93, 0xf9, 0x4b, 0x0d, + 0x2e, 0x14, 0xdd, 0xba, 0xda, 0xef, 0x93, 0xe0, 0x51, 0x4e, 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, + 0x68, 0x54, 0x69, 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x6b, 0xf2, 0x77, 0x75, 0xf8, 0xff, 0xeb, + 0xd9, 0xc4, 0xbb, 0x1d, 0xda, 0x7e, 0xb4, 0x4b, 0xc2, 0xf0, 0x11, 0xda, 0x7b, 0x0b, 0x66, 0x7c, + 0x72, 0x3f, 0xb7, 0x49, 0x4c, 0xc7, 0x71, 0xd5, 0xa8, 0xc2, 0xe3, 0xad, 0x5d, 0xe6, 0x7f, 0x34, + 0x68, 0xa3, 0x9e, 0xb7, 0xdd, 0xfe, 0xfe, 0x23, 0x1c, 0xfc, 0x26, 0xcc, 0xee, 0x73, 0x0b, 0x18, + 0x75, 0x8a, 0x65, 0xbb, 0x20, 0x3d, 0xe6, 0xf0, 0x3f, 0xd6, 0x60, 0x3e, 0xbd, 0x83, 0x3d, 0x74, + 0x1f, 0x65, 0xb0, 0x6e, 0xc3, 0x1c, 0x5e, 0x21, 0x9e, 0xd6, 0x01, 0x45, 0xf1, 0x31, 0x3d, 0xf0, + 0x1b, 0x0d, 0xe6, 0x50, 0xd3, 0x9b, 0x7e, 0x4c, 0xc2, 0x53, 0x8f, 0xff, 0x06, 0xb4, 0x88, 0x1f, + 0x87, 0xb6, 0x7f, 0x9a, 0x15, 0x52, 0x16, 0x1d, 0x73, 0x91, 0xfc, 0x48, 0x03, 0x83, 0xab, 0xda, + 0x70, 0xa3, 0xa1, 0x1b, 0x45, 0x8f, 0x10, 0xba, 0xf1, 0x0c, 0xfe, 0xb1, 0x0e, 0xe7, 0x25, 0x2d, + 0xdd, 0x24, 0x7e, 0xdc, 0x4d, 0x36, 0x36, 0xa0, 0xc9, 0x6a, 0x04, 0xf9, 0x36, 0x72, 0xdc, 0x8e, + 0x72, 0x41, 0x56, 0xc5, 0x72, 0xa2, 0x47, 0xfa, 0xd4, 0x77, 0x22, 0x5e, 0x1c, 0xcd, 0x58, 0x0a, + 0x8f, 0x2d, 0x43, 0x8b, 0x92, 0x9a, 0x75, 0xdb, 0xef, 0x13, 0xef, 0x89, 0x71, 0x91, 0xf9, 0x0b, + 0x0d, 0x66, 0xb1, 0xc9, 0xe3, 0x3f, 0x64, 0x96, 0xeb, 0x31, 0x90, 0x3f, 0x35, 0x28, 0xb1, 0xf0, + 0x5a, 0x90, 0xb4, 0xc8, 0x75, 0xf5, 0xe3, 0x1b, 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, + 0xa9, 0x82, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x5a, 0x3e, 0x80, 0x5f, 0xc7, 0x4f, 0x7c, 0xf8, 0x2f, + 0x17, 0x86, 0x72, 0xec, 0x6b, 0x83, 0x87, 0x73, 0xfa, 0x3e, 0xcc, 0xe3, 0xad, 0xaf, 0x54, 0x13, + 0x1a, 0x1d, 0x98, 0xb4, 0x1d, 0x3c, 0x86, 0xd0, 0xb8, 0x50, 0x4a, 0xaa, 0xf7, 0xf9, 0xe2, 0x75, + 0x58, 0x7e, 0x9f, 0x7f, 0x11, 0xc0, 0x76, 0x9c, 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0x5a, 0xe0, 0x4b, + 0x1c, 0xf3, 0x2d, 0x98, 0xbe, 0x16, 0xd2, 0xe1, 0x6d, 0xe9, 0xfe, 0xf6, 0xd8, 0x1b, 0x66, 0xf9, + 0xee, 0x57, 0x57, 0xef, 0x7e, 0xcd, 0x6f, 0xc2, 0x53, 0x25, 0xc3, 0xb9, 0xb3, 0xd6, 0xf1, 0x5a, + 0x3a, 0xed, 0x44, 0x84, 0x4c, 0xd5, 0xb9, 0x9c, 0x6c, 0x8b, 0xa5, 0x08, 0x99, 0x1f, 0x68, 0xf0, + 0x4c, 0x49, 0xfd, 0x6a, 0x10, 0x84, 0xf4, 0x50, 0x60, 0x72, 0x16, 0xdd, 0xa8, 0xc5, 0xaf, 0x5e, + 0x2c, 0x7e, 0x2b, 0x8d, 0x50, 0x0a, 0xf6, 0x4f, 0xc0, 0x88, 0x9f, 0x6b, 0x30, 0x27, 0x8c, 0x70, + 0x1c, 0xd1, 0xed, 0x2b, 0xd0, 0xc0, 0x27, 0x2d, 0xa2, 0xc3, 0x67, 0x2a, 0x3b, 0x4c, 0x9f, 0xe2, + 0x58, 0xa2, 0x71, 0x39, 0x22, 0xf5, 0xaa, 0x19, 0xf5, 0xd5, 0x2c, 0xd8, 0xc7, 0x7e, 0x74, 0x22, + 0x04, 0xcc, 0xaf, 0xa7, 0xc1, 0xbc, 0x41, 0x3c, 0x72, 0x96, 0x3e, 0x32, 0xef, 0xc0, 0x2c, 0x7f, + 0x5f, 0x93, 0xfb, 0xe0, 0x4c, 0xd4, 0xbe, 0x07, 0x6d, 0xae, 0xf6, 0xcc, 0xed, 0xcd, 0x66, 0x07, + 0xf3, 0x8f, 0xbc, 0x94, 0x9c, 0x89, 0xf6, 0x2f, 0xc2, 0xb9, 0xd4, 0xf7, 0xf8, 0x2e, 0x15, 0x75, + 0x8f, 0xb8, 0xa7, 0x33, 0x5f, 0x82, 0x85, 0x75, 0xea, 0x1f, 0x92, 0x30, 0x52, 0x9e, 0xb2, 0xa2, + 0x84, 0x32, 0xf9, 0x05, 0x65, 0xde, 0x83, 0x45, 0x59, 0xa2, 0x47, 0xe2, 0xed, 0xd0, 0x3d, 0x94, + 0xa4, 0xc4, 0x01, 0xb5, 0xa6, 0x1c, 0x50, 0xe7, 0x07, 0xda, 0xba, 0x72, 0xa0, 0x7d, 0x01, 0x9a, + 0x6e, 0x24, 0x14, 0xf0, 0xa0, 0x9a, 0xb2, 0x72, 0x86, 0x69, 0xc3, 0x3c, 0xba, 0x5f, 0x5c, 0x18, + 0xf1, 0x2e, 0x16, 0x61, 0x0a, 0x63, 0x2a, 0xeb, 0x24, 0xa3, 0x47, 0x5e, 0xbf, 0x8c, 0xbc, 0x6c, + 0x34, 0x7b, 0x30, 0x2f, 0x1e, 0xd5, 0x6c, 0xdb, 0x03, 0xd7, 0xc7, 0x45, 0xf6, 0x22, 0x40, 0x60, + 0x0f, 0xd2, 0x07, 0x78, 0x78, 0x6d, 0x26, 0x71, 0xd8, 0xf7, 0x68, 0x8f, 0xde, 0x17, 0xdf, 0x75, + 0xfc, 0x9e, 0x73, 0xcc, 0x77, 0xc1, 0xb0, 0x48, 0x14, 0x50, 0x3f, 0x22, 0x92, 0xd6, 0x25, 0x68, + 0xad, 0x27, 0x61, 0x48, 0x7c, 0xd6, 0x55, 0xfa, 0xc2, 0x4c, 0x66, 0x31, 0xbd, 0xbd, 0x5c, 0x2f, + 0x1e, 0xb1, 0x4b, 0x1c, 0xf3, 0x27, 0x35, 0x68, 0xf6, 0xdc, 0x81, 0x6f, 0x7b, 0x16, 0x39, 0x30, + 0x5e, 0x87, 0x06, 0x6e, 0x59, 0x44, 0xa4, 0x54, 0x1d, 0xf9, 0x62, 0x6b, 0xdc, 0x9b, 0x59, 0xe4, + 0xe0, 0xc6, 0xff, 0x59, 0x42, 0xc6, 0x78, 0x27, 0x7d, 0x87, 0x79, 0x13, 0x8f, 0xa0, 0x44, 0xfe, + 0xfa, 0xfc, 0x09, 0x4a, 0x44, 0x6b, 0xd4, 0xa5, 0x6a, 0x60, 0x06, 0xf5, 0x79, 0x49, 0x23, 0x96, + 0x87, 0xd1, 0x06, 0x61, 0xe5, 0x23, 0x0c, 0x42, 0x19, 0x26, 0x6d, 0xf3, 0x43, 0x1a, 0x91, 0xa9, + 0x47, 0x4b, 0xe3, 0x59, 0x8e, 0x90, 0x46, 0x19, 0x26, 0xbd, 0x97, 0xf8, 0x83, 0x3b, 0x81, 0x38, + 0x3b, 0x1c, 0x2d, 0x7d, 0x83, 0x37, 0x13, 0xd2, 0x28, 0xc3, 0xa4, 0x43, 0xbe, 0x78, 0x73, 0xa7, + 0x1f, 0x27, 0x8d, 0x6b, 0xbc, 0x90, 0x46, 0x99, 0xb5, 0x26, 0x4c, 0x06, 0xf6, 0x91, 0x47, 0x6d, + 0xc7, 0xfc, 0xb0, 0x06, 0x90, 0x36, 0x8c, 0x78, 0xa1, 0xa3, 0x40, 0xb4, 0x7c, 0x22, 0x44, 0x81, + 0x77, 0x24, 0x81, 0xd4, 0xab, 0x06, 0xe9, 0x0b, 0xe3, 0x82, 0x84, 0xda, 0x0a, 0x30, 0x5d, 0x2d, + 0xc0, 0xb4, 0x7c, 0x22, 0x4c, 0xc2, 0x28, 0x01, 0xd4, 0xd5, 0x02, 0x50, 0xcb, 0x27, 0x02, 0x25, + 0xe4, 0x05, 0x54, 0x57, 0x0b, 0x50, 0x2d, 0x9f, 0x08, 0x95, 0x90, 0x17, 0x60, 0x5d, 0x2d, 0x80, + 0xb5, 0x7c, 0x22, 0x58, 0x42, 0xbe, 0x0c, 0xd7, 0xdf, 0x74, 0x98, 0xe5, 0x2e, 0xc3, 0x5b, 0x58, + 0x7f, 0x97, 0x96, 0xdf, 0x27, 0x6b, 0x15, 0xef, 0x93, 0x8d, 0x17, 0x61, 0x1e, 0x19, 0x44, 0xba, + 0x2e, 0xd1, 0xf9, 0x75, 0x49, 0xf9, 0x03, 0xbf, 0x20, 0x4a, 0xa2, 0x98, 0x0e, 0x37, 0xec, 0xd8, + 0x4e, 0x8b, 0xaf, 0x9c, 0x23, 0x5f, 0xdf, 0x4d, 0x94, 0xde, 0x95, 0x87, 0x94, 0x0e, 0xb3, 0x7b, + 0x39, 0x41, 0x31, 0x89, 0xd8, 0x1d, 0x12, 0x9a, 0xc4, 0x62, 0x99, 0x48, 0x49, 0x7c, 0x47, 0xe5, + 0xb8, 0x36, 0xbf, 0xf4, 0x12, 0x8f, 0x8c, 0x32, 0x06, 0x5f, 0xd9, 0xf2, 0x4b, 0x3c, 0xf1, 0xee, + 0x3b, 0xe7, 0x8c, 0x71, 0xe1, 0xc6, 0xff, 0x42, 0xe0, 0xc6, 0xae, 0xfc, 0xf8, 0xa8, 0x6e, 0x29, + 0x3c, 0xf3, 0x9f, 0x1a, 0x9c, 0xdb, 0xb6, 0xc3, 0xd8, 0xed, 0xbb, 0x81, 0xed, 0xc7, 0x5d, 0x12, + 0xdb, 0x7c, 0x9c, 0xca, 0x63, 0x4e, 0xed, 0xe1, 0x1e, 0x73, 0x6e, 0xc3, 0xdc, 0x40, 0xdd, 0x81, + 0x3c, 0xe4, 0xe6, 0xa1, 0x28, 0xae, 0xbc, 0x4c, 0xad, 0x3d, 0xf4, 0xcb, 0x54, 0xf3, 0xfb, 0x3a, + 0xcc, 0x15, 0x96, 0xd7, 0x63, 0x73, 0xd3, 0x2a, 0x80, 0x9b, 0x85, 0xda, 0x31, 0x07, 0xf4, 0x6a, + 0x3c, 0x5a, 0x92, 0x50, 0xd5, 0x6d, 0x5f, 0xed, 0xf4, 0xb7, 0x7d, 0x37, 0xa0, 0x15, 0xe4, 0x20, + 0x1d, 0xb3, 0x3f, 0xaa, 0x80, 0xd2, 0x92, 0x45, 0xcd, 0xf7, 0x61, 0xbe, 0xb4, 0x8a, 0xf1, 0x6b, + 0x3b, 0xba, 0x4f, 0xfc, 0xec, 0xda, 0x8e, 0x11, 0x52, 0x40, 0xeb, 0xc5, 0x80, 0xf6, 0xdc, 0x43, + 0xf9, 0x99, 0xbc, 0x20, 0xcd, 0x1f, 0xe8, 0xb0, 0x50, 0x9d, 0x81, 0x9e, 0x54, 0x77, 0xef, 0x40, + 0x67, 0xd4, 0x6a, 0x7f, 0x66, 0x5e, 0xcf, 0xa3, 0x3b, 0xcb, 0xd5, 0x4f, 0xaa, 0xbb, 0xcf, 0xa5, + 0xd1, 0x2d, 0xa5, 0x43, 0xf3, 0xd7, 0x99, 0x7f, 0xb2, 0x6a, 0xe4, 0x09, 0xf5, 0x8f, 0x71, 0x09, + 0xda, 0x38, 0x4c, 0xe9, 0x79, 0x08, 0x16, 0xb7, 0x25, 0x7e, 0xbe, 0x52, 0x48, 0xa5, 0xc1, 0x99, + 0xc5, 0xec, 0xef, 0xb5, 0x14, 0x93, 0xac, 0xc6, 0xfb, 0x54, 0x61, 0x92, 0x47, 0x9a, 0x54, 0xf8, + 0x48, 0x91, 0x96, 0xd5, 0x9e, 0xff, 0x8b, 0xb4, 0x93, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x04, 0x9a, + 0xdf, 0x81, 0x99, 0x0d, 0xe2, 0x75, 0xa3, 0x41, 0xfa, 0x7e, 0xf5, 0x4c, 0x37, 0x93, 0xc5, 0x57, + 0x7e, 0x13, 0xe5, 0x57, 0x7e, 0x6b, 0x30, 0x2b, 0x1b, 0x70, 0x9a, 0xf7, 0x99, 0x6b, 0x17, 0xbe, + 0xb1, 0xb8, 0x22, 0xfe, 0xb1, 0xfc, 0x5a, 0xc9, 0x89, 0x3b, 0x0d, 0xfe, 0x1f, 0xc7, 0x97, 0xff, + 0x1b, 0x00, 0x00, 0xff, 0xff, 0x58, 0x71, 0xf4, 0x85, 0x0a, 0x3d, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index e351309ff..a2db28fea 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -52,6 +52,7 @@ message GroupMemberFullInfo { string operatorUserID = 9; string ex = 10; uint32 muteEndTime = 11; + string inviterUserID = 12; } message PublicUserInfo{ From af1d8fa834f4c6ed41ee5973c1be02777cb2fc52 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 14 Jul 2022 11:43:01 +0800 Subject: [PATCH 23/24] fix bug --- pkg/common/db/model_struct.go | 4 ++-- pkg/common/db/mysql_model/im_mysql_model/group_model.go | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 3f938caea..0b30be53e 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -114,7 +114,7 @@ type GroupMember struct { RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` JoinSource int32 `gorm:"column:join_source"` - InviterUserID string `gorm:"column:inviter_user_id;primary_key;size:64"` + InviterUserID string `gorm:"column:inviter_user_id;size:64"` OperatorUserID string `gorm:"column:operator_user_id;size:64"` MuteEndTime time.Time `gorm:"column:mute_end_time"` Ex string `gorm:"column:ex;size:1024"` @@ -141,7 +141,7 @@ type GroupRequest struct { HandleUserID string `gorm:"column:handle_user_id;size:64"` HandledTime time.Time `gorm:"column:handle_time"` JoinSource int32 `gorm:"column:join_source"` - InviterUserID string `gorm:"column:inviter_user_id;primary_key;size:64"` + InviterUserID string `gorm:"column:inviter_user_id;size:64"` Ex string `gorm:"column:ex;size:1024"` } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 954683a6f..a8a0d3c2b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -36,6 +36,9 @@ func InsertIntoGroup(groupInfo db.Group) error { if err != nil { return err } + if groupInfo.NotificationUpdateTime.Unix() < 0 { + groupInfo.NotificationUpdateTime = time.Now() + } return nil } From a01156feb631b9e137e23cb5d17986f1257542ee Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Thu, 14 Jul 2022 11:50:58 +0800 Subject: [PATCH 24/24] fix bug --- pkg/common/db/mysql_model/im_mysql_model/group_model.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index a8a0d3c2b..edfd2087d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -32,13 +32,14 @@ func InsertIntoGroup(groupInfo db.Group) error { groupInfo.GroupName = "Group Chat" } groupInfo.CreateTime = time.Now() + if groupInfo.NotificationUpdateTime.Unix() < 0 { + groupInfo.NotificationUpdateTime = utils.UnixSecondToTime(0) + } err = dbConn.Table("groups").Create(groupInfo).Error if err != nil { return err } - if groupInfo.NotificationUpdateTime.Unix() < 0 { - groupInfo.NotificationUpdateTime = time.Now() - } + return nil }