From ebf7a1d40d4ba6b82ed518ca6b47e84ea6f61d6a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 14 Mar 2022 10:23:44 +0800 Subject: [PATCH 01/28] v2.0.3 image --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index f63b3c125..0f1c5308f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -93,7 +93,7 @@ services: command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new open_im_server: - image: openim/open_im_server:v2.0.2 + image: openim/open_im_server:v2.0.3 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From 91b9e50fd0f86ceca7a11a6117251d54f7166424 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 18 Mar 2022 17:21:04 +0800 Subject: [PATCH 02/28] 2.0.4 --- cmd/Open-IM-SDK-Core | 2 +- docker-compose.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 1c6c7af53..dd23b4b18 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 1c6c7af5393b3e9eefbaf16b673519ca863a6c2c +Subproject commit dd23b4b185a273d38e73d51990c531e37ab5ba3b diff --git a/docker-compose.yaml b/docker-compose.yaml index 0f1c5308f..4d2495ade 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -93,7 +93,7 @@ services: command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new open_im_server: - image: openim/open_im_server:v2.0.3 + image: openim/open_im_server:v2.0.4 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From cfab49a7dde13540d606d5b7d8f6686fcbdde56b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 18 Mar 2022 17:44:50 +0800 Subject: [PATCH 03/28] friendVerify --- config/config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index dfaeaaed1..16445973d 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -178,7 +178,8 @@ tokenpolicy: accessSecret: "open_im_server" #token生成相关,默认即可 # Token effective time day as a unit accessExpire: 3650 #token过期时间(天) 默认即可 - +messageverify: + friendVerify: false # c2c: # callbackBeforeSendMsg: # switch: false From 7637b2bec24ff152369064e47fdb630a1f791d6b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 18 Mar 2022 19:08:31 +0800 Subject: [PATCH 04/28] check shell update --- script/check_all.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index b94aa893a..d0f48597b 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -52,13 +52,13 @@ else fi -check=$(ps aux | grep -w ./${timer_task_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTimer"${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"openImMsgTimer service does not start normally"${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 -fi +#check=$(ps aux | grep -w ./${timer_task_name} | grep -v grep | wc -l) +#if [ $check -ge 1 ]; then +# echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTimer"${COLOR_SUFFIX} +#else +# echo -e ${RED_PREFIX}"openImMsgTimer service does not start normally"${COLOR_SUFFIX} +# echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} +# exit -1 +#fi echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} From 1b8f664c8ac5b59d1187213e7d79c9c529a6c076 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 21 Mar 2022 11:03:46 +0800 Subject: [PATCH 05/28] fix: json tag value of UserIDResult.UserID (#178) Signed-off-by: arthur --- pkg/base_info/friend_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 64b71b284..3c45c393e 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -21,7 +21,7 @@ type ImportFriendReq struct { FromUserID string `json:"fromUserID" binding:"required"` } type UserIDResult struct { - UserID string `json:"userID""` + UserID string `json:"userID"` Result int32 `json:"result"` } type ImportFriendResp struct { From 1ab3e04cba4d6bd9464ba1944e177bff18596231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AE=88=E8=B6=8A?= Date: Mon, 21 Mar 2022 11:13:17 +0800 Subject: [PATCH 06/28] =?UTF-8?q?=E6=96=B0=E5=A2=9Emongo.dbUrl=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20(#174)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 当dbUri值不为空则直接使用该值 * 新增支持ali oss Co-authored-by: mashouyue's m1max --- cmd/open_im_api/main.go | 15 ++-- config/config.yaml | 11 +++ deploy/config.example.yaml | 1 + go.mod | 2 + go.sum | 7 +- internal/api/third/ali_oss_credential.go | 95 ++++++++++++++++++++++++ pkg/base_info/oss_api_struct.go | 22 ++++++ pkg/common/config/config.go | 28 +++++-- pkg/common/db/model.go | 11 ++- 9 files changed, 173 insertions(+), 19 deletions(-) create mode 100644 internal/api/third/ali_oss_credential.go create mode 100644 pkg/base_info/oss_api_struct.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 551a37a0e..eff8710e0 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -59,13 +59,13 @@ func main() { groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 groupRouterGroup.POST("/get_recv_group_applicationList", group.GetRecvGroupApplicationList) //1 groupRouterGroup.POST("/get_user_req_group_applicationList", group.GetUserReqGroupApplicationList) - groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 - groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 - groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 - groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 - groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 - groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 + groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 + groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 + groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 + groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 + groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 + groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 } //certificate authRouterGroup := r.Group("/auth") @@ -77,6 +77,7 @@ func main() { thirdGroup := r.Group("/third") { thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential) + thirdGroup.POST("/ali_oss_credential", apiThird.AliOSSCredential) thirdGroup.POST("/minio_storage_credential", apiThird.MinioStorageCredential) } //Message diff --git a/config/config.yaml b/config/config.yaml index 16445973d..e7c511930 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -19,6 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: + dbUri: ""#当dbUri值不为空则直接使用该值 dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 @@ -93,6 +94,16 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 endpoint: http://127.0.0.1:9000 accessKeyID: user12345 secretAccessKey: key12345 + ali: # ali oss + regionID: "oss-cn-beijing" + accessKeyID: "" + accessKeySecret: "" + stsEndpoint: "sts.cn-beijing.aliyun.com" + ossEndpoint: "oss-cn-beijing.aliyuncs.com" + bucket: "bucket1" + finalHost: "http://bucket1.oss-cn-beijing.aliyuncs.com" + stsDurationSeconds: 3600 + OssRoleArn: "acs:ram::xxx:role/xxx" rpcport: #rpc服务端口 默认即可 diff --git a/deploy/config.example.yaml b/deploy/config.example.yaml index f0ae8314e..08d8858e4 100644 --- a/deploy/config.example.yaml +++ b/deploy/config.example.yaml @@ -19,6 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: + dbUri: ""#当dbUri值不为空则直接使用该值 dbAddress: [ openim_mongo:27017 ] dbDirect: false dbTimeout: 10 diff --git a/go.mod b/go.mod index 9fbbf033a..8bb682c49 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/Shopify/toxiproxy v2.1.4+incompatible // indirect github.com/alibabacloud-go/darabonba-openapi v0.1.11 github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 + github.com/alibabacloud-go/sts-20150401 v1.1.0 github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 @@ -52,6 +53,7 @@ require ( google.golang.org/protobuf v1.27.1 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df + gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b sigs.k8s.io/yaml v1.2.0 // indirect diff --git a/go.sum b/go.sum index 2385d32f5..ab34c4c92 100644 --- a/go.sum +++ b/go.sum @@ -50,6 +50,7 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWso github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alibabacloud-go/darabonba-openapi v0.1.7/go.mod h1:6FV1Bt1AItYIlC2rVopPTumrRNtkfPBmrPVAZ8v2bLk= github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8= github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU= github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= @@ -59,8 +60,11 @@ github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWw github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= +github.com/alibabacloud-go/openapi-util v0.0.8/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0= github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= +github.com/alibabacloud-go/sts-20150401 v1.1.0 h1:1yVyKz02ES6aKo3xVjmoPLBH1OAmmSqPkhKRdjEkmYs= +github.com/alibabacloud-go/sts-20150401 v1.1.0/go.mod h1:QW4O/c7Hp4krHYt+6xwnoG8EyZW3V9GYkl6EgIBmxJc= github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= @@ -904,8 +908,9 @@ gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AW gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/internal/api/third/ali_oss_credential.go b/internal/api/third/ali_oss_credential.go new file mode 100644 index 000000000..c07cd5d22 --- /dev/null +++ b/internal/api/third/ali_oss_credential.go @@ -0,0 +1,95 @@ +package apiThird + +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" + "fmt" + openapi "github.com/alibabacloud-go/darabonba-openapi/client" + sts20150401 "github.com/alibabacloud-go/sts-20150401/client" + "github.com/alibabacloud-go/tea/tea" + "github.com/fatih/structs" + + //"github.com/fatih/structs" + "github.com/gin-gonic/gin" + "net/http" + "time" +) + +var stsClient *sts20150401.Client + +/** + * 使用AK&SK初始化账号Client + * @param accessKeyId + * @param accessKeySecret + * @return Client + * @throws Exception + */ +func getStsClient() *sts20150401.Client { + if stsClient != nil { + return stsClient + } + conf := &openapi.Config{ + // 您的AccessKey ID + AccessKeyId: tea.String(config.Config.Credential.Ali.AccessKeyID), + // 您的AccessKey Secret + AccessKeySecret: tea.String(config.Config.Credential.Ali.AccessKeySecret), + // Endpoint + Endpoint: tea.String(config.Config.Credential.Ali.StsEndpoint), + } + result, err := sts20150401.NewClient(conf) + if err != nil { + log.NewError("", "alists client初始化失败 ", err) + } + stsClient = result + return stsClient +} + +func AliOSSCredential(c *gin.Context) { + req := api.OSSCredentialReq{} + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, "AliOSSCredential args ", userID) + + stsResp, err := getStsClient().AssumeRole(&sts20150401.AssumeRoleRequest{ + DurationSeconds: tea.Int64(config.Config.Credential.Ali.StsDurationSeconds), + Policy: nil, + RoleArn: tea.String(config.Config.Credential.Ali.OssRoleArn), + RoleSessionName: tea.String(fmt.Sprintf("%s-%d", userID, time.Now().Unix())), + }) + + resp := api.OSSCredentialResp{} + if err != nil { + resp.ErrCode = constant.ErrTencentCredential.ErrCode + resp.ErrMsg = err.Error() + } else { + resp = api.OSSCredentialResp{ + CommResp: api.CommResp{}, + OssData: api.OSSCredentialRespData{ + Endpoint: config.Config.Credential.Ali.OssEndpoint, + AccessKeyId: *stsResp.Body.Credentials.AccessKeyId, + AccessKeySecret: *stsResp.Body.Credentials.AccessKeySecret, + Token: *stsResp.Body.Credentials.SecurityToken, + Bucket: config.Config.Credential.Ali.Bucket, + FinalHost: config.Config.Credential.Ali.FinalHost, + }, + Data: nil, + } + } + + resp.Data = structs.Map(&resp.OssData) + log.NewInfo(req.OperationID, "AliOSSCredential return ", resp) + + c.JSON(http.StatusOK, resp) +} diff --git a/pkg/base_info/oss_api_struct.go b/pkg/base_info/oss_api_struct.go new file mode 100644 index 000000000..621d18820 --- /dev/null +++ b/pkg/base_info/oss_api_struct.go @@ -0,0 +1,22 @@ +package base_info + +type OSSCredentialReq struct { + OperationID string `json:"operationID"` + Filename string `json:"filename"` + FileType string `json:"file_type"` +} + +type OSSCredentialRespData struct { + Endpoint string `json:"endpoint"` + AccessKeyId string `json:"access_key_id"` + AccessKeySecret string `json:"access_key_secret"` + Token string `json:"token"` + Bucket string `json:"bucket"` + FinalHost string `json:"final_host"` +} + +type OSSCredentialResp struct { + CommResp + OssData OSSCredentialRespData `json:"-"` + Data map[string]interface{} `json:"data"` +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 282440672..05ff23020 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -20,8 +20,8 @@ var ( var Config config type callBackConfig struct { - Enable bool `yaml:"enable"` - CallbackTimeOut int `yaml:"callbackTimeOut"` + Enable bool `yaml:"enable"` + CallbackTimeOut int `yaml:"callbackTimeOut"` CallbackFailedContinue bool `CallbackFailedContinue` } @@ -31,7 +31,7 @@ type config struct { Api struct { GinPort []int `yaml:"openImApiPort"` } - CmsApi struct{ + CmsApi struct { GinPort []int `yaml:"openImCmsApiPort"` } Sdk struct { @@ -45,6 +45,17 @@ type config struct { SecretID string `yaml:"secretID"` SecretKey string `yaml:"secretKey"` } + Ali struct { + RegionID string `yaml:"regionID"` + AccessKeyID string `yaml:"accessKeyID"` + AccessKeySecret string `yaml:"accessKeySecret"` + StsEndpoint string `yaml:"stsEndpoint"` + OssEndpoint string `yaml:"ossEndpoint"` + Bucket string `yaml:"bucket"` + FinalHost string `yaml:"finalHost"` + StsDurationSeconds int64 `yaml:"stsDurationSeconds"` + OssRoleArn string `yaml:"OssRoleArn"` + } Minio struct { Bucket string `yaml:"bucket"` Location string `yaml:"location"` @@ -66,6 +77,7 @@ type config struct { DBMaxLifeTime int `yaml:"dbMaxLifeTime"` } Mongo struct { + DBUri string `yaml:"dbUri"` // 当dbUri值不为空则直接使用该值 DBAddress []string `yaml:"dbAddress"` DBDirect bool `yaml:"dbDirect"` DBTimeout int `yaml:"dbTimeout"` @@ -182,12 +194,12 @@ type config struct { } Callback struct { - CallbackUrl string `yaml:"callbackUrl"` + CallbackUrl string `yaml:"callbackUrl"` CallbackBeforeSendSingleMsg callBackConfig `yaml:"callbackbeforeSendSingleMsg"` - CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"` - CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"` - CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` - CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` + CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"` + CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"` + CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` + CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` } `yaml:"callback"` Notification struct { ///////////////////////group///////////////////////////// diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 0576e6286..e7b03cbd5 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -42,9 +42,14 @@ func init() { // mongo init // "mongodb://sysop:moon@localhost/records" uri := "mongodb://sample.host:27017/?maxPoolSize=20&w=majority" - uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", - config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, - config.Config.Mongo.DBMaxPoolSize) + if config.Config.Mongo.DBUri != "" { + // example: mongodb://$user:$password@mongo1.mongo:27017,mongo2.mongo:27017,mongo3.mongo:27017/$DBDatabase/?replicaSet=rs0&readPreference=secondary&authSource=admin&maxPoolSize=$DBMaxPoolSize + uri = config.Config.Mongo.DBUri + } else { + uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", + config.Config.Mongo.DBAddress[0], config.Config.Mongo.DBDatabase, + config.Config.Mongo.DBMaxPoolSize) + } mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) if err != nil{ From e0c6972bed29d8b2ced7d984ebc3a20a460027be Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 21 Mar 2022 11:19:10 +0800 Subject: [PATCH 07/28] Update config.yaml (#167) Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com> --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index e7c511930..344743ec9 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -20,7 +20,7 @@ mysql: mongo: dbUri: ""#当dbUri值不为空则直接使用该值 - dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 + dbAddress: [ 127.0.0.1:37017 ] #mongo地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 dbDatabase: openIM #mongo db 默认即可 From 6c43f75f9fae80a53eb16a4851c5ee191cd9cc22 Mon Sep 17 00:00:00 2001 From: hxnets <32917172+hxnets@users.noreply.github.com> Date: Mon, 21 Mar 2022 14:43:41 +0800 Subject: [PATCH 08/28] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91OSS=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=20(#115)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * configure update * mongo:4.0 * open-im-server -> open_im_server * sleep 15 * 0.0.0.0 * sleep 10 15 * Update config.yaml * config * Update docker-compose.yaml * Update config.yaml * Create ISSUE_TEMPLATE.md * Update ISSUE_TEMPLATE.md * Create ISSUE_TEMPLATE * add issue template * add issue template * add issue template * add issue template * Update README.md * script * script * script * config * script * config update * script update * image: openim/open_im_server:v1.0.6 * script * script * script * version update * sender message sync * version update * 阿里云oss sts上传参数 * 阿里云oss sts上传参数 Co-authored-by: wenxu12345 <44203734@qq.com> Co-authored-by: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Co-authored-by: Gordon <1432970085@qq.com> Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md | 37 ++++++++++ .gitignore | 1 + README.md | 2 + config/config.yaml | 3 + docker-compose.yaml | 1 + go.sum | 2 + .../third/aliyun_cloud_storage_credential.go | 72 +++++++++++++++++++ internal/msg_gateway/gate/rpc_server.go | 11 +++ pkg/common/config/config.go | 1 - script/build_image.sh | 11 +++ script/docker_check_service.sh | 1 + script/start_rpc_service.sh | 2 +- 12 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md create mode 100644 internal/api/third/aliyun_cloud_storage_credential.go create mode 100644 script/build_image.sh diff --git a/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..15fe98c2c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md @@ -0,0 +1,37 @@ +--- +name: 🐞 Bug +about: File a bug/issue +title: '[BUG] ' +labels: Bug, Needs Triage +assignees: '' + +--- + +<!-- +Note: Please search to see if an issue already exists for the bug you encountered. +--> + +### Environment: +<!-- linux? windows? or Mac? +Example: +- OS: Ubuntu 20.04 --> + +### Physical Memory Capacity: +<!-- 8G or above is better --> + +### Docker Image: +<!-- Did you pull the docker image before execute docker images --> + +### Code Version: +<!-- Did you pull code from github? Make sure the code is up to date--> + +### Component installation: +<!-- Has etcd, mysql, mongodb, redis or Kafka been installed on the server before Open-IM-Server deployment--> + + +### Log File: +<!-- view log file(logs/openIM.log) content. --> + + +### screenshot: +<!----> \ No newline at end of file diff --git a/.gitignore b/.gitignore index e4b74c4e9..3390267f4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ out-test .github .idea + deploy/open_im_demo deploy/open_im_api deploy/open_im_msg_gateway diff --git a/README.md b/README.md index ad3aa2129..4964bacb5 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ All images are available at https://hub.docker.com/r/lyt1123/open_im_server 4. Start docker-compose with one click(Docker automatically pulls all images) ``` + cd Open-IM-Server docker-compose up -d ``` @@ -99,6 +100,7 @@ All images are available at https://hub.docker.com/r/lyt1123/open_im_server ``` ./docker_check_service.sh + ./check_all.sh ``` ![OpenIMServersondockerpng](https://github.com/OpenIMSDK/Open-IM-Server/blob/main/docs/Open-IM-Servers-on-docker.png) diff --git a/config/config.yaml b/config/config.yaml index 344743ec9..aff4fd24d 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -74,6 +74,7 @@ endpoints: rpc_admin_cms: openim_rpc_admin_cms rpc_message_cms: openim_rpc_admin_cms + api: openImApiPort: [ 10000 ] #api服务端口,默认即可,需要开放此端口或做nginx转发 cmsapi: @@ -106,6 +107,7 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 OssRoleArn: "acs:ram::xxx:role/xxx" + rpcport: #rpc服务端口 默认即可 openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] @@ -511,3 +513,4 @@ demo: + diff --git a/docker-compose.yaml b/docker-compose.yaml index 4d2495ade..78e5c1ac2 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -32,6 +32,7 @@ services: # - MONGO_INITDB_ROOT_USERNAME=openIM # - MONGO_INITDB_ROOT_PASSWORD=openIM + #TZ: Asia/Shanghai restart: always diff --git a/go.sum b/go.sum index ab34c4c92..34b43fe72 100644 --- a/go.sum +++ b/go.sum @@ -298,12 +298,14 @@ github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/jinzhu/now v1.1.3 h1:PlHq1bSCSZL9K0wUhbm2pGLoTWs2GwVhsP6emvGV/ZI= github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= diff --git a/internal/api/third/aliyun_cloud_storage_credential.go b/internal/api/third/aliyun_cloud_storage_credential.go new file mode 100644 index 000000000..940c1c414 --- /dev/null +++ b/internal/api/third/aliyun_cloud_storage_credential.go @@ -0,0 +1,72 @@ +package apiThird + +import ( + "Open_IM/pkg/common/config" + "github.com/aliyun/alibaba-cloud-sdk-go/services/sts" + "github.com/gin-gonic/gin" + "net/http" +) + +type paramsAliyunCloudStorageCredential struct { + Token string `form:"token"` + OperationID string `form:"operationID"` +} + +func AliyunCloudStorageCredential(c *gin.Context) { + params := paramsAliyunCloudStorageCredential{} + if err := c.BindQuery(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "Parameter parsing error,please check the parameters and request service again"}) + return + } + + credential := config.Config.Credential.Aliyun + if credential.AccessKeyId == "" || credential.AccessKeySecret == "" || credential.Bucket == "" || credential.Region == "" || credential.RegionId == "" || credential.RoleArn == "" { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "Aliyun OSS config error"}) + return + } + //构建一个阿里云客户端, 用于发起请求。 + //构建阿里云客户端时,需要设置AccessKey ID和AccessKey Secret。 + client, err := sts.NewClientWithAccessKey(credential.RegionId, credential.AccessKeyId, credential.AccessKeySecret) + + //构建请求对象。 + request := sts.CreateAssumeRoleRequest() + request.Scheme = "https" + + type CredentialPolicyStatement struct { + Action []string `json:"action,omitempty"` + Effect string `json:"effect,omitempty"` + Resource []string `json:"resource,omitempty"` + Condition map[string]map[string]interface{} `json:"condition,omitempty"` + } + + type CredentialPolicy struct { + Version string `json:"version,omitempty"` + Statement []CredentialPolicyStatement `json:"statement,omitempty"` + } + + //设置参数。关于参数含义和设置方法,请参见《API参考》。 + request.RoleArn = credential.RoleArn + request.RoleSessionName = params.OperationID + request.Policy = "{\n \"Version\": \"1\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"oss:PutObject\"\n ],\n \"Resource\": \"acs:oss:*:*:*\"\n }\n ]\n}" + //request.DurationSeconds = "900" + + //发起请求,并得到响应。 + res, err := client.AssumeRole(request) + if err != nil { + c.JSON(http.StatusOK, gin.H{ + "errCode": config.ErrTencentCredential.ErrCode, + "errMsg": err.Error(), + "bucket": "", + "region": "", + "data": res, + }) + return + } + c.JSON(http.StatusOK, gin.H{ + "errCode": 0, + "errMsg": "", + "region": config.Config.Credential.Aliyun.Region, + "bucket": config.Config.Credential.Aliyun.Bucket, + "data": res, + }) +} diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 4c96b9241..fc285b033 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -92,6 +92,17 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe resp = append(resp, temp) } } + //Single chat sender synchronization message + if in.GetSessionType() == constant.SingleChatType { + userIDList = genUidPlatformArray(in.SendID) + for _, v := range userIDList { + UIDAndPID = strings.Split(v, " ") + if conn := ws.getUserConn(v); conn != nil { + _ = sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) + } + } + } + if !tag { log.NewError(in.OperationID, "push err ,no matched ws conn not in map", in.String()) } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 05ff23020..deb7f98fd 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -64,7 +64,6 @@ type config struct { SecretAccessKey string `yaml:"secretAccessKey"` } `yaml:"minio"` } - Mysql struct { DBAddress []string `yaml:"dbMysqlAddress"` DBUserName string `yaml:"dbMysqlUserName"` diff --git a/script/build_image.sh b/script/build_image.sh new file mode 100644 index 000000000..ad37e24e4 --- /dev/null +++ b/script/build_image.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +image=openim/open_im_server:v1.0.5 +rm Open-IM-Server -rf +git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive +cd Open-IM-Server +git checkout tuoyun +cd cmd/Open-IM-SDK-Core/ +git checkout tuoyun +cd ../../ +docker build -t $image . -f deploy.Dockerfile +docker push $image \ No newline at end of file diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh index 6579d400c..6236712ba 100644 --- a/script/docker_check_service.sh +++ b/script/docker_check_service.sh @@ -8,3 +8,4 @@ sleep 30 echo "check OpenIM................................" ./check_all.sh + diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index bc5f41e3d..2d685f478 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -61,6 +61,6 @@ for ((i = 0; i < ${#service_filename[*]}; i++)); do nohup ./${service_filename[$i]} -port $j >>../logs/openIM.log 2>&1 & sleep 1 pid="netstat -ntlp|grep $j |awk '{printf \$7}'|cut -d/ -f1" - echo -e "${RED_PREFIX}${service_filename[$i]} Service is started,port number:$j pid:$(eval $pid)$COLOR_SUFFIX" + # echo -e "${RED_PREFIX}${service_filename[$i]} Service is started,port number:$j pid:$(eval $pid)$COLOR_SUFFIX" done done From 3dc4290f2a80a872c1e99b764436e05a96f355af Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Mar 2022 14:57:35 +0800 Subject: [PATCH 09/28] pr modify and update --- internal/msg_gateway/gate/rpc_server.go | 11 ----------- script/build_image.sh | 11 ----------- script/demo_svr_start.sh | 2 +- script/env_check.sh | 1 - script/path_info.cfg | 3 --- script/start_all.sh | 2 -- script/start_rpc_service.sh | 4 ++-- 7 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 script/build_image.sh diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index fc285b033..4c96b9241 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -92,17 +92,6 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe resp = append(resp, temp) } } - //Single chat sender synchronization message - if in.GetSessionType() == constant.SingleChatType { - userIDList = genUidPlatformArray(in.SendID) - for _, v := range userIDList { - UIDAndPID = strings.Split(v, " ") - if conn := ws.getUserConn(v); conn != nil { - _ = sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) - } - } - } - if !tag { log.NewError(in.OperationID, "push err ,no matched ws conn not in map", in.String()) } diff --git a/script/build_image.sh b/script/build_image.sh deleted file mode 100644 index ad37e24e4..000000000 --- a/script/build_image.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -image=openim/open_im_server:v1.0.5 -rm Open-IM-Server -rf -git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive -cd Open-IM-Server -git checkout tuoyun -cd cmd/Open-IM-SDK-Core/ -git checkout tuoyun -cd ../../ -docker build -t $image . -f deploy.Dockerfile -docker push $image \ No newline at end of file diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh index 55aaa88b1..85b36ab25 100644 --- a/script/demo_svr_start.sh +++ b/script/demo_svr_start.sh @@ -44,4 +44,4 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} else echo -e ${YELLOW_PREFIX}${demo_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi +fi \ No newline at end of file diff --git a/script/env_check.sh b/script/env_check.sh index 6af30a37b..a3a9857f6 100644 --- a/script/env_check.sh +++ b/script/env_check.sh @@ -17,4 +17,3 @@ if [ $available -lt 2000 ] ; then else echo -e ${GREEN_PREFIX} "Memory is ok, available is: "$available"m${COLOR_SUFFIX}" fi - diff --git a/script/path_info.cfg b/script/path_info.cfg index 7fe9622b6..5e3b3edc4 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -53,7 +53,6 @@ service_source_root=( ${msg_source_root} ${push_source_root} ${sdk_server_source_root} - ${timer_task_source_root} ${demo_server_source_root} ) #service filename @@ -74,10 +73,8 @@ service_names=( ${msg_name} ${push_name} ${sdk_server_name} - ${timer_task_name} ${demo_server_name} ) - diff --git a/script/start_all.sh b/script/start_all.sh index dd9420adc..4125ca50a 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -9,7 +9,6 @@ need_to_start_server_shell=( push_start.sh msg_transfer_start.sh sdk_svr_start.sh - timer_start.sh demo_svr_start.sh ) @@ -17,4 +16,3 @@ for i in ${need_to_start_server_shell[*]}; do chmod +x $i ./$i done - diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 2d685f478..6e469c7d2 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -61,6 +61,6 @@ for ((i = 0; i < ${#service_filename[*]}; i++)); do nohup ./${service_filename[$i]} -port $j >>../logs/openIM.log 2>&1 & sleep 1 pid="netstat -ntlp|grep $j |awk '{printf \$7}'|cut -d/ -f1" - # echo -e "${RED_PREFIX}${service_filename[$i]} Service is started,port number:$j pid:$(eval $pid)$COLOR_SUFFIX" + echo -e "${RED_PREFIX}${service_filename[$i]} Service is started,port number:$j pid:$(eval $pid)$COLOR_SUFFIX" done -done +done \ No newline at end of file From ea6d47200244edf7b443a776e391ddda47ff5be0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Mar 2022 14:59:00 +0800 Subject: [PATCH 10/28] pr modify and update --- .../third/aliyun_cloud_storage_credential.go | 72 ------------------- 1 file changed, 72 deletions(-) delete mode 100644 internal/api/third/aliyun_cloud_storage_credential.go diff --git a/internal/api/third/aliyun_cloud_storage_credential.go b/internal/api/third/aliyun_cloud_storage_credential.go deleted file mode 100644 index 940c1c414..000000000 --- a/internal/api/third/aliyun_cloud_storage_credential.go +++ /dev/null @@ -1,72 +0,0 @@ -package apiThird - -import ( - "Open_IM/pkg/common/config" - "github.com/aliyun/alibaba-cloud-sdk-go/services/sts" - "github.com/gin-gonic/gin" - "net/http" -) - -type paramsAliyunCloudStorageCredential struct { - Token string `form:"token"` - OperationID string `form:"operationID"` -} - -func AliyunCloudStorageCredential(c *gin.Context) { - params := paramsAliyunCloudStorageCredential{} - if err := c.BindQuery(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "Parameter parsing error,please check the parameters and request service again"}) - return - } - - credential := config.Config.Credential.Aliyun - if credential.AccessKeyId == "" || credential.AccessKeySecret == "" || credential.Bucket == "" || credential.Region == "" || credential.RegionId == "" || credential.RoleArn == "" { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "Aliyun OSS config error"}) - return - } - //构建一个阿里云客户端, 用于发起请求。 - //构建阿里云客户端时,需要设置AccessKey ID和AccessKey Secret。 - client, err := sts.NewClientWithAccessKey(credential.RegionId, credential.AccessKeyId, credential.AccessKeySecret) - - //构建请求对象。 - request := sts.CreateAssumeRoleRequest() - request.Scheme = "https" - - type CredentialPolicyStatement struct { - Action []string `json:"action,omitempty"` - Effect string `json:"effect,omitempty"` - Resource []string `json:"resource,omitempty"` - Condition map[string]map[string]interface{} `json:"condition,omitempty"` - } - - type CredentialPolicy struct { - Version string `json:"version,omitempty"` - Statement []CredentialPolicyStatement `json:"statement,omitempty"` - } - - //设置参数。关于参数含义和设置方法,请参见《API参考》。 - request.RoleArn = credential.RoleArn - request.RoleSessionName = params.OperationID - request.Policy = "{\n \"Version\": \"1\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"oss:PutObject\"\n ],\n \"Resource\": \"acs:oss:*:*:*\"\n }\n ]\n}" - //request.DurationSeconds = "900" - - //发起请求,并得到响应。 - res, err := client.AssumeRole(request) - if err != nil { - c.JSON(http.StatusOK, gin.H{ - "errCode": config.ErrTencentCredential.ErrCode, - "errMsg": err.Error(), - "bucket": "", - "region": "", - "data": res, - }) - return - } - c.JSON(http.StatusOK, gin.H{ - "errCode": 0, - "errMsg": "", - "region": config.Config.Credential.Aliyun.Region, - "bucket": config.Config.Credential.Aliyun.Bucket, - "data": res, - }) -} From a55582a018729f44befd9e24cf92493e6dedff5a Mon Sep 17 00:00:00 2001 From: goubo <goujinbo@outlook.com> Date: Mon, 21 Mar 2022 15:25:41 +0800 Subject: [PATCH 11/28] =?UTF-8?q?=E6=96=B9=E4=BE=BF=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=95=B0=E6=8D=AE=20(#148)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/demo/register/set_password.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 7540d9830..804e8eb11 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -17,6 +17,7 @@ import ( type ParamsSetPassword struct { Email string `json:"email"` + Name string `json:"name"` PhoneNumber string `json:"phoneNumber"` Password string `json:"password"` VerificationCode string `json:"verificationCode"` @@ -38,6 +39,9 @@ func SetPassword(c *gin.Context) { } else { account = params.PhoneNumber } + if params.Name == "" { + params.Name = account + } if params.VerificationCode != config.Config.Demo.SuperCode { accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix v, err := db.DB.GetAccountCode(accountKey) @@ -54,7 +58,7 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.OperationID = params.OperationID openIMRegisterReq.Platform = params.Platform openIMRegisterReq.UserID = account - openIMRegisterReq.Nickname = account + openIMRegisterReq.Nickname = params.Name openIMRegisterReq.Secret = config.Config.Secret openIMRegisterResp := api.UserRegisterResp{} bMsg, err := http2.Post(url, openIMRegisterReq, 2) @@ -69,7 +73,7 @@ func SetPassword(c *gin.Context) { if err != nil { log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) } - c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: "+openIMRegisterResp.ErrMsg}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) return } log.Info(params.OperationID, "begin store mysql", account, params.Password) From c16d8da7841e57e6fe1b1c3931150f9f444437b3 Mon Sep 17 00:00:00 2001 From: jaonzyx <73813877+jaonzyx@users.noreply.github.com> Date: Mon, 21 Mar 2022 15:43:43 +0800 Subject: [PATCH 12/28] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E7=BE=A4=E7=BB=84bug=20fix=20(#168)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/api/group/group.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 887a89594..8c2c67947 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -260,6 +260,10 @@ func CreateGroup(c *gin.Context) { return } req.OwnerUserID = req.OpUserID + if params.OwnerUserID != "" { + req.OwnerUserID = params.OwnerUserID + } + req.OperationID = params.OperationID log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) From a2b65f52f6de91f4df82b3412b4ab837487b470a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Mar 2022 15:45:26 +0800 Subject: [PATCH 13/28] fix group create bug --- internal/api/group/group.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 8c2c67947..d7c8c93f3 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -260,10 +260,7 @@ func CreateGroup(c *gin.Context) { return } req.OwnerUserID = req.OpUserID - if params.OwnerUserID != "" { - req.OwnerUserID = params.OwnerUserID - } - + req.OwnerUserID = params.OwnerUserID req.OperationID = params.OperationID log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) From 5d54d5b7d6b608972114656d3824fc25b79baa49 Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:25:59 +0800 Subject: [PATCH 14/28] Update issue templates --- .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md | 8 ++++---- .github/ISSUE_TEMPLATE/test.md | 10 ++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/test.md diff --git a/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md index 15fe98c2c..e5d8ed6fa 100644 --- a/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md @@ -1,8 +1,8 @@ --- -name: 🐞 Bug +name: "\U0001F41E Bug" about: File a bug/issue -title: '[BUG] <title>' -labels: Bug, Needs Triage +title: "[BUG] <title>" +labels: '' assignees: '' --- @@ -34,4 +34,4 @@ Example: ### screenshot: -<!----> \ No newline at end of file +<!----> diff --git a/.github/ISSUE_TEMPLATE/test.md b/.github/ISSUE_TEMPLATE/test.md new file mode 100644 index 000000000..66bc7e421 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/test.md @@ -0,0 +1,10 @@ +--- +name: test +about: Describe this issue template's purpose here. +title: '' +labels: '' +assignees: '' + +--- + + From ab0ed67f814e24a694529d72508b692a4ae41884 Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:26:25 +0800 Subject: [PATCH 15/28] Update issue templates --- .github/ISSUE_TEMPLATE/test.md | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/test.md diff --git a/.github/ISSUE_TEMPLATE/test.md b/.github/ISSUE_TEMPLATE/test.md deleted file mode 100644 index 66bc7e421..000000000 --- a/.github/ISSUE_TEMPLATE/test.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: test -about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - ---- - - From c1a210313e2920993fea3dbc60a2f616ff229737 Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:28:08 +0800 Subject: [PATCH 16/28] Update issue templates --- .github/ISSUE_TEMPLATE/deployment-issues.md | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/deployment-issues.md diff --git a/.github/ISSUE_TEMPLATE/deployment-issues.md b/.github/ISSUE_TEMPLATE/deployment-issues.md new file mode 100644 index 000000000..57d7cbcb7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/deployment-issues.md @@ -0,0 +1,36 @@ +--- +name: Deployment issues +about: Deployment issues +title: '' +labels: '' +assignees: '' + +--- + +If you are deploying OpenIM for the first time + + + +``` +git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive +``` + +screenshot here + +``` +cd Open-IM-Server/script ; chmod +x *.sh ; ./env_check.sh +``` + +screenshot here + +``` +cd .. ; docker-compose up -d +``` + +screenshot here + +``` +cd script ; ./docker_check_service.sh +``` + +screenshot here From a4788a95af35bb7e9b92ba89ae9fffd49cca4d3b Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Wed, 23 Mar 2022 11:33:35 +0800 Subject: [PATCH 17/28] Update issue templates --- .github/ISSUE_TEMPLATE/update-.md | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/update-.md diff --git a/.github/ISSUE_TEMPLATE/update-.md b/.github/ISSUE_TEMPLATE/update-.md new file mode 100644 index 000000000..ba8da7270 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/update-.md @@ -0,0 +1,38 @@ +--- +name: 'update ' +about: update docker image +title: update docker image +labels: '' +assignees: '' + +--- + +``` +cd Open-IM-Server ; docker-compose down +``` + +screenshot here + +``` +git pull +``` + +screenshot here + +``` +docker-compose pull +``` + +screenshot here + +``` +chmod +x script/*.sh ; docker-compose up -d +``` + +screenshot here + +``` +cd script ; ./docker_check_service.sh +``` + +screenshot here From c1ee2a0adbd4f27d238fbd1334a16509fb5dea2d Mon Sep 17 00:00:00 2001 From: skiffer-git <72860476+skiffer-git@users.noreply.github.com> Date: Fri, 25 Mar 2022 12:48:11 +0800 Subject: [PATCH 18/28] Update docker-compose.yaml --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 78e5c1ac2..c67203773 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -94,7 +94,7 @@ services: command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new open_im_server: - image: openim/open_im_server:v2.0.4 + image: openim/open_im_server:v2.0.5 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From afc32b1cfa11720861bc0b11146ac0cc796cc488 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 28 Mar 2022 19:27:05 +0800 Subject: [PATCH 19/28] mute group --- cmd/Open-IM-SDK-Core | 2 +- pkg/common/constant/constant.go | 1 + pkg/proto/group/group.pb.go | 900 +++++++++++++++++++++++++------- pkg/proto/group/group.proto | 59 ++- pkg/proto/sdk_ws/ws.pb.go | 455 ++++++++-------- pkg/proto/sdk_ws/ws.proto | 1 + 6 files changed, 1014 insertions(+), 404 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index a06dfeeda..a6e91454f 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit a06dfeeda56815ac9a9bb401dd30ab12b374d658 +Subproject commit a6e91454f2cd72d7229f3b2d884d812d5fde1694 diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 0def0881b..58bad384a 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -136,6 +136,7 @@ const ( GroupOk = 0 GroupBanChat = 1 GroupStatusDismissed = 2 + GroupStatusMuted = 3 GroupBaned = 3 GroupBanPrivateChat = 4 diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 0332aa1e9..2f8176fad 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -36,7 +36,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_48ef48bf92e641e9, []int{0} + return fileDescriptor_group_3c77315b028a1402, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,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_48ef48bf92e641e9, []int{1} + return fileDescriptor_group_3c77315b028a1402, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -131,7 +131,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_48ef48bf92e641e9, []int{2} + return fileDescriptor_group_3c77315b028a1402, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -199,7 +199,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_48ef48bf92e641e9, []int{3} + return fileDescriptor_group_3c77315b028a1402, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -253,7 +253,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_48ef48bf92e641e9, []int{4} + return fileDescriptor_group_3c77315b028a1402, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -307,7 +307,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_48ef48bf92e641e9, []int{5} + return fileDescriptor_group_3c77315b028a1402, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -361,7 +361,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_48ef48bf92e641e9, []int{6} + return fileDescriptor_group_3c77315b028a1402, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -413,7 +413,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_48ef48bf92e641e9, []int{7} + return fileDescriptor_group_3c77315b028a1402, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -453,7 +453,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_48ef48bf92e641e9, []int{8} + return fileDescriptor_group_3c77315b028a1402, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -507,7 +507,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_48ef48bf92e641e9, []int{9} + return fileDescriptor_group_3c77315b028a1402, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -561,7 +561,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_48ef48bf92e641e9, []int{10} + return fileDescriptor_group_3c77315b028a1402, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -614,7 +614,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_48ef48bf92e641e9, []int{11} + return fileDescriptor_group_3c77315b028a1402, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -663,7 +663,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_48ef48bf92e641e9, []int{12} + return fileDescriptor_group_3c77315b028a1402, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -729,7 +729,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_48ef48bf92e641e9, []int{13} + return fileDescriptor_group_3c77315b028a1402, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -770,7 +770,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_48ef48bf92e641e9, []int{14} + return fileDescriptor_group_3c77315b028a1402, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -829,7 +829,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_48ef48bf92e641e9, []int{15} + return fileDescriptor_group_3c77315b028a1402, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -872,7 +872,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_48ef48bf92e641e9, []int{16} + return fileDescriptor_group_3c77315b028a1402, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -945,7 +945,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_48ef48bf92e641e9, []int{17} + return fileDescriptor_group_3c77315b028a1402, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -985,7 +985,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_48ef48bf92e641e9, []int{18} + return fileDescriptor_group_3c77315b028a1402, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1037,7 +1037,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_48ef48bf92e641e9, []int{19} + return fileDescriptor_group_3c77315b028a1402, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1079,7 +1079,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_48ef48bf92e641e9, []int{20} + return fileDescriptor_group_3c77315b028a1402, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1148,7 +1148,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_48ef48bf92e641e9, []int{21} + return fileDescriptor_group_3c77315b028a1402, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1210,7 +1210,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_48ef48bf92e641e9, []int{22} + return fileDescriptor_group_3c77315b028a1402, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1271,7 +1271,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_48ef48bf92e641e9, []int{23} + return fileDescriptor_group_3c77315b028a1402, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1327,7 +1327,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_48ef48bf92e641e9, []int{24} + return fileDescriptor_group_3c77315b028a1402, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1394,7 +1394,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_48ef48bf92e641e9, []int{25} + return fileDescriptor_group_3c77315b028a1402, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1441,7 +1441,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_48ef48bf92e641e9, []int{26} + return fileDescriptor_group_3c77315b028a1402, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1495,7 +1495,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_48ef48bf92e641e9, []int{27} + return fileDescriptor_group_3c77315b028a1402, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1549,7 +1549,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_48ef48bf92e641e9, []int{28} + return fileDescriptor_group_3c77315b028a1402, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1605,7 +1605,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_48ef48bf92e641e9, []int{29} + return fileDescriptor_group_3c77315b028a1402, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1673,7 +1673,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_48ef48bf92e641e9, []int{30} + return fileDescriptor_group_3c77315b028a1402, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1727,7 +1727,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_48ef48bf92e641e9, []int{31} + return fileDescriptor_group_3c77315b028a1402, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1781,7 +1781,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_48ef48bf92e641e9, []int{32} + return fileDescriptor_group_3c77315b028a1402, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1835,7 +1835,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_48ef48bf92e641e9, []int{33} + return fileDescriptor_group_3c77315b028a1402, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1889,7 +1889,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_48ef48bf92e641e9, []int{34} + return fileDescriptor_group_3c77315b028a1402, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1943,7 +1943,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_48ef48bf92e641e9, []int{35} + return fileDescriptor_group_3c77315b028a1402, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -1996,7 +1996,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_48ef48bf92e641e9, []int{36} + return fileDescriptor_group_3c77315b028a1402, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2043,7 +2043,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_48ef48bf92e641e9, []int{37} + return fileDescriptor_group_3c77315b028a1402, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2096,7 +2096,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_48ef48bf92e641e9, []int{38} + return fileDescriptor_group_3c77315b028a1402, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2143,7 +2143,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_48ef48bf92e641e9, []int{39} + return fileDescriptor_group_3c77315b028a1402, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2194,7 +2194,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_48ef48bf92e641e9, []int{40} + return fileDescriptor_group_3c77315b028a1402, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2228,7 +2228,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_48ef48bf92e641e9, []int{41} + return fileDescriptor_group_3c77315b028a1402, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2286,7 +2286,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_48ef48bf92e641e9, []int{42} + return fileDescriptor_group_3c77315b028a1402, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2318,7 +2318,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_48ef48bf92e641e9, []int{43} + return fileDescriptor_group_3c77315b028a1402, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2362,7 +2362,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_48ef48bf92e641e9, []int{44} + return fileDescriptor_group_3c77315b028a1402, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2394,7 +2394,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_48ef48bf92e641e9, []int{45} + return fileDescriptor_group_3c77315b028a1402, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2439,7 +2439,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_48ef48bf92e641e9, []int{46} + return fileDescriptor_group_3c77315b028a1402, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2480,7 +2480,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_48ef48bf92e641e9, []int{47} + return fileDescriptor_group_3c77315b028a1402, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2541,7 +2541,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_48ef48bf92e641e9, []int{48} + return fileDescriptor_group_3c77315b028a1402, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2596,7 +2596,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_48ef48bf92e641e9, []int{49} + return fileDescriptor_group_3c77315b028a1402, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2656,7 +2656,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_48ef48bf92e641e9, []int{50} + return fileDescriptor_group_3c77315b028a1402, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2704,7 +2704,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_48ef48bf92e641e9, []int{51} + return fileDescriptor_group_3c77315b028a1402, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2764,7 +2764,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_48ef48bf92e641e9, []int{52} + return fileDescriptor_group_3c77315b028a1402, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2811,7 +2811,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_48ef48bf92e641e9, []int{53} + return fileDescriptor_group_3c77315b028a1402, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2863,7 +2863,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_48ef48bf92e641e9, []int{54} + return fileDescriptor_group_3c77315b028a1402, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2890,6 +2890,398 @@ func (m *DismissGroupResp) GetCommonResp() *CommonResp { return nil } +type MuteGroupMemberReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_3c77315b028a1402, []int{55} +} +func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) +} +func (m *MuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *MuteGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupMemberReq.Merge(dst, src) +} +func (m *MuteGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_MuteGroupMemberReq.Size(m) +} +func (m *MuteGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupMemberReq proto.InternalMessageInfo + +func (m *MuteGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *MuteGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *MuteGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *MuteGroupMemberReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *MuteGroupMemberReq) GetMutedSeconds() uint32 { + if m != nil { + return m.MutedSeconds + } + return 0 +} + +type MuteGroupMemberResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_3c77315b028a1402, []int{56} +} +func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) +} +func (m *MuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *MuteGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupMemberResp.Merge(dst, src) +} +func (m *MuteGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_MuteGroupMemberResp.Size(m) +} +func (m *MuteGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupMemberResp proto.InternalMessageInfo + +func (m *MuteGroupMemberResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CancelMuteGroupMemberReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberReq{} } +func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupMemberReq) ProtoMessage() {} +func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{57} +} +func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) +} +func (m *CancelMuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupMemberReq.Merge(dst, src) +} +func (m *CancelMuteGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupMemberReq.Size(m) +} +func (m *CancelMuteGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupMemberReq proto.InternalMessageInfo + +func (m *CancelMuteGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +type CancelMuteGroupMemberResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMemberResp{} } +func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupMemberResp) ProtoMessage() {} +func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{58} +} +func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) +} +func (m *CancelMuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupMemberResp.Merge(dst, src) +} +func (m *CancelMuteGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupMemberResp.Size(m) +} +func (m *CancelMuteGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupMemberResp proto.InternalMessageInfo + +func (m *CancelMuteGroupMemberResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type MuteGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_3c77315b028a1402, []int{59} +} +func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) +} +func (m *MuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupReq.Marshal(b, m, deterministic) +} +func (dst *MuteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupReq.Merge(dst, src) +} +func (m *MuteGroupReq) XXX_Size() int { + return xxx_messageInfo_MuteGroupReq.Size(m) +} +func (m *MuteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupReq proto.InternalMessageInfo + +func (m *MuteGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *MuteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *MuteGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type MuteGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_3c77315b028a1402, []int{60} +} +func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) +} +func (m *MuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupResp.Marshal(b, m, deterministic) +} +func (dst *MuteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupResp.Merge(dst, src) +} +func (m *MuteGroupResp) XXX_Size() int { + return xxx_messageInfo_MuteGroupResp.Size(m) +} +func (m *MuteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupResp proto.InternalMessageInfo + +func (m *MuteGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CancelMuteGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_3c77315b028a1402, []int{61} +} +func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) +} +func (m *CancelMuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupReq.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupReq.Merge(dst, src) +} +func (m *CancelMuteGroupReq) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupReq.Size(m) +} +func (m *CancelMuteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupReq proto.InternalMessageInfo + +func (m *CancelMuteGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CancelMuteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CancelMuteGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type CancelMuteGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_3c77315b028a1402, []int{62} +} +func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) +} +func (m *CancelMuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupResp.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupResp.Merge(dst, src) +} +func (m *CancelMuteGroupResp) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupResp.Size(m) +} +func (m *CancelMuteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupResp proto.InternalMessageInfo + +func (m *CancelMuteGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + func init() { proto.RegisterType((*CommonResp)(nil), "group.CommonResp") proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") @@ -2946,6 +3338,14 @@ func init() { proto.RegisterType((*AddGroupMembersCMSResp)(nil), "group.AddGroupMembersCMSResp") proto.RegisterType((*DismissGroupReq)(nil), "group.DismissGroupReq") proto.RegisterType((*DismissGroupResp)(nil), "group.DismissGroupResp") + proto.RegisterType((*MuteGroupMemberReq)(nil), "group.MuteGroupMemberReq") + proto.RegisterType((*MuteGroupMemberResp)(nil), "group.MuteGroupMemberResp") + proto.RegisterType((*CancelMuteGroupMemberReq)(nil), "group.CancelMuteGroupMemberReq") + proto.RegisterType((*CancelMuteGroupMemberResp)(nil), "group.CancelMuteGroupMemberResp") + proto.RegisterType((*MuteGroupReq)(nil), "group.MuteGroupReq") + proto.RegisterType((*MuteGroupResp)(nil), "group.MuteGroupResp") + proto.RegisterType((*CancelMuteGroupReq)(nil), "group.CancelMuteGroupReq") + proto.RegisterType((*CancelMuteGroupResp)(nil), "group.CancelMuteGroupResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -2984,6 +3384,10 @@ type GroupClient interface { RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error) + MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) + CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) + MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) + CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) } type groupClient struct { @@ -3219,6 +3623,42 @@ func (c *groupClient) DismissGroup(ctx context.Context, in *DismissGroupReq, opt return out, nil } +func (c *groupClient) MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) { + out := new(MuteGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/MuteGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) { + out := new(CancelMuteGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/CancelMuteGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) { + out := new(MuteGroupResp) + err := grpc.Invoke(ctx, "/group.group/MuteGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) { + out := new(CancelMuteGroupResp) + err := grpc.Invoke(ctx, "/group.group/CancelMuteGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for Group service type GroupServer interface { @@ -3247,6 +3687,10 @@ type GroupServer interface { RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) DismissGroup(context.Context, *DismissGroupReq) (*DismissGroupResp, error) + MuteGroupMember(context.Context, *MuteGroupMemberReq) (*MuteGroupMemberResp, error) + CancelMuteGroupMember(context.Context, *CancelMuteGroupMemberReq) (*CancelMuteGroupMemberResp, error) + MuteGroup(context.Context, *MuteGroupReq) (*MuteGroupResp, error) + CancelMuteGroup(context.Context, *CancelMuteGroupReq) (*CancelMuteGroupResp, error) } func RegisterGroupServer(s *grpc.Server, srv GroupServer) { @@ -3703,6 +4147,78 @@ func _Group_DismissGroup_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Group_MuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MuteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).MuteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/MuteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).MuteGroupMember(ctx, req.(*MuteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_CancelMuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelMuteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CancelMuteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CancelMuteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CancelMuteGroupMember(ctx, req.(*CancelMuteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_MuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MuteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).MuteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/MuteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).MuteGroup(ctx, req.(*MuteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_CancelMuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelMuteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CancelMuteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CancelMuteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CancelMuteGroup(ctx, req.(*CancelMuteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -3807,133 +4323,159 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "DismissGroup", Handler: _Group_DismissGroup_Handler, }, + { + MethodName: "MuteGroupMember", + Handler: _Group_MuteGroupMember_Handler, + }, + { + MethodName: "CancelMuteGroupMember", + Handler: _Group_CancelMuteGroupMember_Handler, + }, + { + MethodName: "MuteGroup", + Handler: _Group_MuteGroup_Handler, + }, + { + MethodName: "CancelMuteGroup", + Handler: _Group_CancelMuteGroup_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_48ef48bf92e641e9) } - -var fileDescriptor_group_48ef48bf92e641e9 = []byte{ - // 1913 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xca, - 0x11, 0x07, 0x2d, 0xcb, 0xb6, 0xc6, 0x7f, 0x64, 0xaf, 0x23, 0x5b, 0xe1, 0xd3, 0xf3, 0xf3, 0xdb, - 0x97, 0x3e, 0x18, 0xfd, 0x63, 0xa3, 0x0e, 0x90, 0x43, 0x53, 0x34, 0xf5, 0xdf, 0x44, 0x49, 0x64, - 0xd7, 0x74, 0x7a, 0xc9, 0xc5, 0x55, 0xcc, 0xb5, 0xc0, 0x5a, 0x12, 0x69, 0x2e, 0x65, 0xb7, 0xbd, - 0x04, 0xbd, 0x04, 0x08, 0xda, 0x43, 0x8b, 0x02, 0x3d, 0x15, 0x68, 0x73, 0xef, 0xa1, 0x87, 0xf6, - 0x5c, 0xf4, 0x63, 0xf4, 0x4b, 0xb4, 0x5f, 0xa1, 0xe0, 0xee, 0x72, 0xb9, 0x24, 0x97, 0xb4, 0x2c, - 0xa5, 0x2f, 0x17, 0x01, 0x33, 0x3b, 0xbb, 0xf3, 0x9b, 0xd9, 0x9d, 0xd9, 0xd9, 0xa1, 0x60, 0xa9, - 0xe3, 0xbb, 0x03, 0x6f, 0x8b, 0xfd, 0x6e, 0x7a, 0xbe, 0x1b, 0xb8, 0xa8, 0xcc, 0x08, 0xf3, 0xcb, - 0x63, 0x8f, 0xf4, 0xcf, 0x9a, 0xad, 0x2d, 0xef, 0xb2, 0xb3, 0xc5, 0x46, 0xb6, 0xa8, 0x7d, 0x79, - 0x76, 0x43, 0xb7, 0x6e, 0x28, 0x97, 0xc4, 0x3f, 0x02, 0xd8, 0x73, 0x7b, 0x3d, 0xb7, 0x6f, 0x11, - 0xea, 0xa1, 0x3a, 0x4c, 0x1f, 0xf8, 0xfe, 0x9e, 0x6b, 0x93, 0xba, 0xb1, 0x6e, 0x6c, 0x94, 0xad, - 0x88, 0x44, 0x2b, 0x30, 0x75, 0xe0, 0xfb, 0x2d, 0xda, 0xa9, 0x4f, 0xac, 0x1b, 0x1b, 0x15, 0x4b, - 0x50, 0xf8, 0x39, 0xa0, 0xa7, 0xa1, 0xae, 0x1d, 0xdb, 0x6e, 0x91, 0xde, 0x1b, 0xe2, 0x37, 0xfb, - 0x17, 0x6e, 0x28, 0xfd, 0x53, 0x4a, 0xfc, 0xe6, 0x3e, 0x5b, 0xa6, 0x62, 0x09, 0x0a, 0x35, 0xa0, - 0x62, 0xb9, 0x5d, 0xf2, 0x92, 0x5c, 0x93, 0x2e, 0x5b, 0xa8, 0x6c, 0xc5, 0x0c, 0xfc, 0x5f, 0x03, - 0x16, 0xf6, 0x7c, 0xd2, 0x0e, 0x08, 0x5b, 0xd2, 0x22, 0x57, 0x68, 0x07, 0x16, 0x9a, 0x7d, 0x27, - 0xe0, 0x4b, 0xbf, 0x74, 0x68, 0x50, 0x37, 0xd6, 0x4b, 0x1b, 0xb3, 0xdb, 0xf7, 0x37, 0xb9, 0xb9, - 0x59, 0xdd, 0x56, 0x6a, 0x02, 0xfa, 0x01, 0x54, 0x98, 0x54, 0x38, 0xc8, 0x74, 0xce, 0x6e, 0x37, - 0x36, 0x29, 0xf1, 0xaf, 0x89, 0x7f, 0xd6, 0xf6, 0x9c, 0x33, 0xaf, 0xed, 0xb7, 0x7b, 0x74, 0x53, - 0xca, 0x58, 0xb1, 0x38, 0x5a, 0x87, 0xd9, 0x63, 0x8f, 0xf8, 0xed, 0xc0, 0x71, 0xfb, 0xcd, 0xfd, - 0x7a, 0x89, 0x19, 0xa3, 0xb2, 0x90, 0x09, 0x33, 0xc7, 0x9e, 0xb0, 0x75, 0x92, 0x0d, 0x4b, 0x9a, - 0xcd, 0xbe, 0xe9, 0x13, 0x5f, 0x0c, 0x97, 0xc5, 0xec, 0x98, 0x85, 0xdf, 0x42, 0x35, 0x61, 0xf0, - 0x28, 0x5b, 0x90, 0x34, 0xb0, 0x74, 0x27, 0x03, 0xb1, 0x0f, 0x8b, 0x4f, 0x49, 0xc0, 0x68, 0xca, - 0xc6, 0xc8, 0x55, 0x08, 0x9b, 0x0b, 0xec, 0x4b, 0x87, 0x57, 0x2c, 0x95, 0x95, 0x76, 0xcb, 0x44, - 0xb1, 0x5b, 0x4a, 0x49, 0xb7, 0xe0, 0xf7, 0x06, 0x2c, 0xa5, 0x94, 0x8e, 0x64, 0xf7, 0x2e, 0xcc, - 0x4b, 0x43, 0x18, 0xd2, 0x12, 0x3b, 0x1a, 0xc5, 0xb6, 0x27, 0xa7, 0xe0, 0xdf, 0x18, 0x50, 0x3d, - 0x15, 0x58, 0x22, 0xfb, 0x13, 0xfe, 0x34, 0xee, 0x76, 0x60, 0x54, 0xbb, 0x27, 0x34, 0xc7, 0xa1, - 0xf0, 0x30, 0xe1, 0x03, 0x58, 0x4c, 0x82, 0xa1, 0x1e, 0xfa, 0xbe, 0x1a, 0xa0, 0x02, 0xce, 0x92, - 0x38, 0xfd, 0xf1, 0x80, 0xa5, 0x08, 0xe1, 0x5f, 0x81, 0x19, 0xf9, 0x77, 0xc7, 0xf3, 0xba, 0xce, - 0x39, 0x5b, 0x3f, 0xb4, 0x37, 0x34, 0x4f, 0x85, 0x68, 0x14, 0x43, 0xd4, 0x6c, 0xec, 0x1a, 0xc0, - 0xa1, 0xef, 0xf6, 0x12, 0x5b, 0xab, 0x70, 0xf0, 0x9f, 0x0c, 0xf8, 0x2c, 0x57, 0xf9, 0x48, 0xdb, - 0xfc, 0x02, 0x16, 0xa3, 0x74, 0x30, 0x20, 0x34, 0x50, 0x76, 0xfa, 0x8b, 0xbc, 0x5d, 0x11, 0xa2, - 0x56, 0x66, 0x22, 0x0e, 0xa0, 0xf1, 0x94, 0x04, 0x21, 0x56, 0x8b, 0x5c, 0x69, 0x9c, 0x93, 0x97, - 0xb8, 0xc6, 0xdb, 0xd7, 0x3f, 0x1b, 0xf0, 0x79, 0x81, 0xda, 0x91, 0x76, 0x59, 0xeb, 0x97, 0x89, - 0x51, 0xfd, 0xf2, 0x4f, 0x03, 0x6a, 0xaf, 0xfc, 0x76, 0x9f, 0x5e, 0x10, 0x9f, 0x0d, 0xb2, 0x2c, - 0x15, 0x7a, 0xa4, 0x0e, 0xd3, 0x22, 0xf4, 0x85, 0x4b, 0x22, 0x12, 0x7d, 0x0d, 0x0b, 0xc7, 0x5d, - 0x5b, 0xcd, 0x70, 0xdc, 0x33, 0x29, 0x6e, 0x28, 0x77, 0x44, 0x6e, 0x54, 0x39, 0xee, 0xa2, 0x14, - 0x37, 0xed, 0xc7, 0xc9, 0xe2, 0xac, 0x52, 0x4e, 0x65, 0x95, 0x17, 0xb0, 0xa2, 0x33, 0x60, 0xb4, - 0x08, 0x7a, 0x67, 0xc0, 0xdc, 0x73, 0xd7, 0xe9, 0xcb, 0x7b, 0x28, 0xdf, 0x0b, 0x6b, 0x00, 0x16, - 0xb9, 0x6a, 0x11, 0x4a, 0xdb, 0x1d, 0x22, 0x3c, 0xa0, 0x70, 0x8a, 0x32, 0xe1, 0xed, 0x16, 0xe3, - 0x5d, 0x98, 0x57, 0x70, 0x8c, 0x66, 0xcc, 0xbf, 0xc3, 0x90, 0x4c, 0xc5, 0x63, 0x38, 0xe0, 0xf6, - 0x29, 0x11, 0xf9, 0x5e, 0x45, 0x61, 0x14, 0xfb, 0x3d, 0x7d, 0xfa, 0x15, 0xcf, 0x94, 0x32, 0x9e, - 0x51, 0x52, 0xc5, 0x64, 0x3a, 0x55, 0x84, 0xe3, 0xcf, 0xda, 0x7d, 0xbb, 0x4b, 0xec, 0x30, 0xe8, - 0xf9, 0x7e, 0x2a, 0x1c, 0x84, 0x61, 0x8e, 0x53, 0x16, 0xa1, 0x83, 0x6e, 0x50, 0x9f, 0x62, 0xf9, - 0x22, 0xc1, 0xc3, 0x27, 0xd0, 0xc8, 0x37, 0x6d, 0x34, 0x77, 0x5d, 0xc0, 0xdc, 0xc9, 0xc0, 0x09, - 0x86, 0xd8, 0xfa, 0xf1, 0xae, 0xc1, 0x5d, 0x98, 0x57, 0xf4, 0x8c, 0x86, 0xf5, 0x83, 0x01, 0xb5, - 0x28, 0xdb, 0xc6, 0x25, 0x4f, 0x31, 0xea, 0xb1, 0x52, 0x59, 0x98, 0x20, 0x0f, 0x9d, 0x6e, 0x40, - 0x7c, 0xb6, 0xa1, 0x65, 0x4b, 0x50, 0xa1, 0xbe, 0x23, 0xf2, 0x8b, 0xe0, 0x94, 0x5c, 0xb1, 0x9d, - 0x2c, 0x5b, 0x11, 0x89, 0xff, 0x6a, 0xc0, 0x8a, 0x0e, 0xe3, 0x48, 0x97, 0xc1, 0x21, 0x40, 0x2f, - 0xae, 0x05, 0xf9, 0x35, 0xf0, 0x75, 0x5e, 0xba, 0xe3, 0xda, 0x0e, 0x07, 0xdd, 0x2e, 0xbb, 0x4d, - 0x95, 0x99, 0xa1, 0xe6, 0xbe, 0x80, 0xcb, 0xed, 0x88, 0x48, 0xfc, 0xbb, 0x0c, 0x5c, 0x59, 0x18, - 0x15, 0x26, 0x01, 0x05, 0xd6, 0x04, 0xab, 0x98, 0x54, 0x75, 0xe3, 0x25, 0x81, 0x3f, 0x18, 0xb0, - 0xaa, 0x85, 0xf4, 0x29, 0x5d, 0x88, 0xff, 0x66, 0x00, 0x7a, 0xe1, 0x9c, 0x5f, 0x2a, 0x72, 0xc5, - 0x4e, 0xfa, 0x36, 0x2c, 0x86, 0xf2, 0xc4, 0xe6, 0x86, 0x2b, 0xae, 0xca, 0xf0, 0x43, 0xf0, 0x16, - 0x69, 0x53, 0xb7, 0x2f, 0xdc, 0x25, 0xa8, 0xb4, 0xb3, 0xca, 0xc5, 0x21, 0x37, 0x95, 0x0a, 0xb9, - 0xc7, 0x50, 0x69, 0xda, 0xdb, 0x3c, 0x75, 0xe4, 0x5e, 0xf5, 0x4c, 0x35, 0x4b, 0x38, 0xfc, 0x81, - 0x22, 0x28, 0xfc, 0x16, 0x96, 0x33, 0xe6, 0x8e, 0xb4, 0x01, 0x8f, 0x60, 0x5e, 0xa2, 0x50, 0xf6, - 0x60, 0x51, 0x84, 0xba, 0x1c, 0xb3, 0x92, 0x62, 0x78, 0xc0, 0x62, 0x3d, 0xbc, 0x0e, 0x88, 0xcd, - 0x50, 0x44, 0xb1, 0x9e, 0x4c, 0xb4, 0x46, 0x26, 0xd1, 0xae, 0xc3, 0xac, 0x9b, 0xcd, 0x53, 0xee, - 0x90, 0x79, 0xea, 0x1d, 0x0f, 0x88, 0x8c, 0xde, 0xb1, 0xde, 0x2a, 0x43, 0xd7, 0xeb, 0xb1, 0x38, - 0xfe, 0xbb, 0x01, 0xf7, 0x9a, 0xfd, 0x6b, 0x27, 0x20, 0x21, 0xb2, 0x57, 0xae, 0xcc, 0xd0, 0xb7, - 0xe7, 0xe1, 0xfc, 0x4b, 0x2a, 0x3e, 0x68, 0x93, 0x89, 0x83, 0xf6, 0x5d, 0x58, 0xe2, 0xba, 0xd4, - 0xd3, 0x5a, 0x66, 0xa7, 0x35, 0x3b, 0x50, 0x78, 0xe8, 0x7e, 0x6d, 0x40, 0x4d, 0x03, 0xfb, 0x1b, - 0x3d, 0x3a, 0x7d, 0xb8, 0x27, 0x8b, 0xf2, 0x6e, 0x77, 0x98, 0x60, 0x1d, 0xaf, 0xe0, 0xfd, 0xbd, - 0x72, 0x2f, 0x29, 0x0a, 0x3f, 0x69, 0xbe, 0xfa, 0xa3, 0x01, 0x33, 0x7b, 0xad, 0x53, 0x26, 0x36, - 0xd6, 0x1b, 0x6f, 0x03, 0xaa, 0x5c, 0x57, 0x9b, 0x06, 0xc4, 0x3f, 0x6a, 0xf7, 0xa2, 0xb2, 0x2f, - 0xcd, 0x46, 0x0f, 0xc4, 0x0b, 0x95, 0xb3, 0x9a, 0xb6, 0x70, 0x55, 0x92, 0x19, 0xa6, 0xf7, 0xd9, - 0xc8, 0x59, 0xe1, 0xa6, 0x34, 0x04, 0x36, 0xb6, 0x32, 0xdf, 0x96, 0x98, 0x81, 0xf6, 0x01, 0x7e, - 0xd2, 0xee, 0x38, 0x7d, 0xe6, 0x6a, 0xd1, 0xcf, 0x78, 0xa0, 0x81, 0x2e, 0xaa, 0xfb, 0x58, 0xd6, - 0x52, 0xe6, 0x0d, 0xb1, 0x85, 0x1f, 0x0c, 0x98, 0x8b, 0x51, 0x51, 0x0f, 0x7d, 0x0f, 0x2a, 0x91, - 0xfb, 0xa8, 0xe8, 0xc2, 0x54, 0xa3, 0xea, 0x44, 0xf0, 0xad, 0x58, 0xe2, 0x23, 0xe1, 0x94, 0xbe, - 0x18, 0xf4, 0x28, 0x43, 0x59, 0xb6, 0x62, 0x06, 0xbe, 0x8e, 0x21, 0xd2, 0xd0, 0x73, 0x49, 0x9d, - 0xc6, 0xc7, 0xf1, 0x4d, 0x36, 0x9d, 0xe0, 0xbf, 0x18, 0x30, 0xaf, 0x28, 0xfe, 0x54, 0xce, 0x31, - 0x61, 0x26, 0xf2, 0x85, 0xf0, 0x8d, 0xa4, 0xf1, 0x71, 0xdc, 0x63, 0xd1, 0x84, 0xbb, 0x9d, 0x0c, - 0x77, 0x7b, 0x08, 0x9b, 0x2f, 0xa1, 0xc6, 0x49, 0xde, 0xab, 0x3a, 0x0d, 0xda, 0xc1, 0x80, 0x16, - 0x2f, 0xba, 0x02, 0x53, 0x5c, 0x2c, 0xba, 0x49, 0x39, 0x35, 0xc4, 0xe1, 0xab, 0xc3, 0x8a, 0x4e, - 0x19, 0x7f, 0x99, 0x21, 0x31, 0xc4, 0x9e, 0xd3, 0x6e, 0x97, 0xdc, 0x0a, 0x82, 0xa5, 0x2d, 0x3b, - 0x4a, 0x2b, 0x9c, 0x4a, 0xb6, 0x22, 0x4b, 0xa9, 0x56, 0xe4, 0x10, 0x45, 0x59, 0x0d, 0x96, 0x33, - 0x38, 0xa8, 0x87, 0x5f, 0xc2, 0xc2, 0x3e, 0xe9, 0x12, 0xa5, 0x85, 0x39, 0x8e, 0xd3, 0x97, 0xa0, - 0x9a, 0x58, 0x8d, 0x7a, 0xb8, 0x05, 0xd5, 0x68, 0x63, 0x77, 0x7f, 0xd9, 0xb4, 0xc7, 0xd5, 0xf0, - 0x24, 0x6e, 0x00, 0xf2, 0xe5, 0xa8, 0x87, 0xbe, 0x13, 0x27, 0x4a, 0x11, 0x44, 0x99, 0xb3, 0x2c, - 0x05, 0xf0, 0x3f, 0x32, 0x4f, 0x10, 0xba, 0xd7, 0x3a, 0x2d, 0x86, 0x65, 0xc2, 0x4c, 0xe8, 0x34, - 0x25, 0x75, 0x4a, 0x3a, 0x15, 0x1a, 0xa5, 0x8f, 0x13, 0xc3, 0x9a, 0xfd, 0xfb, 0x57, 0xb6, 0xce, - 0x67, 0xb8, 0xa9, 0x87, 0x7e, 0x0c, 0xd3, 0xfc, 0xde, 0x88, 0x42, 0x79, 0xd8, 0xeb, 0x26, 0x9a, - 0x86, 0x0e, 0x34, 0xf1, 0xfd, 0x2d, 0xad, 0x11, 0xfc, 0xad, 0x9a, 0x63, 0xc5, 0x1a, 0x00, 0xd7, - 0xa0, 0xa4, 0x3f, 0x85, 0x83, 0x7f, 0x6b, 0x40, 0xdd, 0x22, 0x3d, 0xf7, 0x9a, 0xdc, 0xc9, 0xfd, - 0x75, 0x98, 0xe6, 0x41, 0x40, 0x45, 0xfd, 0x1d, 0x91, 0x77, 0xea, 0x77, 0xdb, 0xa9, 0x7e, 0xb7, - 0x8d, 0x5b, 0x70, 0x3f, 0x07, 0x0d, 0xbf, 0xf8, 0xe9, 0xe0, 0xfc, 0x9c, 0x50, 0x2a, 0x3a, 0xca, - 0x11, 0x19, 0x46, 0xe8, 0x45, 0xdb, 0xe9, 0x12, 0x5b, 0xa0, 0x11, 0x14, 0x7e, 0x6f, 0x40, 0x6d, - 0xc7, 0xb6, 0xff, 0x1f, 0xa6, 0xd9, 0x59, 0xd3, 0xec, 0x42, 0xd3, 0x9e, 0xc3, 0x8a, 0x0e, 0xca, - 0x48, 0x76, 0x39, 0x50, 0xdd, 0x77, 0x68, 0xcf, 0xa1, 0x54, 0xe6, 0x08, 0x13, 0x66, 0xdc, 0x54, - 0x4f, 0xd6, 0xf5, 0x86, 0xae, 0xde, 0xeb, 0x30, 0xdd, 0x49, 0x56, 0xb7, 0x82, 0xc4, 0x07, 0xb0, - 0x98, 0x54, 0xc5, 0xdb, 0x0c, 0xe7, 0xc3, 0xb4, 0x19, 0x62, 0xa1, 0xed, 0xff, 0x2c, 0x00, 0xff, - 0xa2, 0x84, 0x7e, 0x08, 0xb3, 0xe7, 0xf1, 0x07, 0x0b, 0x54, 0x8b, 0xe6, 0x25, 0xbe, 0xda, 0x98, - 0x2b, 0x3a, 0x36, 0xf5, 0xd0, 0x23, 0xa8, 0xfc, 0x3c, 0xea, 0x66, 0xa1, 0x65, 0x21, 0xa4, 0xf6, - 0xd9, 0xcc, 0x7b, 0x59, 0x26, 0x9f, 0x77, 0x15, 0xb5, 0x4a, 0xe4, 0x3c, 0xb5, 0x49, 0x23, 0xe7, - 0x25, 0x3b, 0x2a, 0xbb, 0x30, 0xdf, 0x51, 0x3f, 0x34, 0xa0, 0xd5, 0xe8, 0xb3, 0x51, 0xea, 0x9b, - 0x87, 0x59, 0xd7, 0x0f, 0x50, 0x0f, 0x3d, 0x81, 0x39, 0xaa, 0xf4, 0xe4, 0x51, 0x64, 0x5b, 0xea, - 0xab, 0x81, 0xb9, 0xaa, 0xe5, 0x53, 0x0f, 0xfd, 0x0c, 0x56, 0x3b, 0xfa, 0x86, 0x38, 0xfa, 0x32, - 0xa5, 0x35, 0xdb, 0x90, 0x36, 0xf1, 0x6d, 0x22, 0xd4, 0x43, 0x17, 0x70, 0xbf, 0x93, 0xd7, 0x5d, - 0x46, 0x5f, 0xc5, 0x0b, 0xe4, 0xb6, 0xbd, 0xcd, 0x07, 0xb7, 0x0b, 0x51, 0x0f, 0x9d, 0x00, 0x0a, - 0x32, 0x2d, 0x56, 0xd4, 0x10, 0x73, 0xb5, 0xed, 0x63, 0xf3, 0xf3, 0x82, 0x51, 0xea, 0xa1, 0x73, - 0xa8, 0x77, 0x72, 0xfa, 0x77, 0x08, 0x27, 0xbe, 0xf1, 0x69, 0x7b, 0x97, 0xe6, 0x57, 0xb7, 0xca, - 0x70, 0xdc, 0x9d, 0x4c, 0x03, 0x4a, 0xe2, 0xd6, 0xf6, 0xcf, 0x24, 0xee, 0x9c, 0xce, 0xd5, 0x2b, - 0x58, 0xee, 0x64, 0x3b, 0x32, 0x48, 0x3f, 0x4b, 0x9e, 0xb2, 0xb5, 0xa2, 0x61, 0xea, 0xa1, 0x67, - 0x50, 0xbd, 0x4c, 0xb6, 0x18, 0x50, 0xf4, 0xa1, 0x33, 0xdb, 0x69, 0x31, 0xcd, 0xbc, 0x21, 0x69, - 0x72, 0xea, 0xcd, 0xae, 0x9a, 0x9c, 0x6d, 0x23, 0xa8, 0x26, 0xeb, 0x1e, 0xfb, 0x47, 0xb0, 0xe4, - 0xa4, 0x9f, 0xb1, 0xe8, 0xb3, 0xe8, 0xe5, 0xa9, 0x79, 0x97, 0x9b, 0x8d, 0xfc, 0x41, 0xbe, 0x5e, - 0x27, 0xfd, 0x44, 0x94, 0xeb, 0xe9, 0x5e, 0xab, 0x66, 0x23, 0x7f, 0x90, 0x07, 0xaa, 0x5a, 0xc9, - 0xc8, 0x40, 0x4d, 0x55, 0x4b, 0xe6, 0xaa, 0x96, 0x4f, 0x3d, 0xf4, 0x10, 0x66, 0x22, 0x1e, 0x42, - 0x29, 0xa1, 0x70, 0xe2, 0x72, 0x86, 0xc7, 0x53, 0x93, 0xcc, 0x19, 0x28, 0x2d, 0x41, 0xd5, 0xd4, - 0x94, 0x7c, 0x30, 0x9c, 0xc8, 0x32, 0x56, 0xa9, 0x70, 0xe5, 0x06, 0x69, 0x2b, 0x6d, 0xb9, 0x41, - 0xfa, 0xd2, 0x38, 0x3c, 0x3d, 0xa9, 0x8a, 0x54, 0x9e, 0x9e, 0x6c, 0xc5, 0x2c, 0x4f, 0x8f, 0xa6, - 0x88, 0x0d, 0xb3, 0xbc, 0x52, 0x76, 0xca, 0x2c, 0x9f, 0x2c, 0x6c, 0x65, 0x96, 0x4f, 0x55, 0xa8, - 0xa1, 0x69, 0xd9, 0xc2, 0x2a, 0x27, 0xdc, 0xc4, 0x8d, 0x9e, 0x13, 0x6e, 0xf2, 0x92, 0x7d, 0x0d, - 0x35, 0x6d, 0x65, 0x81, 0xbe, 0x10, 0xf3, 0xf2, 0xaa, 0x20, 0x73, 0xbd, 0x58, 0x80, 0xc3, 0xcd, - 0x5e, 0xed, 0x12, 0xae, 0xb6, 0x00, 0x91, 0x70, 0x73, 0x6a, 0x82, 0x27, 0x30, 0xa7, 0x5e, 0xbb, - 0xf2, 0x28, 0xa6, 0xae, 0x7d, 0x79, 0x14, 0xd3, 0x77, 0xf4, 0x6e, 0xf5, 0xf5, 0xfc, 0x26, 0xff, - 0x43, 0xc7, 0x63, 0xf6, 0xfb, 0x66, 0x8a, 0xfd, 0x5b, 0xe3, 0xe1, 0xff, 0x02, 0x00, 0x00, 0xff, - 0xff, 0x9c, 0x9b, 0x8c, 0x7a, 0xec, 0x21, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_3c77315b028a1402) } + +var fileDescriptor_group_3c77315b028a1402 = []byte{ + // 2068 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xc8, + 0x15, 0x07, 0xed, 0xc8, 0xb6, 0x9e, 0xad, 0xc8, 0x1e, 0x47, 0xb6, 0xc2, 0xf5, 0x66, 0xbd, 0xb3, + 0xe9, 0x22, 0xe8, 0x1f, 0x1b, 0xcd, 0x02, 0x39, 0x74, 0x8b, 0xa6, 0xf1, 0x9f, 0xc4, 0x4a, 0x22, + 0xbb, 0xa1, 0xd3, 0x4b, 0x2e, 0xa9, 0x56, 0x1c, 0x0b, 0xaa, 0x25, 0x92, 0xe6, 0x50, 0x4e, 0xdb, + 0xcb, 0xa2, 0x97, 0x05, 0xb6, 0xed, 0xa1, 0x45, 0x81, 0x3d, 0x15, 0x68, 0x73, 0xeb, 0xa1, 0x87, + 0x1e, 0xda, 0x73, 0xd1, 0x8f, 0xd1, 0x4f, 0xd1, 0xaf, 0x50, 0x70, 0x66, 0x38, 0x1c, 0x0e, 0x87, + 0xb4, 0x42, 0x25, 0xcd, 0x45, 0xc0, 0xbc, 0x79, 0xc3, 0xf7, 0x7b, 0x6f, 0xe6, 0xbd, 0x79, 0xef, + 0x8d, 0x60, 0x6d, 0x10, 0xfa, 0x93, 0x60, 0x97, 0xfd, 0xee, 0x04, 0xa1, 0x1f, 0xf9, 0xa8, 0xc6, + 0x06, 0xf6, 0xc7, 0x27, 0x01, 0xf1, 0x5e, 0x76, 0xba, 0xbb, 0xc1, 0xf9, 0x60, 0x97, 0xcd, 0xec, + 0x52, 0xf7, 0xfc, 0xe5, 0x2b, 0xba, 0xfb, 0x8a, 0x72, 0x4e, 0xfc, 0x23, 0x80, 0x7d, 0x7f, 0x3c, + 0xf6, 0x3d, 0x87, 0xd0, 0x00, 0xb5, 0x61, 0xf1, 0x30, 0x0c, 0xf7, 0x7d, 0x97, 0xb4, 0xad, 0x6d, + 0xeb, 0x4e, 0xcd, 0x49, 0x86, 0x68, 0x03, 0x16, 0x0e, 0xc3, 0xb0, 0x4b, 0x07, 0xed, 0xb9, 0x6d, + 0xeb, 0x4e, 0xdd, 0x11, 0x23, 0xfc, 0x18, 0xd0, 0xa3, 0x58, 0xd6, 0x03, 0xd7, 0xed, 0x92, 0xf1, + 0x17, 0x24, 0xec, 0x78, 0x67, 0x7e, 0xcc, 0xfd, 0x53, 0x4a, 0xc2, 0xce, 0x01, 0xfb, 0x4c, 0xdd, + 0x11, 0x23, 0xb4, 0x05, 0x75, 0xc7, 0x1f, 0x91, 0xa7, 0xe4, 0x92, 0x8c, 0xd8, 0x87, 0x6a, 0x4e, + 0x4a, 0xc0, 0xff, 0xb5, 0xe0, 0xfa, 0x7e, 0x48, 0x7a, 0x11, 0x61, 0x9f, 0x74, 0xc8, 0x05, 0x7a, + 0x00, 0xd7, 0x3b, 0xde, 0x30, 0xe2, 0x9f, 0x7e, 0x3a, 0xa4, 0x51, 0xdb, 0xda, 0x9e, 0xbf, 0xb3, + 0x7c, 0xf7, 0xe6, 0x0e, 0x57, 0x37, 0x2f, 0xdb, 0xd1, 0x16, 0xa0, 0x1f, 0x40, 0x9d, 0x71, 0xc5, + 0x93, 0x4c, 0xe6, 0xf2, 0xdd, 0xad, 0x1d, 0x4a, 0xc2, 0x4b, 0x12, 0xbe, 0xec, 0x05, 0xc3, 0x97, + 0x41, 0x2f, 0xec, 0x8d, 0xe9, 0x8e, 0xe4, 0x71, 0x52, 0x76, 0xb4, 0x0d, 0xcb, 0x27, 0x01, 0x09, + 0x7b, 0xd1, 0xd0, 0xf7, 0x3a, 0x07, 0xed, 0x79, 0xa6, 0x8c, 0x4a, 0x42, 0x36, 0x2c, 0x9d, 0x04, + 0x42, 0xd7, 0x6b, 0x6c, 0x5a, 0x8e, 0xd9, 0xea, 0x57, 0x1e, 0x09, 0xc5, 0x74, 0x4d, 0xac, 0x4e, + 0x49, 0xf8, 0x4b, 0x68, 0x66, 0x14, 0xae, 0xb2, 0x05, 0x59, 0x05, 0xe7, 0xdf, 0x48, 0x41, 0x1c, + 0xc2, 0xea, 0x23, 0x12, 0xb1, 0x31, 0x65, 0x73, 0xe4, 0x22, 0x86, 0xcd, 0x19, 0x0e, 0xa4, 0xc1, + 0xeb, 0x8e, 0x4a, 0xd2, 0xcd, 0x32, 0x57, 0x6e, 0x96, 0xf9, 0xac, 0x59, 0xf0, 0xd7, 0x16, 0xac, + 0x69, 0x42, 0x2b, 0xe9, 0xbd, 0x07, 0x0d, 0xa9, 0x08, 0x43, 0x3a, 0xcf, 0x8e, 0x46, 0xb9, 0xee, + 0xd9, 0x25, 0xf8, 0xb7, 0x16, 0x34, 0x4f, 0x05, 0x96, 0x44, 0xff, 0x8c, 0x3d, 0xad, 0x37, 0x3b, + 0x30, 0xaa, 0xde, 0x73, 0x86, 0xe3, 0x50, 0x7a, 0x98, 0xf0, 0x21, 0xac, 0x66, 0xc1, 0xd0, 0x00, + 0x7d, 0x5f, 0x75, 0x50, 0x01, 0x67, 0x4d, 0x9c, 0xfe, 0x74, 0xc2, 0x51, 0x98, 0xf0, 0xaf, 0xc0, + 0x4e, 0xec, 0xfb, 0x20, 0x08, 0x46, 0xc3, 0x3e, 0xfb, 0x7e, 0xac, 0x6f, 0xac, 0x9e, 0x0a, 0xd1, + 0x2a, 0x87, 0x68, 0xd8, 0xd8, 0x5b, 0x00, 0x0f, 0x43, 0x7f, 0x9c, 0xd9, 0x5a, 0x85, 0x82, 0xff, + 0x64, 0xc1, 0x07, 0x85, 0xc2, 0x2b, 0x6d, 0xf3, 0x13, 0x58, 0x4d, 0xc2, 0xc1, 0x84, 0xd0, 0x48, + 0xd9, 0xe9, 0x8f, 0x8a, 0x76, 0x45, 0xb0, 0x3a, 0xb9, 0x85, 0x38, 0x82, 0xad, 0x47, 0x24, 0x8a, + 0xb1, 0x3a, 0xe4, 0xc2, 0x60, 0x9c, 0xa2, 0xc0, 0x35, 0xdb, 0xbe, 0xfe, 0xd9, 0x82, 0x0f, 0x4b, + 0xc4, 0x56, 0xda, 0x65, 0xa3, 0x5d, 0xe6, 0xaa, 0xda, 0xe5, 0x5f, 0x16, 0xb4, 0x9e, 0x87, 0x3d, + 0x8f, 0x9e, 0x91, 0x90, 0x4d, 0xb2, 0x28, 0x15, 0x5b, 0xa4, 0x0d, 0x8b, 0xc2, 0xf5, 0x85, 0x49, + 0x92, 0x21, 0xfa, 0x14, 0xae, 0x9f, 0x8c, 0x5c, 0x35, 0xc2, 0x71, 0xcb, 0x68, 0xd4, 0x98, 0xef, + 0x98, 0xbc, 0x52, 0xf9, 0xb8, 0x89, 0x34, 0xaa, 0x6e, 0xc7, 0x6b, 0xe5, 0x51, 0xa5, 0xa6, 0x45, + 0x95, 0x27, 0xb0, 0x61, 0x52, 0xa0, 0x9a, 0x07, 0x7d, 0x65, 0xc1, 0xca, 0x63, 0x7f, 0xe8, 0xc9, + 0x7b, 0xa8, 0xd8, 0x0a, 0xb7, 0x00, 0x1c, 0x72, 0xd1, 0x25, 0x94, 0xf6, 0x06, 0x44, 0x58, 0x40, + 0xa1, 0x94, 0x45, 0xc2, 0xab, 0x35, 0xc6, 0x7b, 0xd0, 0x50, 0x70, 0x54, 0x53, 0xe6, 0x3f, 0xb1, + 0x4b, 0x6a, 0xfe, 0x18, 0x4f, 0xf8, 0x1e, 0x25, 0x22, 0xde, 0xab, 0x28, 0xac, 0x72, 0xbb, 0xeb, + 0xa7, 0x5f, 0xb1, 0xcc, 0x7c, 0xce, 0x32, 0x4a, 0xa8, 0xb8, 0xa6, 0x87, 0x8a, 0x78, 0xfe, 0xa8, + 0xe7, 0xb9, 0x23, 0xe2, 0xc6, 0x4e, 0xcf, 0xf7, 0x53, 0xa1, 0x20, 0x0c, 0x2b, 0x7c, 0xe4, 0x10, + 0x3a, 0x19, 0x45, 0xed, 0x05, 0x16, 0x2f, 0x32, 0x34, 0xfc, 0x0c, 0xb6, 0x8a, 0x55, 0xab, 0x66, + 0xae, 0x33, 0x58, 0x79, 0x36, 0x19, 0x46, 0x53, 0x6c, 0xfd, 0x6c, 0xd7, 0xe0, 0x1e, 0x34, 0x14, + 0x39, 0xd5, 0xb0, 0xbe, 0xb6, 0xa0, 0x95, 0x44, 0xdb, 0x34, 0xe5, 0x29, 0x47, 0x3d, 0x53, 0x28, + 0x8b, 0x03, 0xe4, 0xc3, 0xe1, 0x28, 0x22, 0x21, 0xdb, 0xd0, 0x9a, 0x23, 0x46, 0xb1, 0xbc, 0x63, + 0xf2, 0x8b, 0xe8, 0x94, 0x5c, 0xb0, 0x9d, 0xac, 0x39, 0xc9, 0x10, 0xff, 0xcd, 0x82, 0x0d, 0x13, + 0xc6, 0x4a, 0x97, 0xc1, 0x43, 0x80, 0x71, 0x9a, 0x0b, 0xf2, 0x6b, 0xe0, 0xd3, 0xa2, 0x70, 0xc7, + 0xa5, 0x3d, 0x9c, 0x8c, 0x46, 0xec, 0x36, 0x55, 0x56, 0xc6, 0x92, 0x3d, 0x01, 0x97, 0xeb, 0x91, + 0x0c, 0xf1, 0xef, 0x73, 0x70, 0x65, 0x62, 0x54, 0x1a, 0x04, 0x14, 0x58, 0x73, 0x2c, 0x63, 0x52, + 0xc5, 0xcd, 0x16, 0x04, 0xfe, 0x68, 0xc1, 0xa6, 0x11, 0xd2, 0xfb, 0x34, 0x21, 0xfe, 0xbb, 0x05, + 0xe8, 0xc9, 0xb0, 0x7f, 0xae, 0xf0, 0x95, 0x1b, 0xe9, 0xdb, 0xb0, 0x1a, 0xf3, 0x13, 0x97, 0x2b, + 0xae, 0x98, 0x2a, 0x47, 0x8f, 0xc1, 0x3b, 0xa4, 0x47, 0x7d, 0x4f, 0x98, 0x4b, 0x8c, 0x74, 0x63, + 0xd5, 0xca, 0x5d, 0x6e, 0x41, 0x73, 0xb9, 0xcf, 0xa1, 0xde, 0x71, 0xef, 0xf2, 0xd0, 0x51, 0x78, + 0xd5, 0x33, 0xd1, 0x2c, 0xe0, 0xf0, 0x02, 0x45, 0x8c, 0xf0, 0x97, 0xb0, 0x9e, 0x53, 0xb7, 0xd2, + 0x06, 0xdc, 0x83, 0x86, 0x44, 0xa1, 0xec, 0xc1, 0xaa, 0x70, 0x75, 0x39, 0xe7, 0x64, 0xd9, 0xf0, + 0x84, 0xf9, 0x7a, 0x7c, 0x1d, 0x10, 0x97, 0xa1, 0x48, 0x7c, 0x3d, 0x1b, 0x68, 0xad, 0x5c, 0xa0, + 0xdd, 0x86, 0x65, 0x3f, 0x1f, 0xa7, 0xfc, 0x29, 0xe3, 0xd4, 0x57, 0xdc, 0x21, 0x72, 0x72, 0x67, + 0xaa, 0x55, 0xa6, 0xce, 0xd7, 0x53, 0x76, 0xfc, 0x0f, 0x0b, 0x6e, 0x74, 0xbc, 0xcb, 0x61, 0x44, + 0x62, 0x64, 0xcf, 0x7d, 0x19, 0xa1, 0xaf, 0x8e, 0xc3, 0xc5, 0x97, 0x54, 0x7a, 0xd0, 0xae, 0x65, + 0x0e, 0xda, 0x77, 0x61, 0x8d, 0xcb, 0x52, 0x4f, 0x6b, 0x8d, 0x9d, 0xd6, 0xfc, 0x44, 0xe9, 0xa1, + 0xfb, 0xb5, 0x05, 0x2d, 0x03, 0xec, 0xff, 0xeb, 0xd1, 0xf1, 0xe0, 0x86, 0x4c, 0xca, 0x47, 0xa3, + 0x69, 0x9c, 0x75, 0xb6, 0x84, 0xf7, 0x0f, 0xca, 0xbd, 0xa4, 0x08, 0x7c, 0xaf, 0xf1, 0xea, 0x1b, + 0x0b, 0x96, 0xf6, 0xbb, 0xa7, 0x8c, 0x6d, 0xa6, 0x1a, 0xef, 0x0e, 0x34, 0xb9, 0xac, 0x1e, 0x8d, + 0x48, 0x78, 0xdc, 0x1b, 0x27, 0x69, 0x9f, 0x4e, 0x46, 0xb7, 0x45, 0x85, 0xca, 0x49, 0x1d, 0x57, + 0x98, 0x2a, 0x4b, 0x8c, 0xc3, 0xfb, 0x72, 0x62, 0xac, 0x78, 0x53, 0xb6, 0x04, 0x36, 0xf6, 0x65, + 0xbe, 0x2d, 0x29, 0x01, 0x1d, 0x00, 0xfc, 0xa4, 0x37, 0x18, 0x7a, 0xcc, 0xd4, 0xa2, 0x9f, 0x71, + 0xdb, 0x00, 0x5d, 0x64, 0xf7, 0x29, 0xaf, 0xa3, 0xac, 0x9b, 0x62, 0x0b, 0x5f, 0x5b, 0xb0, 0x92, + 0xa2, 0xa2, 0x01, 0xfa, 0x1e, 0xd4, 0x13, 0xf3, 0x51, 0xd1, 0x85, 0x69, 0x26, 0xd9, 0x89, 0xa0, + 0x3b, 0x29, 0xc7, 0x5b, 0xc2, 0x29, 0x6d, 0x31, 0x19, 0x53, 0x86, 0xb2, 0xe6, 0xa4, 0x04, 0x7c, + 0x99, 0x42, 0xa4, 0xb1, 0xe5, 0xb2, 0x32, 0xad, 0xb7, 0x63, 0x9b, 0x7c, 0x38, 0xc1, 0x7f, 0xb1, + 0xa0, 0xa1, 0x08, 0x7e, 0x5f, 0xc6, 0xb1, 0x61, 0x29, 0xb1, 0x85, 0xb0, 0x8d, 0x1c, 0xe3, 0x93, + 0xb4, 0xc7, 0x62, 0x70, 0x77, 0x37, 0xeb, 0xee, 0xee, 0x14, 0x3a, 0x9f, 0x43, 0x8b, 0x0f, 0x79, + 0xaf, 0xea, 0x34, 0xea, 0x45, 0x13, 0x5a, 0xfe, 0xd1, 0x0d, 0x58, 0xe0, 0x6c, 0xc9, 0x4d, 0xca, + 0x47, 0x53, 0x1c, 0xbe, 0x36, 0x6c, 0x98, 0x84, 0xf1, 0xca, 0x0c, 0x89, 0x29, 0x56, 0x4e, 0xfb, + 0x23, 0x72, 0x25, 0x08, 0x16, 0xb6, 0xdc, 0x24, 0xac, 0xf0, 0x51, 0xb6, 0x15, 0x39, 0xaf, 0xb5, + 0x22, 0xa7, 0x48, 0xca, 0x5a, 0xb0, 0x9e, 0xc3, 0x41, 0x03, 0xfc, 0x14, 0xae, 0x1f, 0x90, 0x11, + 0x51, 0x5a, 0x98, 0xb3, 0x18, 0x7d, 0x0d, 0x9a, 0x99, 0xaf, 0xd1, 0x00, 0x77, 0xa1, 0x99, 0x6c, + 0xec, 0xde, 0x2f, 0x3b, 0xee, 0xac, 0x12, 0xee, 0xa7, 0x0d, 0x40, 0xfe, 0x39, 0x1a, 0xa0, 0xef, + 0xa4, 0x81, 0x52, 0x38, 0x51, 0xee, 0x2c, 0x4b, 0x06, 0xfc, 0xcf, 0x5c, 0x09, 0x42, 0xf7, 0xbb, + 0xa7, 0xe5, 0xb0, 0x6c, 0x58, 0x8a, 0x8d, 0xa6, 0x84, 0x4e, 0x39, 0xd6, 0x5c, 0x63, 0xfe, 0xed, + 0xf8, 0xb0, 0x61, 0xff, 0xfe, 0x9d, 0xcf, 0xf3, 0x19, 0x6e, 0x1a, 0xa0, 0x1f, 0xc3, 0x22, 0xbf, + 0x37, 0x12, 0x57, 0x9e, 0xf6, 0xba, 0x49, 0x96, 0xa1, 0x43, 0x83, 0x7f, 0x7f, 0xcb, 0xa8, 0x04, + 0xaf, 0x55, 0x0b, 0xb4, 0xb8, 0x05, 0xc0, 0x25, 0x28, 0xe1, 0x4f, 0xa1, 0xe0, 0xdf, 0x59, 0xd0, + 0x76, 0xc8, 0xd8, 0xbf, 0x24, 0x6f, 0x64, 0xfe, 0x36, 0x2c, 0x72, 0x27, 0xa0, 0x22, 0xff, 0x4e, + 0x86, 0x6f, 0xd4, 0xef, 0x76, 0xb5, 0x7e, 0xb7, 0x8b, 0xbb, 0x70, 0xb3, 0x00, 0x0d, 0xbf, 0xf8, + 0xe9, 0xa4, 0xdf, 0x27, 0x94, 0x8a, 0x8e, 0x72, 0x32, 0x8c, 0x3d, 0xf4, 0xac, 0x37, 0x1c, 0x11, + 0x57, 0xa0, 0x11, 0x23, 0xfc, 0xb5, 0x05, 0xad, 0x07, 0xae, 0xfb, 0x2e, 0x54, 0x73, 0xf3, 0xaa, + 0xb9, 0xa5, 0xaa, 0x3d, 0x86, 0x0d, 0x13, 0x94, 0x4a, 0x7a, 0x0d, 0xa1, 0x79, 0x30, 0xa4, 0xe3, + 0x21, 0xa5, 0x32, 0x46, 0xd8, 0xb0, 0xe4, 0x6b, 0x3d, 0x59, 0x3f, 0x98, 0x3a, 0x7b, 0x6f, 0xc3, + 0xe2, 0x20, 0x9b, 0xdd, 0x8a, 0x21, 0x3e, 0x84, 0xd5, 0xac, 0x28, 0xde, 0x66, 0xe8, 0x4f, 0xd3, + 0x66, 0x48, 0x99, 0xf0, 0x5f, 0x2d, 0x40, 0xdd, 0x49, 0x44, 0xb4, 0xeb, 0xe4, 0x1d, 0xa1, 0x8e, + 0x0d, 0x37, 0x51, 0x9b, 0x46, 0x62, 0x84, 0x30, 0xac, 0x8c, 0x27, 0x11, 0x71, 0x4f, 0x49, 0xdf, + 0xf7, 0x5c, 0xca, 0xaa, 0xbf, 0x86, 0x93, 0xa1, 0xe1, 0x23, 0x58, 0xcf, 0x21, 0xad, 0xa6, 0xf4, + 0x6f, 0x2c, 0x68, 0xef, 0xf7, 0xbc, 0x3e, 0x19, 0xbd, 0x7f, 0xd5, 0xf1, 0x31, 0xdc, 0x2c, 0xc0, + 0x52, 0x4d, 0xb9, 0x33, 0x58, 0x91, 0x5f, 0x7a, 0x97, 0x07, 0x70, 0x0f, 0x1a, 0x8a, 0x9c, 0x6a, + 0x58, 0x47, 0x80, 0x34, 0xdd, 0xdf, 0x25, 0xe2, 0x23, 0x58, 0xcf, 0x49, 0xab, 0x84, 0xfb, 0xee, + 0x37, 0x6b, 0xc0, 0xdf, 0x61, 0xd1, 0x0f, 0x61, 0xb9, 0x9f, 0x3e, 0xf3, 0xa1, 0x56, 0xb2, 0x2e, + 0xf3, 0xd6, 0x69, 0x6f, 0x98, 0xc8, 0x34, 0x40, 0xf7, 0xa0, 0xfe, 0xf3, 0xa4, 0x07, 0x8c, 0xd6, + 0x05, 0x93, 0xda, 0x9d, 0xb6, 0x6f, 0xe4, 0x89, 0x7c, 0xdd, 0x45, 0xd2, 0x60, 0x94, 0xeb, 0xd4, + 0xd6, 0xa6, 0x5c, 0x97, 0xed, 0x43, 0xee, 0x41, 0x63, 0xa0, 0x3e, 0xcf, 0xa1, 0xcd, 0xe4, 0xb1, + 0x55, 0x7b, 0x29, 0xb4, 0xdb, 0xe6, 0x09, 0x1a, 0xa0, 0xfb, 0xb0, 0x42, 0x95, 0x97, 0x2c, 0x94, + 0xe8, 0xa6, 0xbd, 0xb5, 0xd9, 0x9b, 0x46, 0x3a, 0x0d, 0xd0, 0xcf, 0x60, 0x73, 0x60, 0x7e, 0x46, + 0x42, 0x1f, 0x6b, 0x52, 0xf3, 0xcf, 0x38, 0x36, 0xbe, 0x8a, 0x85, 0x06, 0xe8, 0x0c, 0x6e, 0x0e, + 0x8a, 0xde, 0x64, 0xd0, 0x27, 0xe9, 0x07, 0x0a, 0x1f, 0x8b, 0xec, 0xdb, 0x57, 0x33, 0xd1, 0x00, + 0x3d, 0x03, 0x14, 0xe5, 0x1e, 0x26, 0xd0, 0x96, 0x58, 0x6b, 0x7c, 0x74, 0xb1, 0x3f, 0x2c, 0x99, + 0xa5, 0x01, 0xea, 0x43, 0x7b, 0x50, 0xd0, 0xf5, 0x46, 0x38, 0xf3, 0x32, 0x6e, 0xec, 0xf8, 0xdb, + 0x9f, 0x5c, 0xc9, 0xc3, 0x71, 0x0f, 0x72, 0x6d, 0x5b, 0x89, 0xdb, 0xd8, 0x75, 0x96, 0xb8, 0x0b, + 0xfa, 0xbd, 0xcf, 0x61, 0x7d, 0x90, 0xef, 0x63, 0x22, 0xf3, 0x2a, 0x79, 0xca, 0x6e, 0x95, 0x4d, + 0xd3, 0x00, 0x1d, 0x41, 0xf3, 0x3c, 0xdb, 0x98, 0x43, 0xc9, 0xdf, 0x03, 0xf2, 0xfd, 0x49, 0xdb, + 0x2e, 0x9a, 0x92, 0x2a, 0x6b, 0x9d, 0x2e, 0x55, 0xe5, 0x7c, 0xf3, 0x4d, 0x55, 0xd9, 0xd4, 0x22, + 0x3b, 0x86, 0xb5, 0xa1, 0xde, 0xfc, 0x41, 0x1f, 0x24, 0xfd, 0x1a, 0x43, 0x37, 0xcb, 0xde, 0x2a, + 0x9e, 0xe4, 0xdf, 0x1b, 0xe8, 0x8d, 0x15, 0xf9, 0x3d, 0x53, 0x8f, 0xc7, 0xde, 0x2a, 0x9e, 0xe4, + 0x8e, 0xaa, 0xe6, 0xff, 0xd2, 0x51, 0xb5, 0x1a, 0xc3, 0xde, 0x34, 0xd2, 0x69, 0x80, 0x3e, 0x83, + 0xa5, 0x84, 0x86, 0x90, 0xc6, 0x14, 0x2f, 0x5c, 0xcf, 0xd1, 0x78, 0x68, 0x92, 0x31, 0x03, 0xe9, + 0x1c, 0x54, 0x0d, 0x4d, 0xd9, 0x32, 0xfb, 0x99, 0x2c, 0xfe, 0x94, 0xba, 0x50, 0x6e, 0x90, 0xb1, + 0x3e, 0x95, 0x1b, 0x64, 0x2e, 0x28, 0xe3, 0xd3, 0xa3, 0xd5, 0x71, 0xf2, 0xf4, 0xe4, 0xeb, 0x4c, + 0x79, 0x7a, 0x0c, 0xa5, 0x5f, 0x1c, 0xe5, 0x95, 0x62, 0x4d, 0x46, 0xf9, 0x6c, 0x39, 0x28, 0xa3, + 0xbc, 0x56, 0xd7, 0xc5, 0xaa, 0xe5, 0xcb, 0x91, 0x02, 0x77, 0x13, 0x79, 0x70, 0x81, 0xbb, 0xc9, + 0xd4, 0xf4, 0x05, 0xb4, 0x8c, 0xf9, 0x38, 0xfa, 0x48, 0xac, 0x2b, 0xaa, 0x1d, 0xec, 0xed, 0x72, + 0x06, 0x0e, 0x37, 0x9f, 0x10, 0x4b, 0xb8, 0xc6, 0xb4, 0x5d, 0xc2, 0x2d, 0xc8, 0xa4, 0xef, 0xc3, + 0x8a, 0x9a, 0xac, 0xca, 0xa3, 0xa8, 0x25, 0xcb, 0xf2, 0x28, 0xe6, 0x32, 0xdb, 0x23, 0x68, 0x6a, + 0xe9, 0x91, 0xdc, 0xca, 0x7c, 0x0a, 0x27, 0xb7, 0xd2, 0x94, 0x51, 0xbd, 0x80, 0x96, 0x31, 0xdd, + 0x92, 0x96, 0x2b, 0x4a, 0x0c, 0xa5, 0xe5, 0x8a, 0xb3, 0xb5, 0x7b, 0x50, 0x97, 0x64, 0x79, 0xf6, + 0xd5, 0xd4, 0x46, 0x9e, 0xfd, 0x6c, 0x06, 0x72, 0x04, 0x4d, 0xed, 0xa3, 0x52, 0xbb, 0x7c, 0x7a, + 0x24, 0xb5, 0x33, 0xe4, 0x32, 0x7b, 0xcd, 0x17, 0x8d, 0x1d, 0xfe, 0x77, 0xb1, 0xcf, 0xd9, 0xef, + 0x17, 0x0b, 0xec, 0xbf, 0x60, 0x9f, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x2b, 0x24, 0xa7, + 0x4a, 0x26, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 62c845f1e..201bf6ef5 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -319,7 +319,7 @@ message AddGroupMembersCMSResp { } message DismissGroupReq{ - string opUserID = 1; //group member or app manager + string opUserID = 1; //group or app manager string operationID = 2; string groupID = 3; } @@ -328,6 +328,59 @@ message DismissGroupResp{ CommonResp commonResp = 1; } + +message MuteGroupMemberReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; + string userID = 4; + uint32 mutedSeconds = 5; +} + +message MuteGroupMemberResp{ + CommonResp commonResp = 1; +} + + + +message CancelMuteGroupMemberReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; + string userID = 4; +} + +message CancelMuteGroupMemberResp{ + CommonResp commonResp = 1; +} + + +message MuteGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message MuteGroupResp{ + CommonResp commonResp = 1; +} + + + +message CancelMuteGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message CancelMuteGroupResp{ + CommonResp commonResp = 1; +} + + + + + service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); @@ -356,6 +409,10 @@ service group{ rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp); rpc DismissGroup(DismissGroupReq) returns(DismissGroupResp); + rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); + rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); + rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); + rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 1675ad2bc..b738d4218 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,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_489fb152692e30da, []int{0} + return fileDescriptor_ws_a63d7f660800bc8e, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -155,6 +155,7 @@ type GroupMemberFullInfo struct { JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` 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"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -164,7 +165,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_489fb152692e30da, []int{1} + return fileDescriptor_ws_a63d7f660800bc8e, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -254,6 +255,13 @@ func (m *GroupMemberFullInfo) GetEx() string { return "" } +func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { + if m != nil { + return m.MuteEndTime + } + return 0 +} + 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"` @@ -269,7 +277,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_489fb152692e30da, []int{2} + return fileDescriptor_ws_a63d7f660800bc8e, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +352,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_489fb152692e30da, []int{3} + return fileDescriptor_ws_a63d7f660800bc8e, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +459,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_489fb152692e30da, []int{4} + return fileDescriptor_ws_a63d7f660800bc8e, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +544,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_489fb152692e30da, []int{5} + return fileDescriptor_ws_a63d7f660800bc8e, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +625,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_489fb152692e30da, []int{6} + return fileDescriptor_ws_a63d7f660800bc8e, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +733,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_489fb152692e30da, []int{7} + return fileDescriptor_ws_a63d7f660800bc8e, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -863,7 +871,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_489fb152692e30da, []int{8} + return fileDescriptor_ws_a63d7f660800bc8e, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -917,7 +925,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_489fb152692e30da, []int{9} + return fileDescriptor_ws_a63d7f660800bc8e, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -968,7 +976,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_489fb152692e30da, []int{10} + return fileDescriptor_ws_a63d7f660800bc8e, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1000,7 +1008,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_489fb152692e30da, []int{11} + return fileDescriptor_ws_a63d7f660800bc8e, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1047,7 +1055,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_489fb152692e30da, []int{12} + return fileDescriptor_ws_a63d7f660800bc8e, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1116,7 +1124,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_489fb152692e30da, []int{13} + return fileDescriptor_ws_a63d7f660800bc8e, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1277,7 +1285,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_489fb152692e30da, []int{14} + return fileDescriptor_ws_a63d7f660800bc8e, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1345,7 +1353,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_489fb152692e30da, []int{15} + return fileDescriptor_ws_a63d7f660800bc8e, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1402,7 +1410,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_489fb152692e30da, []int{16} + return fileDescriptor_ws_a63d7f660800bc8e, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1471,7 +1479,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_489fb152692e30da, []int{17} + return fileDescriptor_ws_a63d7f660800bc8e, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1526,7 +1534,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_489fb152692e30da, []int{18} + return fileDescriptor_ws_a63d7f660800bc8e, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1582,7 +1590,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_489fb152692e30da, []int{19} + return fileDescriptor_ws_a63d7f660800bc8e, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1637,7 +1645,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_489fb152692e30da, []int{20} + return fileDescriptor_ws_a63d7f660800bc8e, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1692,7 +1700,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_489fb152692e30da, []int{21} + return fileDescriptor_ws_a63d7f660800bc8e, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1748,7 +1756,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_489fb152692e30da, []int{22} + return fileDescriptor_ws_a63d7f660800bc8e, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1811,7 +1819,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_489fb152692e30da, []int{23} + return fileDescriptor_ws_a63d7f660800bc8e, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1874,7 +1882,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_489fb152692e30da, []int{24} + return fileDescriptor_ws_a63d7f660800bc8e, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1936,7 +1944,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_489fb152692e30da, []int{25} + return fileDescriptor_ws_a63d7f660800bc8e, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1990,7 +1998,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_489fb152692e30da, []int{26} + return fileDescriptor_ws_a63d7f660800bc8e, []int{26} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2044,7 +2052,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_489fb152692e30da, []int{27} + return fileDescriptor_ws_a63d7f660800bc8e, []int{27} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2097,7 +2105,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_489fb152692e30da, []int{28} + return fileDescriptor_ws_a63d7f660800bc8e, []int{28} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2143,7 +2151,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_489fb152692e30da, []int{29} + return fileDescriptor_ws_a63d7f660800bc8e, []int{29} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2183,7 +2191,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_489fb152692e30da, []int{30} + return fileDescriptor_ws_a63d7f660800bc8e, []int{30} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2230,7 +2238,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_489fb152692e30da, []int{31} + return fileDescriptor_ws_a63d7f660800bc8e, []int{31} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2278,7 +2286,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_489fb152692e30da, []int{32} + return fileDescriptor_ws_a63d7f660800bc8e, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2331,7 +2339,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_489fb152692e30da, []int{33} + return fileDescriptor_ws_a63d7f660800bc8e, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2369,7 +2377,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_489fb152692e30da, []int{34} + return fileDescriptor_ws_a63d7f660800bc8e, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2407,7 +2415,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_489fb152692e30da, []int{35} + return fileDescriptor_ws_a63d7f660800bc8e, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2445,7 +2453,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_489fb152692e30da, []int{36} + return fileDescriptor_ws_a63d7f660800bc8e, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2484,7 +2492,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_489fb152692e30da, []int{37} + return fileDescriptor_ws_a63d7f660800bc8e, []int{37} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2523,7 +2531,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_489fb152692e30da, []int{38} + return fileDescriptor_ws_a63d7f660800bc8e, []int{38} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -2563,7 +2571,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_489fb152692e30da, []int{39} + return fileDescriptor_ws_a63d7f660800bc8e, []int{39} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -2609,7 +2617,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_489fb152692e30da, []int{40} + return fileDescriptor_ws_a63d7f660800bc8e, []int{40} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -2662,7 +2670,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_489fb152692e30da, []int{41} + return fileDescriptor_ws_a63d7f660800bc8e, []int{41} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -2929,7 +2937,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_489fb152692e30da, []int{42} + return fileDescriptor_ws_a63d7f660800bc8e, []int{42} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -3197,7 +3205,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_489fb152692e30da, []int{43} + return fileDescriptor_ws_a63d7f660800bc8e, []int{43} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -3293,7 +3301,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_489fb152692e30da, []int{44} + return fileDescriptor_ws_a63d7f660800bc8e, []int{44} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -3348,7 +3356,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_489fb152692e30da, []int{45} + return fileDescriptor_ws_a63d7f660800bc8e, []int{45} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -3409,7 +3417,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_489fb152692e30da, []int{46} + return fileDescriptor_ws_a63d7f660800bc8e, []int{46} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -3464,7 +3472,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_489fb152692e30da, []int{47} + return fileDescriptor_ws_a63d7f660800bc8e, []int{47} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -3525,7 +3533,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_489fb152692e30da, []int{48} + return fileDescriptor_ws_a63d7f660800bc8e, []int{48} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -3580,7 +3588,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_489fb152692e30da, []int{49} + return fileDescriptor_ws_a63d7f660800bc8e, []int{49} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -3638,7 +3646,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_489fb152692e30da, []int{50} + return fileDescriptor_ws_a63d7f660800bc8e, []int{50} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -3673,7 +3681,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_489fb152692e30da, []int{51} + return fileDescriptor_ws_a63d7f660800bc8e, []int{51} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -3741,7 +3749,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_489fb152692e30da, []int{52} + return fileDescriptor_ws_a63d7f660800bc8e, []int{52} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -3795,7 +3803,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_489fb152692e30da, []int{53} + return fileDescriptor_ws_a63d7f660800bc8e, []int{53} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -3846,7 +3854,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_489fb152692e30da, []int{54} + return fileDescriptor_ws_a63d7f660800bc8e, []int{54} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -3881,7 +3889,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_489fb152692e30da, []int{55} + return fileDescriptor_ws_a63d7f660800bc8e, []int{55} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -3946,7 +3954,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_489fb152692e30da, []int{56} + return fileDescriptor_ws_a63d7f660800bc8e, []int{56} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -3980,7 +3988,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_489fb152692e30da, []int{57} + return fileDescriptor_ws_a63d7f660800bc8e, []int{57} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4040,7 +4048,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_489fb152692e30da, []int{58} + return fileDescriptor_ws_a63d7f660800bc8e, []int{58} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4137,170 +4145,171 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_489fb152692e30da) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a63d7f660800bc8e) } -var fileDescriptor_ws_489fb152692e30da = []byte{ - // 2589 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0xe4, 0x48, - 0x15, 0xc7, 0xee, 0x74, 0x27, 0xfd, 0x92, 0x4e, 0x27, 0xce, 0x12, 0x9a, 0x61, 0x76, 0x08, 0x56, - 0xb4, 0x0c, 0x0b, 0x64, 0xd1, 0x20, 0x24, 0xd8, 0x85, 0x41, 0xf9, 0x98, 0xaf, 0x25, 0x3d, 0x93, - 0x75, 0xcf, 0xb0, 0x08, 0x90, 0x46, 0x95, 0x76, 0xa5, 0xe3, 0x8d, 0x5d, 0xe5, 0x76, 0xd9, 0x99, +var fileDescriptor_ws_a63d7f660800bc8e = []byte{ + // 2605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0xa7, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0x59, 0x82, 0x19, 0x66, 0x87, 0xd0, 0x8a, + 0x96, 0x61, 0x81, 0x2c, 0x1a, 0x84, 0x04, 0xbb, 0x30, 0x28, 0x1f, 0xf3, 0xb5, 0xc4, 0x33, 0xd9, + 0xf6, 0x0c, 0x8b, 0x00, 0x69, 0x54, 0x71, 0x57, 0x9c, 0xde, 0xb4, 0xab, 0xda, 0x5d, 0xdd, 0x99, 0x89, 0x84, 0x84, 0x04, 0x12, 0xe2, 0xc6, 0x09, 0xae, 0x48, 0x5c, 0x10, 0x12, 0x5a, 0xed, 0x01, - 0xc4, 0x05, 0x71, 0xe2, 0x1f, 0xe0, 0xcc, 0x8d, 0x33, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0xfa, 0xb0, - 0x5d, 0x65, 0x77, 0x27, 0xbd, 0x51, 0xb4, 0x03, 0x1a, 0x6e, 0xfd, 0x9e, 0xeb, 0xbd, 0x7a, 0xf5, - 0x7e, 0xef, 0xbd, 0x7a, 0x7e, 0x6e, 0xe8, 0x32, 0xff, 0xe4, 0xe9, 0x33, 0xf6, 0xc6, 0x33, 0xb6, - 0x15, 0x27, 0x34, 0xa5, 0xce, 0x2a, 0xc3, 0xc9, 0x29, 0x4e, 0x9e, 0xa2, 0x38, 0x78, 0x1a, 0xa3, - 0x04, 0x45, 0xcc, 0xfd, 0x87, 0x0d, 0xed, 0x7b, 0x09, 0xcd, 0xe2, 0x07, 0xe4, 0x88, 0x3a, 0x3d, - 0x98, 0x1f, 0x09, 0x62, 0xaf, 0x67, 0x6d, 0x58, 0x37, 0xdb, 0x5e, 0x4e, 0x3a, 0xd7, 0xa1, 0x2d, - 0x7e, 0x3e, 0x44, 0x11, 0xee, 0xd9, 0xe2, 0x59, 0xc9, 0x70, 0x5c, 0x58, 0x22, 0x34, 0x0d, 0x8e, - 0x82, 0x21, 0x4a, 0x03, 0x4a, 0x7a, 0x0d, 0xb1, 0xc0, 0xe0, 0xf1, 0x35, 0x01, 0x49, 0x13, 0xea, - 0x67, 0x43, 0xb1, 0x66, 0x4e, 0xae, 0xd1, 0x79, 0x7c, 0xff, 0x23, 0x34, 0xc4, 0x4f, 0xbc, 0xfd, - 0x5e, 0x53, 0xee, 0xaf, 0x48, 0x67, 0x03, 0x16, 0xe9, 0x33, 0x82, 0x93, 0x27, 0x0c, 0x27, 0x0f, - 0xf6, 0x7a, 0x2d, 0xf1, 0x54, 0x67, 0x39, 0x37, 0x00, 0x86, 0x09, 0x46, 0x29, 0x7e, 0x1c, 0x44, - 0xb8, 0x37, 0xbf, 0x61, 0xdd, 0xec, 0x78, 0x1a, 0x87, 0x6b, 0x88, 0x70, 0x74, 0x88, 0x93, 0x5d, - 0x9a, 0x91, 0xb4, 0xb7, 0x20, 0x16, 0xe8, 0x2c, 0x67, 0x19, 0x6c, 0xfc, 0xbc, 0xd7, 0x16, 0xaa, - 0x6d, 0xfc, 0xdc, 0x59, 0x87, 0x16, 0x4b, 0x51, 0x9a, 0xb1, 0x1e, 0x6c, 0x58, 0x37, 0x9b, 0x9e, - 0xa2, 0x9c, 0x4d, 0xe8, 0x08, 0xbd, 0x34, 0xb7, 0x66, 0x51, 0x88, 0x98, 0xcc, 0xc2, 0x63, 0x8f, - 0xcf, 0x62, 0xdc, 0x5b, 0x12, 0x0a, 0x4a, 0x86, 0xfb, 0x07, 0x1b, 0xd6, 0x84, 0xdf, 0xfb, 0xc2, - 0x80, 0xbb, 0x59, 0x18, 0x5e, 0x80, 0xc0, 0x3a, 0xb4, 0x32, 0xb9, 0x9d, 0x74, 0xbf, 0xa2, 0xf8, - 0x3e, 0x09, 0x0d, 0xf1, 0x3e, 0x3e, 0xc5, 0xa1, 0x70, 0x7c, 0xd3, 0x2b, 0x19, 0xce, 0x35, 0x58, - 0x78, 0x8f, 0x06, 0x44, 0xf8, 0x64, 0x4e, 0x3c, 0x2c, 0x68, 0xfe, 0x8c, 0x04, 0xc3, 0x13, 0xc2, - 0x21, 0x95, 0xee, 0x2e, 0x68, 0x1d, 0x89, 0x96, 0x89, 0xc4, 0x6b, 0xb0, 0x8c, 0xe2, 0xb8, 0x8f, - 0xc8, 0x08, 0x27, 0x72, 0xd3, 0x79, 0xa1, 0xb7, 0xc2, 0xe5, 0x78, 0xf0, 0x9d, 0x06, 0x34, 0x4b, - 0x86, 0x58, 0xb8, 0xbb, 0xe9, 0x69, 0x1c, 0xae, 0x87, 0xc6, 0x38, 0xd1, 0xdc, 0x28, 0x3d, 0x5f, - 0xe1, 0x2a, 0x54, 0x20, 0x47, 0xc5, 0xfd, 0x89, 0x05, 0xcb, 0x07, 0xd9, 0x61, 0x18, 0x0c, 0xc5, - 0x02, 0xee, 0xb4, 0xd2, 0x35, 0x96, 0xe1, 0x1a, 0xfd, 0x80, 0xf6, 0xf4, 0x03, 0x36, 0xcc, 0x03, - 0xae, 0x43, 0x6b, 0x84, 0x89, 0x8f, 0x13, 0xe5, 0x30, 0x45, 0x29, 0x43, 0x9a, 0x85, 0x21, 0xbf, - 0xb0, 0x61, 0xe1, 0x23, 0x36, 0x61, 0x03, 0x16, 0xe3, 0x63, 0x4a, 0xf0, 0xc3, 0x8c, 0x07, 0x8d, - 0xb2, 0x45, 0x67, 0x39, 0xaf, 0x40, 0xf3, 0x30, 0x48, 0xd2, 0x63, 0x81, 0x5a, 0xc7, 0x93, 0x04, - 0xe7, 0xe2, 0x08, 0x05, 0x12, 0xaa, 0xb6, 0x27, 0x09, 0x75, 0xa0, 0x85, 0x22, 0xde, 0xcd, 0x0c, - 0x6a, 0xd7, 0x32, 0xa8, 0x8e, 0x3c, 0x4c, 0x42, 0xde, 0xfd, 0xa7, 0x05, 0x70, 0x37, 0x09, 0x30, - 0xf1, 0x85, 0x6b, 0x2a, 0xa9, 0x6b, 0xd5, 0x53, 0x77, 0x1d, 0x5a, 0x09, 0x8e, 0x50, 0x72, 0x92, - 0x87, 0xb6, 0xa4, 0x2a, 0x06, 0x35, 0x6a, 0x06, 0xbd, 0x05, 0x70, 0x24, 0xf6, 0xe1, 0x7a, 0x84, - 0xab, 0x16, 0x6f, 0x7d, 0x6a, 0xab, 0x56, 0xe4, 0xb6, 0x72, 0x94, 0x3c, 0x6d, 0x39, 0xcf, 0x1b, - 0xe4, 0xfb, 0x2a, 0x3c, 0x9b, 0x32, 0x6f, 0x0a, 0xc6, 0x84, 0xe8, 0x6c, 0x9d, 0x13, 0x9d, 0xf3, - 0x45, 0x50, 0xfc, 0xdd, 0x82, 0xf6, 0x4e, 0x88, 0x86, 0x27, 0x33, 0x1e, 0xdd, 0x3c, 0xa2, 0x5d, - 0x3b, 0xe2, 0x3d, 0xe8, 0x1c, 0x72, 0x75, 0xf9, 0x11, 0x84, 0x17, 0x16, 0x6f, 0x7d, 0x66, 0xc2, - 0x29, 0xcd, 0xa4, 0xf0, 0x4c, 0x39, 0xf3, 0xb8, 0x73, 0x17, 0x1f, 0xb7, 0x79, 0xce, 0x71, 0x5b, - 0xc5, 0x71, 0xff, 0x62, 0xc3, 0x92, 0x28, 0x63, 0x1e, 0x1e, 0x67, 0x98, 0xa5, 0xce, 0x37, 0x60, - 0x21, 0xcb, 0x4d, 0xb5, 0x66, 0x35, 0xb5, 0x10, 0x71, 0xde, 0x54, 0x45, 0x53, 0xc8, 0xdb, 0x42, - 0xfe, 0xfa, 0x04, 0xf9, 0xe2, 0xc6, 0xf2, 0xca, 0xe5, 0xfc, 0x82, 0x39, 0x46, 0xc4, 0x0f, 0xb1, - 0x87, 0x59, 0x16, 0xa6, 0xaa, 0x16, 0x1a, 0x3c, 0x19, 0x69, 0xe3, 0x3e, 0x1b, 0xa9, 0xeb, 0x47, - 0x51, 0xdc, 0x3b, 0x72, 0x1d, 0x7f, 0x24, 0x8f, 0x5e, 0x32, 0x78, 0xa2, 0x26, 0x78, 0x2c, 0x10, - 0x92, 0x69, 0x95, 0x93, 0xe5, 0x9e, 0xca, 0x6b, 0x32, 0x10, 0x0c, 0x1e, 0x87, 0x58, 0xd2, 0x42, - 0x81, 0xbc, 0x77, 0x34, 0x4e, 0xf5, 0xda, 0x71, 0xff, 0xda, 0x80, 0x8e, 0x4c, 0x9f, 0xdc, 0xa9, - 0x37, 0x78, 0x9c, 0xd3, 0xc8, 0x88, 0x22, 0x8d, 0xc3, 0xad, 0xe0, 0xd4, 0x43, 0xb3, 0xd0, 0x18, - 0x3c, 0x1e, 0x8a, 0x9c, 0xbe, 0x6b, 0x14, 0x1c, 0x9d, 0x95, 0xef, 0x72, 0x4f, 0x2f, 0x3c, 0x1a, - 0x87, 0x97, 0xb2, 0x94, 0x1a, 0xd1, 0x51, 0xd0, 0x5c, 0x36, 0xa5, 0xc5, 0xfe, 0x32, 0x3e, 0x34, - 0x0e, 0xf7, 0x6f, 0x4a, 0xf3, 0xbd, 0xa5, 0x93, 0x4a, 0x86, 0xd4, 0xac, 0xf6, 0x95, 0x17, 0x45, - 0x41, 0xd7, 0x50, 0x6d, 0x9f, 0x8b, 0x2a, 0x18, 0xa8, 0x9a, 0xc9, 0xb5, 0x58, 0x4b, 0xae, 0x4d, - 0xe8, 0x48, 0x3d, 0x79, 0xd0, 0x2f, 0xc9, 0x8b, 0xdc, 0x60, 0x9a, 0xb1, 0xd1, 0xa9, 0xc6, 0x86, - 0x89, 0xee, 0xf2, 0x14, 0x74, 0xbb, 0x05, 0xba, 0x3f, 0x80, 0xde, 0x41, 0x16, 0x86, 0x7d, 0xcc, - 0x18, 0x1a, 0xe1, 0x9d, 0xb3, 0x01, 0x1e, 0xef, 0x07, 0x2c, 0xf5, 0x30, 0x8b, 0x79, 0x9c, 0xe1, - 0x24, 0xd9, 0xa5, 0x3e, 0x16, 0x20, 0x37, 0xbd, 0x9c, 0xe4, 0x27, 0xc4, 0x49, 0xc2, 0x0d, 0x50, - 0x15, 0x52, 0x52, 0xce, 0x16, 0xcc, 0x85, 0x01, 0xe3, 0xb1, 0xde, 0xb8, 0xb9, 0x78, 0xeb, 0xda, - 0x84, 0x54, 0xe9, 0xb3, 0xd1, 0x1e, 0x4a, 0x91, 0x27, 0xd6, 0xb9, 0x11, 0x7c, 0x62, 0xf2, 0xee, - 0xe3, 0xa9, 0x37, 0x18, 0xaf, 0x61, 0xa2, 0x08, 0x04, 0x94, 0x14, 0xcd, 0x87, 0xce, 0xe2, 0x66, - 0x33, 0xa9, 0x47, 0xd8, 0xd1, 0xf1, 0x72, 0xd2, 0x7d, 0x05, 0x9c, 0x7b, 0x38, 0xed, 0xa3, 0xe7, - 0xdb, 0xc4, 0xef, 0x07, 0x64, 0x80, 0xc7, 0x1e, 0x1e, 0xbb, 0x77, 0x60, 0xad, 0xc6, 0x65, 0x31, - 0x37, 0x20, 0x42, 0xcf, 0x07, 0x78, 0x2c, 0x0c, 0xe8, 0x78, 0x8a, 0x12, 0x7c, 0xb1, 0x4a, 0x95, - 0x47, 0x45, 0xb9, 0x63, 0xe8, 0x72, 0x84, 0x06, 0x98, 0xf8, 0x7d, 0x36, 0x12, 0x2a, 0x36, 0x60, - 0x51, 0x7a, 0xa0, 0xcf, 0x46, 0x65, 0xbd, 0xd5, 0x58, 0x7c, 0xc5, 0x30, 0x0c, 0x30, 0x49, 0xe5, - 0x0a, 0x75, 0x1a, 0x8d, 0xc5, 0x83, 0x91, 0x61, 0xe2, 0x17, 0x57, 0x4e, 0xc3, 0x2b, 0x68, 0xf7, - 0x8f, 0x4d, 0x98, 0x57, 0x0e, 0x15, 0xdd, 0x21, 0xbf, 0xe2, 0x0a, 0x7f, 0x49, 0x4a, 0x06, 0xe3, - 0xf0, 0xb4, 0xec, 0xd3, 0x24, 0xa5, 0x77, 0x76, 0x0d, 0xb3, 0xb3, 0xab, 0xd8, 0x34, 0x57, 0xb7, - 0xa9, 0x72, 0xae, 0x66, 0xfd, 0x5c, 0xaf, 0xc3, 0x0a, 0x13, 0x09, 0x73, 0x10, 0xa2, 0xf4, 0x88, - 0x26, 0x91, 0xba, 0xb1, 0x9a, 0x5e, 0x8d, 0xcf, 0x8b, 0xbd, 0xe4, 0x15, 0x09, 0x2b, 0x33, 0xb2, - 0xc2, 0xe5, 0xe9, 0x21, 0x39, 0x79, 0xe2, 0xca, 0x56, 0xc1, 0x64, 0x4a, 0xdb, 0x18, 0x0b, 0x28, - 0x11, 0x9d, 0xae, 0xcc, 0x4f, 0x9d, 0xc5, 0x4f, 0x1e, 0xb1, 0xd1, 0xdd, 0x84, 0x46, 0xaa, 0x61, - 0xc8, 0x49, 0x71, 0x72, 0x4a, 0x52, 0x4c, 0x52, 0x21, 0xbb, 0x28, 0x65, 0x35, 0x16, 0x97, 0x55, - 0xa4, 0x48, 0xce, 0x25, 0x2f, 0x27, 0x9d, 0x15, 0x68, 0x30, 0x3c, 0x56, 0x19, 0xc7, 0x7f, 0x1a, - 0xc8, 0x75, 0x4d, 0xe4, 0x2a, 0xa5, 0x60, 0x45, 0x3c, 0xd5, 0x4b, 0x41, 0xd9, 0xeb, 0xaf, 0x1a, - 0xbd, 0xfe, 0x36, 0xcc, 0xd3, 0x98, 0xc7, 0x39, 0xeb, 0x39, 0x22, 0xc7, 0x3e, 0x3b, 0x3d, 0xc7, - 0xb6, 0x1e, 0xc9, 0x95, 0x77, 0x48, 0x9a, 0x9c, 0x79, 0xb9, 0x9c, 0xb3, 0x0f, 0x5d, 0x7a, 0x74, - 0x14, 0x06, 0x04, 0x1f, 0x64, 0xec, 0x58, 0xdc, 0x6c, 0x6b, 0xe2, 0x66, 0x73, 0x27, 0xa8, 0x7a, - 0x64, 0xae, 0xf4, 0xaa, 0xa2, 0xd7, 0xde, 0x84, 0x25, 0x7d, 0x1b, 0xee, 0x86, 0x13, 0x7c, 0xa6, - 0x62, 0x90, 0xff, 0xe4, 0xcd, 0xde, 0x29, 0x0a, 0x33, 0x79, 0x0d, 0x2c, 0x78, 0x92, 0x78, 0xd3, - 0xfe, 0xaa, 0xe5, 0xfe, 0xdc, 0x82, 0x6e, 0x65, 0x03, 0xbe, 0x3a, 0x0d, 0xd2, 0x10, 0x2b, 0x0d, - 0x92, 0x70, 0x1c, 0x98, 0xf3, 0x31, 0x1b, 0xaa, 0x10, 0x16, 0xbf, 0x55, 0x25, 0x6b, 0x14, 0xed, - 0x22, 0x7f, 0xa1, 0x7b, 0x34, 0xe0, 0x8a, 0x06, 0x34, 0x23, 0x7e, 0xf1, 0x42, 0xa7, 0xf1, 0x78, - 0x08, 0x05, 0x8f, 0x06, 0x3b, 0xc8, 0x1f, 0x61, 0xf9, 0xda, 0xd5, 0x14, 0x36, 0x99, 0x4c, 0xd7, - 0x87, 0x85, 0xc7, 0x41, 0xcc, 0x76, 0x69, 0x14, 0x71, 0x20, 0x7c, 0x9c, 0xf2, 0x5e, 0xd5, 0x12, - 0x78, 0x2b, 0x8a, 0x87, 0x8a, 0x8f, 0x8f, 0x50, 0x16, 0xa6, 0x7c, 0x69, 0x9e, 0xb8, 0x1a, 0x4b, - 0xbc, 0x70, 0x30, 0x4a, 0xf6, 0xa4, 0xb4, 0xb4, 0x53, 0xe3, 0xb8, 0x7f, 0xb6, 0x61, 0x45, 0x34, - 0x0e, 0xbb, 0x02, 0x76, 0x5f, 0x08, 0xdd, 0x82, 0xa6, 0x48, 0x43, 0xd5, 0xac, 0x9c, 0xdf, 0x6c, - 0xc8, 0xa5, 0xce, 0x6d, 0x68, 0xd1, 0x58, 0xb4, 0x9c, 0xb2, 0x43, 0x79, 0x6d, 0x9a, 0x90, 0xf9, - 0x6e, 0xe7, 0x29, 0x29, 0xe7, 0x2e, 0x80, 0x7c, 0xed, 0xdc, 0x2f, 0x4b, 0xf7, 0xac, 0x3a, 0x34, - 0x49, 0xee, 0xdc, 0xa2, 0x0c, 0x17, 0x2f, 0x78, 0x0d, 0xcf, 0x64, 0x3a, 0x0f, 0x61, 0x59, 0x98, - 0xfd, 0x28, 0xef, 0x3a, 0x05, 0x06, 0xb3, 0xef, 0x58, 0x91, 0x76, 0x7f, 0x65, 0x29, 0x37, 0xf2, - 0xa7, 0x03, 0x2c, 0x7d, 0x5f, 0xba, 0xc4, 0xba, 0x94, 0x4b, 0xae, 0xc1, 0x42, 0x94, 0x69, 0x4d, - 0x70, 0xc3, 0x2b, 0xe8, 0x12, 0xa2, 0xc6, 0xcc, 0x10, 0xb9, 0xbf, 0xb6, 0xa0, 0xf7, 0x36, 0x0d, - 0x88, 0x78, 0xb0, 0x1d, 0xc7, 0xa1, 0x9a, 0x42, 0x5c, 0x1a, 0xf3, 0x6f, 0x42, 0x1b, 0x49, 0x35, - 0x24, 0x55, 0xb0, 0xcf, 0xd0, 0xd8, 0x96, 0x32, 0x5a, 0x8f, 0xd2, 0xd0, 0x7b, 0x14, 0xf7, 0x7d, - 0x0b, 0x96, 0xa5, 0x53, 0xde, 0xc9, 0x82, 0xf4, 0xd2, 0xf6, 0xed, 0xc0, 0xc2, 0x38, 0x0b, 0xd2, - 0x4b, 0x44, 0x65, 0x21, 0x57, 0x8f, 0xa7, 0xc6, 0x84, 0x78, 0x72, 0x3f, 0xb0, 0xe0, 0x7a, 0xd5, - 0xad, 0xdb, 0xc3, 0x21, 0x8e, 0x5f, 0x64, 0x4a, 0x19, 0x3d, 0xda, 0x5c, 0xa5, 0x47, 0x9b, 0x68, - 0xb2, 0x87, 0xdf, 0xc3, 0xc3, 0xff, 0x5e, 0x93, 0x7f, 0x6c, 0xc3, 0x27, 0xef, 0x15, 0x89, 0xf7, - 0x38, 0x41, 0x84, 0x1d, 0xe1, 0x24, 0x79, 0x81, 0xf6, 0xee, 0x43, 0x87, 0xe0, 0x67, 0xa5, 0x4d, - 0x2a, 0x1d, 0x67, 0x55, 0x63, 0x0a, 0xcf, 0x56, 0xbb, 0xdc, 0x7f, 0x59, 0xb0, 0x22, 0xf5, 0x7c, - 0x2b, 0x18, 0x9e, 0xbc, 0xc0, 0xc3, 0x3f, 0x84, 0xe5, 0x13, 0x61, 0x01, 0xa7, 0x2e, 0x51, 0xb6, - 0x2b, 0xd2, 0x33, 0x1e, 0xff, 0xdf, 0x16, 0xac, 0x4a, 0x45, 0x0f, 0xc8, 0x69, 0xf0, 0x22, 0x83, - 0xf5, 0x00, 0xba, 0x81, 0x34, 0xe1, 0x92, 0x0e, 0xa8, 0x8a, 0xcf, 0xe8, 0x81, 0xdf, 0x5b, 0xd0, - 0x95, 0x9a, 0xee, 0x90, 0x14, 0x27, 0x97, 0x3e, 0xff, 0x7d, 0x58, 0xc4, 0x24, 0x4d, 0x10, 0xb9, - 0x4c, 0x85, 0xd4, 0x45, 0x67, 0x2c, 0x92, 0xef, 0x5b, 0xe0, 0x08, 0x55, 0x7b, 0x01, 0x8b, 0x02, - 0xc6, 0x5e, 0x20, 0x74, 0xb3, 0x19, 0x7c, 0x02, 0xab, 0x72, 0xe6, 0xa0, 0x95, 0x48, 0xde, 0x7c, - 0x23, 0x5f, 0xf6, 0xd3, 0x96, 0x10, 0xca, 0x49, 0x73, 0x9a, 0xa4, 0x3e, 0x07, 0x94, 0xd3, 0xa4, - 0x1b, 0x00, 0xc8, 0xf7, 0xdf, 0xa5, 0x89, 0x1f, 0x90, 0xfc, 0xbe, 0xd3, 0x38, 0xee, 0xdb, 0xb0, - 0xc4, 0xdb, 0xff, 0xc7, 0xda, 0xf4, 0xe0, 0xdc, 0xf9, 0x86, 0x3e, 0x79, 0xb0, 0xcd, 0xc9, 0x83, - 0xfb, 0x7d, 0xf8, 0x78, 0xcd, 0x70, 0xe1, 0xeb, 0x5d, 0x39, 0x14, 0xc9, 0x37, 0x51, 0x2e, 0xff, - 0xf4, 0x04, 0xef, 0xe9, 0xb6, 0x78, 0x86, 0x90, 0xfb, 0x23, 0x0b, 0x5e, 0xad, 0xa9, 0xdf, 0x8e, - 0xe3, 0x84, 0x9e, 0x2a, 0x48, 0xaf, 0x62, 0x1b, 0xf3, 0x2e, 0xb0, 0xab, 0x77, 0xc1, 0x44, 0x23, - 0x8c, 0xfb, 0xeb, 0x23, 0x30, 0xe2, 0x37, 0x16, 0x74, 0x95, 0x11, 0xbe, 0xaf, 0xb6, 0xfd, 0x0a, - 0xb4, 0xe4, 0x40, 0x55, 0x6d, 0xf8, 0xea, 0xc4, 0x0d, 0xf3, 0x41, 0xb0, 0xa7, 0x16, 0xd7, 0x23, - 0xd2, 0x9e, 0xd4, 0xb7, 0x7e, 0xad, 0x88, 0xfb, 0x99, 0x47, 0x9e, 0x4a, 0xc0, 0xfd, 0x4e, 0x1e, - 0xcc, 0x7b, 0x38, 0xc4, 0x57, 0xe9, 0x23, 0xf7, 0x09, 0x2c, 0x8b, 0xe9, 0x6e, 0xe9, 0x83, 0x2b, - 0x51, 0xfb, 0x2e, 0xac, 0x08, 0xb5, 0x57, 0x6e, 0x6f, 0x91, 0x1d, 0xdc, 0x3f, 0xbb, 0xc7, 0x88, - 0x8c, 0xae, 0x52, 0xfb, 0x17, 0x61, 0x2d, 0xf7, 0xfd, 0x93, 0xd8, 0x2f, 0xde, 0xa9, 0xa6, 0x4c, - 0x92, 0xdc, 0x2f, 0xc1, 0xfa, 0x2e, 0x25, 0xa7, 0x38, 0x61, 0x02, 0x65, 0x29, 0x92, 0x4b, 0x18, - 0xc9, 0xaf, 0x28, 0x77, 0x00, 0xab, 0x6a, 0x06, 0x7a, 0x80, 0x46, 0x01, 0x91, 0x55, 0xe9, 0x06, - 0x40, 0x8c, 0x46, 0xf9, 0x37, 0x10, 0x39, 0x28, 0xd3, 0x38, 0xfc, 0x39, 0x3b, 0xa6, 0xcf, 0xd4, - 0x73, 0x5b, 0x3e, 0x2f, 0x39, 0xee, 0xb7, 0xc1, 0xf1, 0x30, 0x8b, 0x29, 0x61, 0x58, 0xd3, 0xba, - 0x01, 0x8b, 0xbb, 0x59, 0x92, 0x60, 0xc2, 0xb7, 0xca, 0x3f, 0x08, 0xe8, 0x2c, 0xae, 0x77, 0x50, - 0xea, 0x95, 0xc3, 0x15, 0x8d, 0xe3, 0xfe, 0xb2, 0x01, 0xed, 0x41, 0x30, 0x22, 0x28, 0xf4, 0xf0, - 0xd8, 0xf9, 0x3a, 0xb4, 0xe4, 0x95, 0xa7, 0x5c, 0x3b, 0xe9, 0x65, 0x5f, 0xae, 0x96, 0x77, 0xbb, - 0x87, 0xc7, 0xf7, 0x3f, 0xe6, 0x29, 0x19, 0xe7, 0x1d, 0xe8, 0xc8, 0x5f, 0x0f, 0xe4, 0x2b, 0x8c, - 0xaa, 0xfd, 0x9f, 0xbb, 0x40, 0x89, 0x5a, 0x2d, 0x75, 0x99, 0x1a, 0xb8, 0x41, 0x43, 0x44, 0x86, - 0xea, 0x23, 0xe1, 0x79, 0x06, 0xed, 0x8a, 0x65, 0xca, 0x20, 0x29, 0xc3, 0xa5, 0x91, 0x68, 0xf2, - 0xd5, 0x67, 0x96, 0xe9, 0xd2, 0xf2, 0x5d, 0x40, 0x49, 0x4b, 0x19, 0x2e, 0x7d, 0x9c, 0x91, 0xd1, - 0x93, 0x58, 0xbd, 0x7b, 0x4e, 0x97, 0xbe, 0x2f, 0x96, 0x29, 0x69, 0x29, 0xc3, 0xa5, 0x13, 0x51, - 0xed, 0x84, 0xd3, 0xcf, 0x93, 0x96, 0x45, 0x51, 0x49, 0x4b, 0x99, 0x9d, 0x36, 0xcc, 0xc7, 0xe8, - 0x2c, 0xa4, 0xc8, 0x77, 0x7f, 0xdb, 0x00, 0xc8, 0x17, 0x32, 0x71, 0xb3, 0x1a, 0x10, 0x6d, 0x5e, - 0x08, 0x51, 0x1c, 0x9e, 0x69, 0x20, 0x0d, 0x26, 0x83, 0xf4, 0xf9, 0x59, 0x41, 0x92, 0xda, 0x2a, - 0x30, 0xdd, 0xae, 0xc0, 0xb4, 0x79, 0x21, 0x4c, 0xca, 0x28, 0x05, 0xd4, 0xed, 0x0a, 0x50, 0x9b, - 0x17, 0x02, 0xa5, 0xe4, 0x15, 0x54, 0xb7, 0x2b, 0x50, 0x6d, 0x5e, 0x08, 0x95, 0x92, 0x57, 0x60, - 0xdd, 0xae, 0x80, 0xb5, 0x79, 0x21, 0x58, 0x4a, 0xbe, 0x0e, 0xd7, 0x07, 0x36, 0x2c, 0x0b, 0x97, - 0xc9, 0x41, 0x33, 0x39, 0xa2, 0x62, 0x9e, 0x24, 0xdc, 0x65, 0x7e, 0x52, 0x33, 0x99, 0xce, 0x17, - 0x60, 0x55, 0x32, 0xd4, 0x27, 0x18, 0xd1, 0xaf, 0xda, 0x1b, 0x8d, 0x9b, 0x6d, 0xaf, 0xfe, 0x40, - 0x8c, 0x06, 0x33, 0x96, 0xd2, 0x68, 0x0f, 0xa5, 0x28, 0xef, 0x56, 0x4a, 0x8e, 0x3e, 0xb8, 0x9d, - 0xab, 0x7d, 0x92, 0x4f, 0x28, 0x8d, 0x8a, 0x89, 0xac, 0xa2, 0xb8, 0x44, 0x1a, 0x44, 0x98, 0x66, - 0xa9, 0x2a, 0x13, 0x39, 0xc9, 0xef, 0xd8, 0x08, 0xfb, 0x01, 0x12, 0xe3, 0x4e, 0xf5, 0x1d, 0xa4, - 0x60, 0x88, 0xca, 0x56, 0x8e, 0x6f, 0xd5, 0x27, 0xf3, 0x92, 0x73, 0xf1, 0xa8, 0xd5, 0xfd, 0x9b, - 0x05, 0x6b, 0x07, 0x28, 0x49, 0x83, 0x61, 0x10, 0x23, 0x92, 0xf6, 0x71, 0x8a, 0xc4, 0x19, 0x8c, - 0xef, 0x6a, 0xd6, 0x87, 0xfb, 0xae, 0x76, 0x00, 0xdd, 0x51, 0xd9, 0x5f, 0x6a, 0x5f, 0xe6, 0x66, - 0xee, 0xfd, 0x2b, 0xe2, 0xc6, 0x47, 0xc2, 0xc6, 0x87, 0xfe, 0x48, 0xe8, 0xfe, 0xd4, 0x86, 0x6e, - 0xa5, 0x74, 0xf2, 0x16, 0x51, 0x5e, 0xfe, 0x45, 0x4c, 0x14, 0xb4, 0xb3, 0x0d, 0x10, 0x14, 0x61, - 0x74, 0xce, 0xf0, 0xc6, 0x8c, 0x35, 0x4f, 0x13, 0x9a, 0x34, 0xc3, 0x6d, 0x5c, 0x7a, 0x86, 0xcb, - 0xdf, 0x46, 0xe2, 0x12, 0x24, 0x95, 0xa8, 0x93, 0xbc, 0x39, 0x01, 0x4a, 0x4f, 0x17, 0x75, 0xbf, - 0x07, 0xab, 0xb5, 0x0a, 0x25, 0x46, 0xba, 0xf4, 0x04, 0x93, 0x62, 0xa4, 0xcb, 0x09, 0x2d, 0x58, - 0xed, 0x6a, 0xb0, 0x86, 0xc1, 0xa9, 0xfe, 0x2f, 0x04, 0x45, 0xba, 0x3f, 0xb3, 0x61, 0x7d, 0xf2, - 0xed, 0xf2, 0xb2, 0xba, 0xfb, 0x10, 0x7a, 0xd3, 0x2a, 0xf9, 0x95, 0x79, 0xbd, 0x8c, 0xee, 0xe2, - 0x1e, 0x7e, 0x59, 0xdd, 0xbd, 0x96, 0x47, 0xb7, 0x76, 0xd5, 0xb9, 0xbf, 0x2b, 0xfc, 0x53, 0x74, - 0x1a, 0x2f, 0xa9, 0x7f, 0x9c, 0xd7, 0x61, 0x45, 0x1e, 0x53, 0xfb, 0xe8, 0x27, 0x1b, 0xd7, 0x1a, - 0xbf, 0xac, 0x14, 0xda, 0xb5, 0x7f, 0x65, 0x31, 0xfb, 0x27, 0x2b, 0xc7, 0xa4, 0xe8, 0xdf, 0xfe, - 0xa7, 0x30, 0x29, 0x23, 0x4d, 0x6b, 0x6a, 0xb4, 0x48, 0x2b, 0xfa, 0xca, 0xff, 0x47, 0xda, 0xc5, - 0x91, 0x56, 0xf8, 0x52, 0x6b, 0xf0, 0xdc, 0x1f, 0x42, 0x67, 0x0f, 0x87, 0x7d, 0x36, 0xca, 0xff, - 0x6e, 0x70, 0x9e, 0x23, 0xa7, 0xfd, 0xd5, 0x71, 0xea, 0x1f, 0x0d, 0xaa, 0x7f, 0x52, 0x98, 0xab, - 0xfd, 0x49, 0xc1, 0xdd, 0x81, 0x65, 0xdd, 0x80, 0xcb, 0xfc, 0xdb, 0x62, 0xe7, 0xfa, 0x77, 0xaf, - 0x6d, 0xbd, 0x21, 0xff, 0x54, 0xfb, 0x56, 0xcd, 0x89, 0x87, 0x2d, 0xf1, 0x27, 0xdb, 0x2f, 0xff, - 0x27, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x98, 0x6b, 0xf4, 0x77, 0x2b, 0x00, 0x00, + 0x6e, 0x88, 0x13, 0xff, 0x00, 0x47, 0xc4, 0x8d, 0x33, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0xfa, 0xe8, + 0xee, 0xaa, 0x6e, 0x3b, 0xf1, 0x5a, 0xd1, 0x0e, 0x68, 0xb8, 0xf9, 0xbd, 0xae, 0xf7, 0xea, 0xd5, + 0xef, 0x7d, 0xd4, 0xab, 0x2a, 0x43, 0x87, 0xf9, 0xa7, 0x4f, 0x9f, 0xb1, 0x37, 0x9e, 0xb1, 0xed, + 0x28, 0xa6, 0x09, 0x75, 0xd6, 0x18, 0x8e, 0xcf, 0x70, 0xfc, 0x14, 0x45, 0xc1, 0xd3, 0x08, 0xc5, + 0x68, 0xc4, 0xdc, 0x7f, 0xd8, 0xd0, 0xbc, 0x17, 0xd3, 0x34, 0x7a, 0x40, 0x8e, 0xa9, 0xd3, 0x85, + 0xc5, 0xa1, 0x20, 0xf6, 0xbb, 0xd6, 0xa6, 0x75, 0xb3, 0xe9, 0x65, 0xa4, 0x73, 0x1d, 0x9a, 0xe2, + 0xe7, 0x43, 0x34, 0xc2, 0x5d, 0x5b, 0x7c, 0x2b, 0x18, 0x8e, 0x0b, 0xcb, 0x84, 0x26, 0xc1, 0x71, + 0x30, 0x40, 0x49, 0x40, 0x49, 0xb7, 0x26, 0x06, 0x18, 0x3c, 0x3e, 0x26, 0x20, 0x49, 0x4c, 0xfd, + 0x74, 0x20, 0xc6, 0x2c, 0xc8, 0x31, 0x3a, 0x8f, 0xcf, 0x7f, 0x8c, 0x06, 0xf8, 0x89, 0x77, 0xd0, + 0xad, 0xcb, 0xf9, 0x15, 0xe9, 0x6c, 0x42, 0x8b, 0x3e, 0x23, 0x38, 0x7e, 0xc2, 0x70, 0xfc, 0x60, + 0xbf, 0xdb, 0x10, 0x5f, 0x75, 0x96, 0x73, 0x03, 0x60, 0x10, 0x63, 0x94, 0xe0, 0xc7, 0xc1, 0x08, + 0x77, 0x17, 0x37, 0xad, 0x9b, 0x6d, 0x4f, 0xe3, 0x70, 0x0d, 0x23, 0x3c, 0x3a, 0xc2, 0xf1, 0x1e, + 0x4d, 0x49, 0xd2, 0x5d, 0x12, 0x03, 0x74, 0x96, 0xb3, 0x02, 0x36, 0x7e, 0xde, 0x6d, 0x0a, 0xd5, + 0x36, 0x7e, 0xee, 0x6c, 0x40, 0x83, 0x25, 0x28, 0x49, 0x59, 0x17, 0x36, 0xad, 0x9b, 0x75, 0x4f, + 0x51, 0xce, 0x16, 0xb4, 0x85, 0x5e, 0x9a, 0x59, 0xd3, 0x12, 0x22, 0x26, 0x33, 0x47, 0xec, 0xf1, + 0x79, 0x84, 0xbb, 0xcb, 0x42, 0x41, 0xc1, 0x70, 0xff, 0x62, 0xc3, 0xba, 0xc0, 0xbd, 0x27, 0x0c, + 0xb8, 0x9b, 0x86, 0xe1, 0x25, 0x1e, 0xd8, 0x80, 0x46, 0x2a, 0xa7, 0x93, 0xf0, 0x2b, 0x8a, 0xcf, + 0x13, 0xd3, 0x10, 0x1f, 0xe0, 0x33, 0x1c, 0x0a, 0xe0, 0xeb, 0x5e, 0xc1, 0x70, 0xae, 0xc1, 0xd2, + 0x7b, 0x34, 0x20, 0x02, 0x93, 0x05, 0xf1, 0x31, 0xa7, 0xf9, 0x37, 0x12, 0x0c, 0x4e, 0x09, 0x77, + 0xa9, 0x84, 0x3b, 0xa7, 0x75, 0x4f, 0x34, 0x4c, 0x4f, 0xbc, 0x06, 0x2b, 0x28, 0x8a, 0x7a, 0x88, + 0x0c, 0x71, 0x2c, 0x27, 0x5d, 0x14, 0x7a, 0x4b, 0x5c, 0xee, 0x0f, 0x3e, 0x53, 0x9f, 0xa6, 0xf1, + 0x00, 0x0b, 0xb8, 0xeb, 0x9e, 0xc6, 0xe1, 0x7a, 0x68, 0x84, 0x63, 0x0d, 0x46, 0x89, 0x7c, 0x89, + 0xab, 0xbc, 0x02, 0xb9, 0x57, 0xb8, 0x1f, 0xd3, 0x04, 0xdf, 0x21, 0xbe, 0x58, 0x54, 0x4b, 0xf9, + 0xb1, 0x60, 0xb9, 0x3f, 0xb1, 0x60, 0xe5, 0x30, 0x3d, 0x0a, 0x83, 0x81, 0x50, 0xc1, 0x61, 0x2d, + 0xc0, 0xb3, 0x0c, 0xf0, 0x74, 0x08, 0xec, 0xe9, 0x10, 0xd4, 0x4c, 0x08, 0x36, 0xa0, 0x31, 0xc4, + 0xc4, 0xc7, 0xb1, 0x82, 0x54, 0x51, 0xca, 0xd4, 0x7a, 0x66, 0xaa, 0xfb, 0x0b, 0x1b, 0x96, 0x3e, + 0x62, 0x13, 0x36, 0xa1, 0x15, 0x9d, 0x50, 0x82, 0x1f, 0xa6, 0x3c, 0xac, 0x94, 0x2d, 0x3a, 0xcb, + 0x79, 0x05, 0xea, 0x47, 0x41, 0x9c, 0x9c, 0x08, 0xbf, 0xb6, 0x3d, 0x49, 0x70, 0x2e, 0x1e, 0xa1, + 0x40, 0x3a, 0xb3, 0xe9, 0x49, 0x42, 0x2d, 0x68, 0x29, 0xc7, 0xde, 0xcc, 0xb1, 0x66, 0x25, 0xc7, + 0xaa, 0xb1, 0x01, 0x93, 0x62, 0xc3, 0xfd, 0xa7, 0x05, 0x70, 0x37, 0x0e, 0x30, 0xf1, 0x05, 0x34, + 0xa5, 0xe4, 0xb6, 0xaa, 0xc9, 0xbd, 0x01, 0x8d, 0x18, 0x8f, 0x50, 0x7c, 0x9a, 0x05, 0xbf, 0xa4, + 0x4a, 0x06, 0xd5, 0x2a, 0x06, 0xbd, 0x05, 0x70, 0x2c, 0xe6, 0xe1, 0x7a, 0x04, 0x54, 0xad, 0x5b, + 0x9f, 0xda, 0xae, 0x94, 0xc1, 0xed, 0xcc, 0x4b, 0x9e, 0x36, 0x9c, 0x67, 0x16, 0xf2, 0x7d, 0x15, + 0xc0, 0x75, 0x99, 0x59, 0x39, 0x63, 0x42, 0xfc, 0x36, 0x2e, 0x88, 0xdf, 0xc5, 0x3c, 0x28, 0xfe, + 0x6e, 0x41, 0x73, 0x37, 0x44, 0x83, 0xd3, 0x19, 0x97, 0x6e, 0x2e, 0xd1, 0xae, 0x2c, 0xf1, 0x1e, + 0xb4, 0x8f, 0xb8, 0xba, 0x6c, 0x09, 0x02, 0x85, 0xd6, 0xad, 0xcf, 0x4c, 0x58, 0xa5, 0x99, 0x14, + 0x9e, 0x29, 0x67, 0x2e, 0x77, 0xe1, 0xf2, 0xe5, 0xd6, 0x2f, 0x58, 0x6e, 0x23, 0x5f, 0xee, 0x9f, + 0x6d, 0x58, 0x16, 0x85, 0xce, 0xc3, 0xe3, 0x14, 0xb3, 0xc4, 0xf9, 0x06, 0x2c, 0xa5, 0x99, 0xa9, + 0xd6, 0xac, 0xa6, 0xe6, 0x22, 0xce, 0x9b, 0xaa, 0xac, 0x0a, 0x79, 0x5b, 0xc8, 0x5f, 0x9f, 0x20, + 0x9f, 0xef, 0x69, 0x5e, 0x31, 0x9c, 0x6f, 0x41, 0x27, 0x88, 0xf8, 0x21, 0xf6, 0x30, 0x4b, 0xc3, + 0x44, 0x55, 0x4b, 0x83, 0x27, 0x23, 0x6d, 0xdc, 0x63, 0x43, 0xb5, 0x41, 0x29, 0x8a, 0xa3, 0x23, + 0xc7, 0xf1, 0x4f, 0x72, 0xe9, 0x05, 0x83, 0x27, 0x6a, 0x8c, 0xc7, 0xc2, 0x43, 0x32, 0xad, 0x32, + 0xb2, 0x98, 0x53, 0xa1, 0x26, 0x03, 0xc1, 0xe0, 0x71, 0x17, 0x4b, 0x5a, 0x28, 0x90, 0x3b, 0x93, + 0xc6, 0x29, 0x6f, 0x4c, 0xee, 0x5f, 0x6b, 0xd0, 0x96, 0xe9, 0x93, 0x81, 0x7a, 0x83, 0xc7, 0x39, + 0x1d, 0x19, 0x51, 0xa4, 0x71, 0xb8, 0x15, 0x9c, 0x7a, 0x68, 0x16, 0x1a, 0x83, 0xc7, 0x43, 0x91, + 0xd3, 0x77, 0x8d, 0x82, 0xa3, 0xb3, 0xb2, 0x59, 0xee, 0xe9, 0x85, 0x47, 0xe3, 0xf0, 0x52, 0x96, + 0x50, 0x23, 0x3a, 0x72, 0x9a, 0xcb, 0x26, 0x34, 0x9f, 0x5f, 0xc6, 0x87, 0xc6, 0xe1, 0xf8, 0x26, + 0x34, 0x9b, 0x5b, 0x82, 0x54, 0x30, 0xa4, 0x66, 0x35, 0xaf, 0xdc, 0x4a, 0x72, 0xba, 0xe2, 0xd5, + 0xe6, 0x85, 0x5e, 0x05, 0xc3, 0xab, 0x66, 0x72, 0xb5, 0x2a, 0xc9, 0xb5, 0x05, 0x6d, 0xa9, 0x27, + 0x0b, 0xfa, 0x65, 0xb9, 0xd5, 0x1b, 0x4c, 0x33, 0x36, 0xda, 0xe5, 0xd8, 0x30, 0xbd, 0xbb, 0x32, + 0xc5, 0xbb, 0x9d, 0xdc, 0xbb, 0x3f, 0x80, 0xee, 0x61, 0x1a, 0x86, 0x3d, 0xcc, 0x18, 0x1a, 0xe2, + 0xdd, 0xf3, 0x3e, 0x1e, 0x1f, 0x04, 0x2c, 0xf1, 0x30, 0x8b, 0x78, 0x9c, 0xe1, 0x38, 0xde, 0xa3, + 0x3e, 0x16, 0x4e, 0xae, 0x7b, 0x19, 0xc9, 0x57, 0x88, 0xe3, 0x98, 0x1b, 0xa0, 0x2a, 0xa4, 0xa4, + 0x9c, 0x6d, 0x58, 0x08, 0x03, 0xc6, 0x63, 0xbd, 0x76, 0xb3, 0x75, 0xeb, 0xda, 0x84, 0x54, 0xe9, + 0xb1, 0xe1, 0x3e, 0x4a, 0x90, 0x27, 0xc6, 0xb9, 0x23, 0xf8, 0xc4, 0xe4, 0xd9, 0xc7, 0x53, 0x77, + 0x30, 0x5e, 0xc3, 0x44, 0x11, 0x08, 0x28, 0xc9, 0xdb, 0x13, 0x9d, 0xc5, 0xcd, 0x66, 0x52, 0x8f, + 0xb0, 0xa3, 0xed, 0x65, 0xa4, 0xfb, 0x0a, 0x38, 0xf7, 0x70, 0xd2, 0x43, 0xcf, 0x77, 0x88, 0xdf, + 0x0b, 0x48, 0x1f, 0x8f, 0x3d, 0x3c, 0x76, 0xef, 0xc0, 0x7a, 0x85, 0xcb, 0x22, 0x6e, 0xc0, 0x08, + 0x3d, 0xef, 0xe3, 0xb1, 0x30, 0xa0, 0xed, 0x29, 0x4a, 0xf0, 0xc5, 0x28, 0x55, 0x1e, 0x15, 0xe5, + 0x8e, 0xa1, 0xc3, 0x3d, 0xd4, 0xc7, 0xc4, 0xef, 0xb1, 0xa1, 0x50, 0xb1, 0x09, 0x2d, 0x89, 0x40, + 0x8f, 0x0d, 0x8b, 0x7a, 0xab, 0xb1, 0xf8, 0x88, 0x41, 0x18, 0x60, 0x92, 0xc8, 0x11, 0x6a, 0x35, + 0x1a, 0x8b, 0x07, 0x23, 0xc3, 0xaa, 0xfd, 0xe0, 0x59, 0x52, 0xf3, 0x72, 0xda, 0xfd, 0x43, 0x1d, + 0x16, 0x15, 0xa0, 0xa2, 0x7f, 0xe4, 0x5b, 0x5c, 0x8e, 0x97, 0xa4, 0x64, 0x30, 0x0e, 0xce, 0x8a, + 0x4e, 0x4e, 0x52, 0x7a, 0xef, 0x57, 0x33, 0x7b, 0xbf, 0x92, 0x4d, 0x0b, 0x55, 0x9b, 0x4a, 0xeb, + 0xaa, 0x57, 0xd7, 0xf5, 0x3a, 0xac, 0x32, 0x91, 0x30, 0x87, 0x21, 0x4a, 0x8e, 0x69, 0x3c, 0x52, + 0x3b, 0x56, 0xdd, 0xab, 0xf0, 0x79, 0xb1, 0x97, 0xbc, 0x3c, 0x61, 0x65, 0x46, 0x96, 0xb8, 0x3c, + 0x3d, 0x24, 0x27, 0x4b, 0x5c, 0xd9, 0x2a, 0x98, 0x4c, 0x69, 0x1b, 0x63, 0x01, 0x25, 0xa2, 0x17, + 0x96, 0xf9, 0xa9, 0xb3, 0xf8, 0xca, 0x47, 0x6c, 0x78, 0x37, 0xa6, 0x23, 0xd5, 0x30, 0x64, 0xa4, + 0x58, 0x39, 0x25, 0x09, 0x26, 0x89, 0x90, 0x6d, 0x49, 0x59, 0x8d, 0xc5, 0x65, 0x15, 0x29, 0x92, + 0x73, 0xd9, 0xcb, 0x48, 0x67, 0x15, 0x6a, 0x0c, 0x8f, 0x55, 0xc6, 0xf1, 0x9f, 0x86, 0xe7, 0x3a, + 0xa6, 0xe7, 0x4a, 0xa5, 0x60, 0x55, 0x7c, 0xd5, 0x4b, 0x41, 0x71, 0x1a, 0x58, 0x33, 0x4e, 0x03, + 0x3b, 0xb0, 0x48, 0x23, 0x1e, 0xe7, 0xac, 0xeb, 0x88, 0x1c, 0xfb, 0xec, 0xf4, 0x1c, 0xdb, 0x7e, + 0x24, 0x47, 0xde, 0x21, 0x49, 0x7c, 0xee, 0x65, 0x72, 0xce, 0x01, 0x74, 0xe8, 0xf1, 0x71, 0x18, + 0x10, 0x7c, 0x98, 0xb2, 0x13, 0xb1, 0xb3, 0xad, 0x8b, 0x9d, 0xcd, 0x9d, 0xa0, 0xea, 0x91, 0x39, + 0xd2, 0x2b, 0x8b, 0x5e, 0x7b, 0x13, 0x96, 0xf5, 0x69, 0x38, 0x0c, 0xa7, 0xf8, 0x5c, 0xc5, 0x20, + 0xff, 0xc9, 0x9b, 0xbd, 0x33, 0x14, 0xa6, 0x72, 0x1b, 0x58, 0xf2, 0x24, 0xf1, 0xa6, 0xfd, 0x55, + 0xcb, 0xfd, 0xb9, 0x05, 0x9d, 0xd2, 0x04, 0x7c, 0x74, 0x12, 0x24, 0x21, 0x56, 0x1a, 0x24, 0xe1, + 0x38, 0xb0, 0xe0, 0x63, 0x36, 0x50, 0x21, 0x2c, 0x7e, 0xab, 0x4a, 0x56, 0xcb, 0xdb, 0x45, 0x7e, + 0xe4, 0x7b, 0xd4, 0xe7, 0x8a, 0xfa, 0x34, 0x25, 0x7e, 0x7e, 0xe4, 0xd3, 0x78, 0x3c, 0x84, 0x82, + 0x47, 0xfd, 0x5d, 0xe4, 0x0f, 0xb1, 0x3c, 0x98, 0xd5, 0x85, 0x4d, 0x26, 0xd3, 0xf5, 0x61, 0xe9, + 0x71, 0x10, 0xb1, 0x3d, 0x3a, 0x1a, 0x71, 0x47, 0xf8, 0x38, 0xe1, 0xbd, 0xaa, 0x25, 0xfc, 0xad, + 0x28, 0x1e, 0x2a, 0x3e, 0x3e, 0x46, 0x69, 0x98, 0xf0, 0xa1, 0x59, 0xe2, 0x6a, 0x2c, 0x71, 0x24, + 0x61, 0x94, 0xec, 0x4b, 0x69, 0x69, 0xa7, 0xc6, 0x71, 0xff, 0x64, 0xc3, 0xaa, 0x68, 0x1c, 0xf6, + 0x84, 0xdb, 0x7d, 0x21, 0x74, 0x0b, 0xea, 0x22, 0x0d, 0x55, 0xb3, 0x72, 0x71, 0xb3, 0x21, 0x87, + 0x3a, 0xb7, 0xa1, 0x41, 0x23, 0xd1, 0x72, 0xca, 0x0e, 0xe5, 0xb5, 0x69, 0x42, 0xe6, 0xe9, 0xcf, + 0x53, 0x52, 0xce, 0x5d, 0x00, 0x79, 0x30, 0x3d, 0x28, 0x4a, 0xf7, 0xac, 0x3a, 0x34, 0x49, 0x0e, + 0x6e, 0x5e, 0x86, 0xf3, 0x23, 0x60, 0xcd, 0x33, 0x99, 0xce, 0x43, 0x58, 0x11, 0x66, 0x3f, 0xca, + 0xba, 0x4e, 0xe1, 0x83, 0xd9, 0x67, 0x2c, 0x49, 0xbb, 0xbf, 0xb2, 0x14, 0x8c, 0xfc, 0x6b, 0x1f, + 0x4b, 0xec, 0x0b, 0x48, 0xac, 0xb9, 0x20, 0xb9, 0x06, 0x4b, 0xfc, 0x8c, 0x97, 0x37, 0xc1, 0x35, + 0x2f, 0xa7, 0x0b, 0x17, 0xd5, 0x66, 0x76, 0x91, 0xfb, 0x6b, 0x0b, 0xba, 0x6f, 0xd3, 0x80, 0x88, + 0x0f, 0x3b, 0x51, 0x14, 0xaa, 0x7b, 0x8a, 0xb9, 0x7d, 0xfe, 0x4d, 0x68, 0x22, 0xa9, 0x86, 0x24, + 0xca, 0xed, 0x33, 0x34, 0xb6, 0x85, 0x8c, 0xd6, 0xa3, 0xd4, 0xf4, 0x1e, 0xc5, 0x7d, 0xdf, 0x82, + 0x15, 0x09, 0xca, 0x3b, 0x69, 0x90, 0xcc, 0x6d, 0xdf, 0x2e, 0x2c, 0x8d, 0xd3, 0x20, 0x99, 0x23, + 0x2a, 0x73, 0xb9, 0x6a, 0x3c, 0xd5, 0x26, 0xc4, 0x93, 0xfb, 0x81, 0x05, 0xd7, 0xcb, 0xb0, 0xee, + 0x0c, 0x06, 0x38, 0x7a, 0x91, 0x29, 0x65, 0xf4, 0x68, 0x0b, 0xa5, 0x1e, 0x6d, 0xa2, 0xc9, 0x1e, + 0x7e, 0x0f, 0x0f, 0xfe, 0x7b, 0x4d, 0xfe, 0xb1, 0x0d, 0x9f, 0xbc, 0x97, 0x27, 0xde, 0xe3, 0x18, + 0x11, 0x76, 0x8c, 0xe3, 0xf8, 0x05, 0xda, 0x7b, 0x00, 0x6d, 0x82, 0x9f, 0x15, 0x36, 0xa9, 0x74, + 0x9c, 0x55, 0x8d, 0x29, 0x3c, 0x5b, 0xed, 0x72, 0xff, 0x65, 0xc1, 0xaa, 0xd4, 0xf3, 0xad, 0x60, + 0x70, 0xfa, 0x02, 0x17, 0xff, 0x10, 0x56, 0x4e, 0x85, 0x05, 0x9c, 0x9a, 0xa3, 0x6c, 0x97, 0xa4, + 0x67, 0x5c, 0xfe, 0xbf, 0x2d, 0x58, 0x93, 0x8a, 0x1e, 0x90, 0xb3, 0xe0, 0x45, 0x06, 0xeb, 0x21, + 0x74, 0x02, 0x69, 0xc2, 0x9c, 0x00, 0x94, 0xc5, 0x67, 0x44, 0xe0, 0xf7, 0x16, 0x74, 0xa4, 0xa6, + 0x3b, 0x24, 0xc1, 0xf1, 0xdc, 0xeb, 0xbf, 0x0f, 0x2d, 0x4c, 0x92, 0x18, 0x91, 0x79, 0x2a, 0xa4, + 0x2e, 0x3a, 0x63, 0x91, 0x7c, 0xdf, 0x02, 0x47, 0xa8, 0xda, 0x0f, 0xd8, 0x28, 0x60, 0xec, 0x05, + 0xba, 0x6e, 0x36, 0x83, 0x4f, 0x61, 0x4d, 0xde, 0x39, 0x68, 0x25, 0x92, 0x37, 0xdf, 0xc8, 0x97, + 0xfd, 0xb4, 0x25, 0x84, 0x32, 0xd2, 0xbc, 0x4d, 0x52, 0x0f, 0x06, 0xc5, 0x6d, 0xd2, 0x0d, 0x00, + 0xe4, 0xfb, 0xef, 0xd2, 0xd8, 0x0f, 0x48, 0xb6, 0xdf, 0x69, 0x1c, 0xf7, 0x6d, 0x58, 0xe6, 0xed, + 0xff, 0x63, 0xed, 0xf6, 0xe0, 0xc2, 0xfb, 0x0d, 0xfd, 0xe6, 0xc1, 0x36, 0x6f, 0x1e, 0xdc, 0xef, + 0xc3, 0xc7, 0x2b, 0x86, 0x0b, 0xac, 0xf7, 0xe4, 0xa5, 0x48, 0x36, 0x89, 0x82, 0xfc, 0xd3, 0x13, + 0xd0, 0xd3, 0x6d, 0xf1, 0x0c, 0x21, 0xf7, 0x47, 0x16, 0xbc, 0x5a, 0x51, 0xbf, 0x13, 0x45, 0x31, + 0x3d, 0x53, 0x2e, 0xbd, 0x8a, 0x69, 0xcc, 0xbd, 0xc0, 0x2e, 0xef, 0x05, 0x13, 0x8d, 0x30, 0xf6, + 0xaf, 0x8f, 0xc0, 0x88, 0xdf, 0x58, 0xd0, 0x51, 0x46, 0xf8, 0xbe, 0x9a, 0xf6, 0x2b, 0xd0, 0x90, + 0x17, 0xaa, 0x6a, 0xc2, 0x57, 0x27, 0x4e, 0x98, 0x5d, 0x04, 0x7b, 0x6a, 0x70, 0x35, 0x22, 0xed, + 0x49, 0x7d, 0xeb, 0xd7, 0xf2, 0xb8, 0x9f, 0xf9, 0xca, 0x53, 0x09, 0xb8, 0xdf, 0xc9, 0x82, 0x79, + 0x1f, 0x87, 0xf8, 0x2a, 0x31, 0x72, 0x9f, 0xc0, 0x8a, 0xb8, 0xdd, 0x2d, 0x30, 0xb8, 0x12, 0xb5, + 0xef, 0xc2, 0xaa, 0x50, 0x7b, 0xe5, 0xf6, 0xe6, 0xd9, 0xc1, 0xf1, 0xd9, 0x3b, 0x41, 0x64, 0x78, + 0x95, 0xda, 0xbf, 0x08, 0xeb, 0x19, 0xf6, 0x4f, 0x22, 0x3f, 0x3f, 0x53, 0x4d, 0xb9, 0x49, 0x72, + 0xbf, 0x04, 0x1b, 0x7b, 0x94, 0x9c, 0xe1, 0x98, 0x09, 0x2f, 0x4b, 0x91, 0x4c, 0xc2, 0x48, 0x7e, + 0x45, 0xb9, 0x7d, 0x58, 0x53, 0x77, 0xa0, 0x87, 0x68, 0x18, 0x10, 0x59, 0x95, 0x6e, 0x00, 0x44, + 0x68, 0x98, 0xbd, 0x81, 0xc8, 0x8b, 0x32, 0x8d, 0xc3, 0xbf, 0xb3, 0x13, 0xfa, 0x4c, 0x7d, 0xb7, + 0xe5, 0xf7, 0x82, 0xe3, 0x7e, 0x1b, 0x1c, 0x0f, 0xb3, 0x88, 0x12, 0x86, 0x35, 0xad, 0x9b, 0xd0, + 0xda, 0x4b, 0xe3, 0x18, 0x13, 0x3e, 0x55, 0xf6, 0x20, 0xa0, 0xb3, 0xb8, 0xde, 0x7e, 0xa1, 0x57, + 0x5e, 0xae, 0x68, 0x1c, 0xf7, 0x97, 0x35, 0x68, 0xf6, 0x83, 0x21, 0x41, 0xa1, 0x87, 0xc7, 0xce, + 0xd7, 0xa1, 0x21, 0xb7, 0x3c, 0x05, 0xed, 0xa4, 0xc3, 0xbe, 0x1c, 0x2d, 0xf7, 0x76, 0x0f, 0x8f, + 0xef, 0x7f, 0xcc, 0x53, 0x32, 0xce, 0x3b, 0xd0, 0x96, 0xbf, 0x1e, 0xc8, 0x23, 0x8c, 0xaa, 0xfd, + 0x9f, 0xbb, 0x44, 0x89, 0x1a, 0x2d, 0x75, 0x99, 0x1a, 0xb8, 0x41, 0x03, 0x44, 0x06, 0xea, 0x19, + 0xf1, 0x22, 0x83, 0xf6, 0xc4, 0x30, 0x65, 0x90, 0x94, 0xe1, 0xd2, 0x48, 0x34, 0xf9, 0xea, 0x99, + 0x65, 0xba, 0xb4, 0x3c, 0x0b, 0x28, 0x69, 0x29, 0xc3, 0xa5, 0x4f, 0x52, 0x32, 0x7c, 0x12, 0xa9, + 0xb3, 0xe7, 0x74, 0xe9, 0xfb, 0x62, 0x98, 0x92, 0x96, 0x32, 0x5c, 0x3a, 0x16, 0xd5, 0x4e, 0x80, + 0x7e, 0x91, 0xb4, 0x2c, 0x8a, 0x4a, 0x5a, 0xca, 0xec, 0x36, 0x61, 0x31, 0x42, 0xe7, 0x21, 0x45, + 0xbe, 0xfb, 0xdb, 0x1a, 0x40, 0x36, 0x90, 0x89, 0x9d, 0xd5, 0x70, 0xd1, 0xd6, 0xa5, 0x2e, 0x8a, + 0xc2, 0x73, 0xcd, 0x49, 0xfd, 0xc9, 0x4e, 0xfa, 0xfc, 0xac, 0x4e, 0x92, 0xda, 0x4a, 0x6e, 0xba, + 0x5d, 0x72, 0xd3, 0xd6, 0xa5, 0x6e, 0x52, 0x46, 0x29, 0x47, 0xdd, 0x2e, 0x39, 0x6a, 0xeb, 0x52, + 0x47, 0x29, 0x79, 0xe5, 0xaa, 0xdb, 0x25, 0x57, 0x6d, 0x5d, 0xea, 0x2a, 0x25, 0xaf, 0x9c, 0x75, + 0xbb, 0xe4, 0xac, 0xad, 0x4b, 0x9d, 0xa5, 0xe4, 0xab, 0xee, 0xfa, 0xc0, 0x86, 0x15, 0x01, 0x99, + 0xbc, 0x68, 0x26, 0xc7, 0x54, 0xdc, 0x27, 0x09, 0xb8, 0xcc, 0x27, 0x35, 0x93, 0xe9, 0x7c, 0x01, + 0xd6, 0x24, 0x43, 0x3d, 0xc1, 0x88, 0x7e, 0xd5, 0xde, 0xac, 0xdd, 0x6c, 0x7a, 0xd5, 0x0f, 0xe2, + 0x6a, 0x30, 0x65, 0x09, 0x1d, 0xed, 0xa3, 0x04, 0x65, 0xdd, 0x4a, 0xc1, 0xd1, 0x2f, 0x6e, 0x17, + 0x2a, 0x8f, 0xf6, 0x31, 0xa5, 0xa3, 0xfc, 0x46, 0x56, 0x51, 0x5c, 0x22, 0x09, 0x46, 0x98, 0xa6, + 0x89, 0x2a, 0x13, 0x19, 0xc9, 0xf7, 0xd8, 0x11, 0xf6, 0x03, 0x24, 0xae, 0x3b, 0xd5, 0x3b, 0x48, + 0xce, 0x10, 0x95, 0xad, 0xb8, 0xbe, 0x55, 0x8f, 0xea, 0x05, 0xe7, 0xf2, 0xab, 0x56, 0xf7, 0x6f, + 0x16, 0xac, 0x1f, 0xa2, 0x38, 0x09, 0x06, 0x41, 0x84, 0x48, 0xd2, 0xc3, 0x09, 0x12, 0x6b, 0x30, + 0xde, 0xd5, 0xac, 0x0f, 0xf7, 0xae, 0x76, 0x08, 0x9d, 0x61, 0xd1, 0x5f, 0x6a, 0x2f, 0x73, 0x33, + 0xf7, 0xfe, 0x25, 0x71, 0xe3, 0x91, 0xb0, 0xf6, 0xa1, 0x1f, 0x09, 0xdd, 0x9f, 0xda, 0xd0, 0x29, + 0x95, 0x4e, 0xde, 0x22, 0xca, 0xcd, 0x3f, 0x8f, 0x89, 0x9c, 0x76, 0x76, 0x00, 0x82, 0x3c, 0x8c, + 0x2e, 0xb8, 0xbc, 0x31, 0x63, 0xcd, 0xd3, 0x84, 0x26, 0xdd, 0xe1, 0xd6, 0xe6, 0xbe, 0xc3, 0xe5, + 0xa7, 0x91, 0xa8, 0x70, 0x92, 0x4a, 0xd4, 0x49, 0x68, 0x4e, 0x70, 0xa5, 0xa7, 0x8b, 0xba, 0xdf, + 0x83, 0xb5, 0x4a, 0x85, 0x12, 0x57, 0xba, 0xf4, 0x14, 0x93, 0xfc, 0x4a, 0x97, 0x13, 0x5a, 0xb0, + 0xda, 0xe5, 0x60, 0x0d, 0x83, 0x33, 0xfd, 0x5f, 0x08, 0x8a, 0x74, 0x7f, 0x66, 0xc3, 0xc6, 0xe4, + 0xdd, 0xe5, 0x65, 0x85, 0xfb, 0x08, 0xba, 0xd3, 0x2a, 0xf9, 0x95, 0xa1, 0x5e, 0x44, 0x77, 0xbe, + 0x0f, 0xbf, 0xac, 0x70, 0xaf, 0x67, 0xd1, 0xad, 0x6d, 0x75, 0xee, 0xef, 0x72, 0x7c, 0xf2, 0x4e, + 0xe3, 0x25, 0xc5, 0xc7, 0x79, 0x1d, 0x56, 0xe5, 0x32, 0xb5, 0x47, 0x3f, 0xd9, 0xb8, 0x56, 0xf8, + 0x45, 0xa5, 0xd0, 0xb6, 0xfd, 0x2b, 0x8b, 0xd9, 0x3f, 0x5a, 0x99, 0x4f, 0xf2, 0xfe, 0xed, 0x7f, + 0xca, 0x27, 0x45, 0xa4, 0x69, 0x4d, 0x8d, 0x16, 0x69, 0x79, 0x5f, 0xf9, 0xff, 0x48, 0xbb, 0x3c, + 0xd2, 0x72, 0x2c, 0xb5, 0x06, 0xcf, 0xfd, 0x21, 0xb4, 0xf7, 0x71, 0xd8, 0x63, 0xc3, 0xec, 0xef, + 0x06, 0x17, 0x01, 0x39, 0xed, 0xcf, 0x90, 0x53, 0xff, 0x68, 0x50, 0xfe, 0x93, 0xc2, 0x42, 0xe5, + 0x4f, 0x0a, 0xee, 0x2e, 0xac, 0xe8, 0x06, 0xcc, 0xf3, 0x6f, 0x8b, 0xdd, 0xeb, 0xdf, 0xbd, 0xb6, + 0xfd, 0x86, 0xfc, 0xdb, 0xed, 0x5b, 0x15, 0x10, 0x8f, 0x1a, 0xe2, 0x6f, 0xb8, 0x5f, 0xfe, 0x4f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x1a, 0xc5, 0xce, 0x99, 0x2b, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5c54da954..71b65611f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -32,6 +32,7 @@ message GroupMemberFullInfo { int32 joinSource = 8; string operatorUserID = 9; string ex = 10; + uint32 muteEndTime = 11; } message PublicUserInfo{ From 1286f9dcb6fe5ee1893de7ae2f36a543cd55a4d8 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 09:34:45 +0800 Subject: [PATCH 20/28] mute group --- cmd/Open-IM-SDK-Core | 2 +- internal/rpc/group/group.go | 47 +++++++++++++++++++ .../im_mysql_model/group_member_model.go | 11 +++++ .../mysql_model/im_mysql_model/group_model.go | 22 +++++---- pkg/common/utils/utils.go | 1 + 5 files changed, 74 insertions(+), 9 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index a6e91454f..65f2ba789 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit a6e91454f2cd72d7229f3b2d884d812d5fde1694 +Subproject commit 65f2ba78952e72f3f07590634e4e3e38897ead1e diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fb90ef7c5..6d9b9d910 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -961,3 +961,50 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } + +// rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); +// rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); +// rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); +// rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); + +func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} + groupMemberInfo.MuteEndTime = time.Unix(int64(time.Now().Second())+int64(req.MutedSeconds), 0) + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} + groupMemberInfo.MuteEndTime = time.Unix(0, 0) + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) { + return nil, nil +} + +func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { + return nil, nil +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index f944f0396..a8fe5ed56 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -30,6 +30,9 @@ func InsertIntoGroupMember(toInsertInfo db.GroupMember) error { if toInsertInfo.RoleLevel == 0 { toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers } + if toInsertInfo.MuteEndTime.Unix() == 0 { + toInsertInfo.MuteEndTime = time.Unix(0, 0) + } err = dbConn.Table("group_members").Create(toInsertInfo).Error if err != nil { return err @@ -267,6 +270,14 @@ func GetGroupMembersCount(groupId, userName string) (int32, error) { return count, nil } +func UpdateGroupMemberInfoDefaultZero(groupMemberInfo db.GroupMember, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + return dbConn.Model(groupMemberInfo).Updates(args).Error +} + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string 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 587e3672e..2d1d0e4db 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 @@ -57,7 +57,6 @@ func SetGroupInfo(groupInfo db.Group) error { if err != nil { return err } - dbConn.LogMode(true) err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } @@ -68,7 +67,7 @@ func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group if err != nil { return groups, err } - dbConn.LogMode(true) + err = dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error return groups, err } @@ -79,7 +78,7 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { if err != nil { return groups, err } - dbConn.LogMode(true) + if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil { return groups, err } @@ -102,7 +101,7 @@ func DeleteGroup(groupId string) error { if err != nil { return err } - dbConn.LogMode(true) + var group db.Group var groupMembers []db.GroupMember if err := dbConn.Table("groups").Where("group_id=?", groupId).Delete(&group).Error; err != nil { @@ -119,7 +118,6 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, if err != nil { return "", "", err } - dbConn.LogMode(true) groupMember := db.GroupMember{ UserID: userId, GroupID: groupId, @@ -182,7 +180,7 @@ func GetGroupsCountNum(group db.Group) (int32, error) { if err != nil { return 0, err } - dbConn.LogMode(true) + var count int32 if err := dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil { return 0, err @@ -198,7 +196,7 @@ func GetGroupById(groupId string) (db.Group, error) { if err != nil { return group, err } - dbConn.LogMode(true) + if err := dbConn.Table("groups").Find(&group).Error; err != nil { return group, err } @@ -211,9 +209,17 @@ func GetGroupMaster(groupId string) (db.GroupMember, error) { if err != nil { return groupMember, err } - dbConn.LogMode(true) + if err := dbConn.Table("group_members").Where("role_level=? and group_id=?", constant.GroupOwner, groupId).Find(&groupMember).Error; err != nil { return groupMember, err } return groupMember, nil } + +func UpdateGroupInfoDefaultZero(groupInfo db.Group, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + return dbConn.Model(groupInfo).Updates(args).Error +} diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 8e7346cc1..bbd546225 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -118,6 +118,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } dst.JoinTime = int32(src.JoinTime.Unix()) + dst.MuteEndTime = uint32(src.JoinTime.Unix()) return nil } From d2c04b761d99b1e24fd2097a79eb8ef5adff121e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 29 Mar 2022 11:01:54 +0800 Subject: [PATCH 21/28] ali cloud oss --- internal/api/third/ali_oss_credential.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/third/ali_oss_credential.go b/internal/api/third/ali_oss_credential.go index c07cd5d22..6f5bc7c04 100644 --- a/internal/api/third/ali_oss_credential.go +++ b/internal/api/third/ali_oss_credential.go @@ -54,7 +54,7 @@ func AliOSSCredential(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) From fef33795d06e160ab78459fc4109bdae8ec577f8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 29 Mar 2022 11:16:03 +0800 Subject: [PATCH 22/28] group add --- internal/api/group/group.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index f5e09af2b..41b425d4c 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -259,7 +259,6 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - req.OwnerUserID = req.OpUserID req.OwnerUserID = params.OwnerUserID req.OperationID = params.OperationID log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) From a89d617532846bb6d372f061d6483aed6ac66048 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 29 Mar 2022 11:27:19 +0800 Subject: [PATCH 23/28] group add --- go.mod | 2 +- go.sum | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 30e4daa6a..f005f9ce0 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/gin-gonic/gin v1.7.0 github.com/go-playground/validator/v10 v10.4.1 github.com/go-sql-driver/mysql v1.6.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect + github.com/gogo/protobuf v1.3.2 github.com/golang-jwt/jwt/v4 v4.1.0 github.com/golang/protobuf v1.5.2 github.com/golang/snappy v0.0.4 // indirect diff --git a/go.sum b/go.sum index 1defffaf3..cec54f0ff 100644 --- a/go.sum +++ b/go.sum @@ -53,6 +53,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alibabacloud-go/darabonba-openapi v0.1.7/go.mod h1:6FV1Bt1AItYIlC2rVopPTumrRNtkfPBmrPVAZ8v2bLk= github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8= github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU= github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= @@ -62,8 +63,11 @@ github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWw github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= +github.com/alibabacloud-go/openapi-util v0.0.8/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0= github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= +github.com/alibabacloud-go/sts-20150401 v1.1.0 h1:1yVyKz02ES6aKo3xVjmoPLBH1OAmmSqPkhKRdjEkmYs= +github.com/alibabacloud-go/sts-20150401 v1.1.0/go.mod h1:QW4O/c7Hp4krHYt+6xwnoG8EyZW3V9GYkl6EgIBmxJc= github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= @@ -1095,6 +1099,8 @@ gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= From 764bc3feadccfc655c276a552b3d31746507dbb9 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 11:35:53 +0800 Subject: [PATCH 24/28] mute group --- pkg/proto/sdk_ws/ws.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 71b65611f..93d604a7c 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -261,6 +261,13 @@ message GroupDismissedTips{ int64 operationTime = 3; } +message GroupMemberInfoChangedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; + GroupMemberFullInfo changedUserList = 4; +} + //////////////////////friend///////////////////// //message FriendInfo{ From 1aeff25316f9bdfdeafa442358c0b633c6c07680 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 11:48:17 +0800 Subject: [PATCH 25/28] mute group --- cmd/Open-IM-SDK-Core | 2 +- cmd/open_im_api/main.go | 6 +- internal/api/group/group.go | 128 ++++++++++++++++++++++++++++++ internal/rpc/group/group.go | 46 ++++++++--- pkg/base_info/group_api_struct.go | 35 ++++++++ pkg/common/constant/constant.go | 1 + pkg/common/utils/utils.go | 3 + 7 files changed, 209 insertions(+), 12 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 65f2ba789..a19440c3d 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 65f2ba78952e72f3f07590634e4e3e38897ead1e +Subproject commit a19440c3d6e6504655934cc432d8420bb1909816 diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index a7deb7dbd..2f93c97e8 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -67,7 +67,11 @@ func main() { groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 - groupRouterGroup.POST("/dismiss_group", group.DismissGroup) + groupRouterGroup.POST("/dismiss_group", group.DismissGroup) // + groupRouterGroup.POST("/mute_group_member", group.MuteGroupMember) + groupRouterGroup.POST("/cancel_mute_group_member", group.CancelMuteGroupMember) //MuteGroup + groupRouterGroup.POST("/mute_group", group.MuteGroup) + groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup) } //certificate authRouterGroup := r.Group("/auth") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 41b425d4c..35365cc10 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -568,3 +568,131 @@ func DismissGroup(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) c.JSON(http.StatusOK, resp) } + +func MuteGroupMember(c *gin.Context) { + params := api.MuteGroupMemberReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.MuteGroupMemberReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.MuteGroupMember(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.MuteGroupMemberResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} + +func CancelMuteGroupMember(c *gin.Context) { + params := api.CancelMuteGroupMemberReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.CancelMuteGroupMemberReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.CancelMuteGroupMember(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.CancelMuteGroupMemberResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} + +func MuteGroup(c *gin.Context) { + params := api.MuteGroupReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.MuteGroupReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.MuteGroup(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.MuteGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} + +func CancelMuteGroup(c *gin.Context) { + params := api.CancelMuteGroupReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.CancelMuteGroupReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.CancelMuteGroup(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.CancelMuteGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6d9b9d910..98198f598 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -41,16 +41,16 @@ func NewGroupServer(port int) *groupServer { } func (s *groupServer) Run() { - log.NewInfo("0", "group rpc start ") + log.NewInfo("", "group rpc start ") ip := utils.ServerIP registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { - log.NewError("0", "Listen failed ", err.Error(), registerAddress) + log.NewError("", "Listen failed ", err.Error(), registerAddress) return } - log.NewInfo("0", "listen network success, ", registerAddress, listener) + log.NewInfo("", "listen network success, ", registerAddress, listener) defer listener.Close() //grpc server srv := grpc.NewServer() @@ -59,15 +59,15 @@ func (s *groupServer) Run() { pbGroup.RegisterGroupServer(srv, s) err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { - log.NewError("0", "RegisterEtcd failed ", err.Error()) + log.NewError("", "RegisterEtcd failed ", err.Error()) return } err = srv.Serve(listener) if err != nil { - log.NewError("0", "Serve failed ", err.Error()) + log.NewError("", "Serve failed ", err.Error()) return } - log.NewInfo("0", "group rpc success") + log.NewInfo("", "group rpc success") } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { @@ -355,7 +355,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou //remove var resp pbGroup.KickGroupMemberResp for _, v := range req.KickedUserIDList { - //owner cant kicked + //owner can‘t kicked if v == groupOwnerUserID { log.NewError(req.OperationID, "failed, can't kick owner ", v) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) @@ -970,7 +970,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { - log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + log.Error(req.OperationID, "verify failed ", req.GroupID, req.UserID) return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} @@ -1002,9 +1002,35 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca } func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) { - return nil, nil + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.GroupID, req.GroupID) + return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + err := imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusMuted) + if err != nil { + log.Error(req.OperationID, "OperateGroupStatus failed ", err.Error(), req.GroupID, constant.GroupStatusMuted) + return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { - return nil, nil + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupInfo := db.Group{GroupID: req.GroupID} + + err := imdb.UpdateGroupInfoDefaultZero(groupInfo, map[string]interface{}{"status": constant.GroupOk}) + if err != nil { + log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), groupInfo) + return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 68df84731..47b6a6c67 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -185,3 +185,38 @@ type DismissGroupReq struct { type DismissGroupResp struct { CommResp } + +type MuteGroupMemberReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + UserID string `json:"userID" binding:"required"` + MutedSeconds uint32 `json:"mutedSeconds" binding:"required"` +} +type MuteGroupMemberResp struct { + CommResp +} + +type CancelMuteGroupMemberReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + UserID string `json:"userID" binding:"required"` +} +type CancelMuteGroupMemberResp struct { + CommResp +} + +type MuteGroupReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` +} +type MuteGroupResp struct { + CommResp +} + +type CancelMuteGroupReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` +} +type CancelMuteGroupResp struct { + CommResp +} diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index bfecd0872..0a1e38168 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -79,6 +79,7 @@ const ( MemberInvitedNotification = 1509 MemberEnterNotification = 1510 GroupDismissedNotification = 1511 + GroupMemberInfoChangedNotification = 1512 SignalingNotificationBegin = 1600 SignalingNotification = 1601 diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index bbd546225..514063755 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -119,6 +119,9 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group } dst.JoinTime = int32(src.JoinTime.Unix()) dst.MuteEndTime = uint32(src.JoinTime.Unix()) + if dst.MuteEndTime < uint32(time.Now().Unix()) { + dst.MuteEndTime = 0 + } return nil } From f6eef21b45b669d717a44a7840d1fff6d3b68742 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 29 Mar 2022 11:55:48 +0800 Subject: [PATCH 26/28] mute group --- pkg/proto/sdk_ws/ws.pb.go | 516 +++++++++++++++++++++----------------- 1 file changed, 290 insertions(+), 226 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index b738d4218..9945fbc92 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,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_a63d7f660800bc8e, []int{0} + return fileDescriptor_ws_48b3765a4295b161, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -165,7 +165,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_a63d7f660800bc8e, []int{1} + return fileDescriptor_ws_48b3765a4295b161, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -277,7 +277,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_a63d7f660800bc8e, []int{2} + return fileDescriptor_ws_48b3765a4295b161, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -352,7 +352,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_a63d7f660800bc8e, []int{3} + return fileDescriptor_ws_48b3765a4295b161, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -459,7 +459,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_a63d7f660800bc8e, []int{4} + return fileDescriptor_ws_48b3765a4295b161, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -544,7 +544,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_a63d7f660800bc8e, []int{5} + return fileDescriptor_ws_48b3765a4295b161, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -625,7 +625,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_a63d7f660800bc8e, []int{6} + return fileDescriptor_ws_48b3765a4295b161, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -733,7 +733,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_a63d7f660800bc8e, []int{7} + return fileDescriptor_ws_48b3765a4295b161, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -871,7 +871,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_a63d7f660800bc8e, []int{8} + return fileDescriptor_ws_48b3765a4295b161, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -925,7 +925,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_a63d7f660800bc8e, []int{9} + return fileDescriptor_ws_48b3765a4295b161, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -976,7 +976,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_a63d7f660800bc8e, []int{10} + return fileDescriptor_ws_48b3765a4295b161, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1008,7 +1008,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_a63d7f660800bc8e, []int{11} + return fileDescriptor_ws_48b3765a4295b161, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1055,7 +1055,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_a63d7f660800bc8e, []int{12} + return fileDescriptor_ws_48b3765a4295b161, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1124,7 +1124,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_a63d7f660800bc8e, []int{13} + return fileDescriptor_ws_48b3765a4295b161, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1285,7 +1285,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_a63d7f660800bc8e, []int{14} + return fileDescriptor_ws_48b3765a4295b161, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1353,7 +1353,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_a63d7f660800bc8e, []int{15} + return fileDescriptor_ws_48b3765a4295b161, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1410,7 +1410,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_a63d7f660800bc8e, []int{16} + return fileDescriptor_ws_48b3765a4295b161, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1479,7 +1479,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_a63d7f660800bc8e, []int{17} + return fileDescriptor_ws_48b3765a4295b161, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1534,7 +1534,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_a63d7f660800bc8e, []int{18} + return fileDescriptor_ws_48b3765a4295b161, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1590,7 +1590,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_a63d7f660800bc8e, []int{19} + return fileDescriptor_ws_48b3765a4295b161, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1645,7 +1645,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_a63d7f660800bc8e, []int{20} + return fileDescriptor_ws_48b3765a4295b161, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1700,7 +1700,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_a63d7f660800bc8e, []int{21} + return fileDescriptor_ws_48b3765a4295b161, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1756,7 +1756,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_a63d7f660800bc8e, []int{22} + return fileDescriptor_ws_48b3765a4295b161, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1819,7 +1819,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_a63d7f660800bc8e, []int{23} + return fileDescriptor_ws_48b3765a4295b161, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1882,7 +1882,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_a63d7f660800bc8e, []int{24} + return fileDescriptor_ws_48b3765a4295b161, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1944,7 +1944,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_a63d7f660800bc8e, []int{25} + return fileDescriptor_ws_48b3765a4295b161, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1998,7 +1998,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_a63d7f660800bc8e, []int{26} + return fileDescriptor_ws_48b3765a4295b161, []int{26} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2039,6 +2039,68 @@ func (m *GroupDismissedTips) GetOperationTime() int64 { return 0 } +type GroupMemberInfoChangedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + ChangedUserList *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUserList" json:"changedUserList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberInfoChangedTips) Reset() { *m = GroupMemberInfoChangedTips{} } +func (m *GroupMemberInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberInfoChangedTips) ProtoMessage() {} +func (*GroupMemberInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_48b3765a4295b161, []int{27} +} +func (m *GroupMemberInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberInfoChangedTips.Unmarshal(m, b) +} +func (m *GroupMemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberInfoChangedTips.Merge(dst, src) +} +func (m *GroupMemberInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberInfoChangedTips.Size(m) +} +func (m *GroupMemberInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberInfoChangedTips proto.InternalMessageInfo + +func (m *GroupMemberInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupMemberInfoChangedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberInfoChangedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +func (m *GroupMemberInfoChangedTips) GetChangedUserList() *GroupMemberFullInfo { + if m != nil { + return m.ChangedUserList + } + return nil +} + type FriendApplication struct { AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` @@ -2052,7 +2114,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_a63d7f660800bc8e, []int{27} + return fileDescriptor_ws_48b3765a4295b161, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2105,7 +2167,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_a63d7f660800bc8e, []int{28} + return fileDescriptor_ws_48b3765a4295b161, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2151,7 +2213,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_a63d7f660800bc8e, []int{29} + return fileDescriptor_ws_48b3765a4295b161, []int{30} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2191,7 +2253,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_a63d7f660800bc8e, []int{30} + return fileDescriptor_ws_48b3765a4295b161, []int{31} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2238,7 +2300,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_a63d7f660800bc8e, []int{31} + return fileDescriptor_ws_48b3765a4295b161, []int{32} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2286,7 +2348,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_a63d7f660800bc8e, []int{32} + return fileDescriptor_ws_48b3765a4295b161, []int{33} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2339,7 +2401,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_a63d7f660800bc8e, []int{33} + return fileDescriptor_ws_48b3765a4295b161, []int{34} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2377,7 +2439,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_a63d7f660800bc8e, []int{34} + return fileDescriptor_ws_48b3765a4295b161, []int{35} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2415,7 +2477,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_a63d7f660800bc8e, []int{35} + return fileDescriptor_ws_48b3765a4295b161, []int{36} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2453,7 +2515,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_a63d7f660800bc8e, []int{36} + return fileDescriptor_ws_48b3765a4295b161, []int{37} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2492,7 +2554,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_a63d7f660800bc8e, []int{37} + return fileDescriptor_ws_48b3765a4295b161, []int{38} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2531,7 +2593,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_a63d7f660800bc8e, []int{38} + return fileDescriptor_ws_48b3765a4295b161, []int{39} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -2571,7 +2633,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_a63d7f660800bc8e, []int{39} + return fileDescriptor_ws_48b3765a4295b161, []int{40} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -2617,7 +2679,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_a63d7f660800bc8e, []int{40} + return fileDescriptor_ws_48b3765a4295b161, []int{41} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -2670,7 +2732,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_a63d7f660800bc8e, []int{41} + return fileDescriptor_ws_48b3765a4295b161, []int{42} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -2937,7 +2999,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_a63d7f660800bc8e, []int{42} + return fileDescriptor_ws_48b3765a4295b161, []int{43} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -3205,7 +3267,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_a63d7f660800bc8e, []int{43} + return fileDescriptor_ws_48b3765a4295b161, []int{44} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -3301,7 +3363,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_a63d7f660800bc8e, []int{44} + return fileDescriptor_ws_48b3765a4295b161, []int{45} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -3356,7 +3418,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_a63d7f660800bc8e, []int{45} + return fileDescriptor_ws_48b3765a4295b161, []int{46} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -3417,7 +3479,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_a63d7f660800bc8e, []int{46} + return fileDescriptor_ws_48b3765a4295b161, []int{47} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -3472,7 +3534,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_a63d7f660800bc8e, []int{47} + return fileDescriptor_ws_48b3765a4295b161, []int{48} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -3533,7 +3595,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_a63d7f660800bc8e, []int{48} + return fileDescriptor_ws_48b3765a4295b161, []int{49} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -3588,7 +3650,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_a63d7f660800bc8e, []int{49} + return fileDescriptor_ws_48b3765a4295b161, []int{50} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -3646,7 +3708,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_a63d7f660800bc8e, []int{50} + return fileDescriptor_ws_48b3765a4295b161, []int{51} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -3681,7 +3743,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_a63d7f660800bc8e, []int{51} + return fileDescriptor_ws_48b3765a4295b161, []int{52} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -3749,7 +3811,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_a63d7f660800bc8e, []int{52} + return fileDescriptor_ws_48b3765a4295b161, []int{53} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -3803,7 +3865,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_a63d7f660800bc8e, []int{53} + return fileDescriptor_ws_48b3765a4295b161, []int{54} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -3854,7 +3916,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_a63d7f660800bc8e, []int{54} + return fileDescriptor_ws_48b3765a4295b161, []int{55} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -3889,7 +3951,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_a63d7f660800bc8e, []int{55} + return fileDescriptor_ws_48b3765a4295b161, []int{56} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -3954,7 +4016,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_a63d7f660800bc8e, []int{56} + return fileDescriptor_ws_48b3765a4295b161, []int{57} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -3988,7 +4050,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_a63d7f660800bc8e, []int{57} + return fileDescriptor_ws_48b3765a4295b161, []int{58} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4048,7 +4110,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_a63d7f660800bc8e, []int{58} + return fileDescriptor_ws_48b3765a4295b161, []int{59} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4111,6 +4173,7 @@ func init() { proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips") + proto.RegisterType((*GroupMemberInfoChangedTips)(nil), "server_api_params.GroupMemberInfoChangedTips") proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") @@ -4145,171 +4208,172 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a63d7f660800bc8e) } - -var fileDescriptor_ws_a63d7f660800bc8e = []byte{ - // 2605 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x23, 0x49, - 0x15, 0xa7, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0x59, 0x82, 0x19, 0x66, 0x87, 0xd0, 0x8a, - 0x96, 0x61, 0x81, 0x2c, 0x1a, 0x84, 0x04, 0xbb, 0x30, 0x28, 0x1f, 0xf3, 0xb5, 0xc4, 0x33, 0xd9, - 0xf6, 0x0c, 0x8b, 0x00, 0x69, 0x54, 0x71, 0x57, 0x9c, 0xde, 0xb4, 0xab, 0xda, 0x5d, 0xdd, 0x99, - 0x89, 0x84, 0x84, 0x04, 0x12, 0xe2, 0xc6, 0x09, 0xae, 0x48, 0x5c, 0x10, 0x12, 0x5a, 0xed, 0x01, - 0x6e, 0x88, 0x13, 0xff, 0x00, 0x47, 0xc4, 0x8d, 0x33, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0xfa, 0xe8, - 0xee, 0xaa, 0x6e, 0x3b, 0xf1, 0x5a, 0xd1, 0x0e, 0x68, 0xb8, 0xf9, 0xbd, 0xae, 0xf7, 0xea, 0xd5, - 0xef, 0x7d, 0xd4, 0xab, 0x2a, 0x43, 0x87, 0xf9, 0xa7, 0x4f, 0x9f, 0xb1, 0x37, 0x9e, 0xb1, 0xed, - 0x28, 0xa6, 0x09, 0x75, 0xd6, 0x18, 0x8e, 0xcf, 0x70, 0xfc, 0x14, 0x45, 0xc1, 0xd3, 0x08, 0xc5, - 0x68, 0xc4, 0xdc, 0x7f, 0xd8, 0xd0, 0xbc, 0x17, 0xd3, 0x34, 0x7a, 0x40, 0x8e, 0xa9, 0xd3, 0x85, - 0xc5, 0xa1, 0x20, 0xf6, 0xbb, 0xd6, 0xa6, 0x75, 0xb3, 0xe9, 0x65, 0xa4, 0x73, 0x1d, 0x9a, 0xe2, - 0xe7, 0x43, 0x34, 0xc2, 0x5d, 0x5b, 0x7c, 0x2b, 0x18, 0x8e, 0x0b, 0xcb, 0x84, 0x26, 0xc1, 0x71, - 0x30, 0x40, 0x49, 0x40, 0x49, 0xb7, 0x26, 0x06, 0x18, 0x3c, 0x3e, 0x26, 0x20, 0x49, 0x4c, 0xfd, - 0x74, 0x20, 0xc6, 0x2c, 0xc8, 0x31, 0x3a, 0x8f, 0xcf, 0x7f, 0x8c, 0x06, 0xf8, 0x89, 0x77, 0xd0, - 0xad, 0xcb, 0xf9, 0x15, 0xe9, 0x6c, 0x42, 0x8b, 0x3e, 0x23, 0x38, 0x7e, 0xc2, 0x70, 0xfc, 0x60, - 0xbf, 0xdb, 0x10, 0x5f, 0x75, 0x96, 0x73, 0x03, 0x60, 0x10, 0x63, 0x94, 0xe0, 0xc7, 0xc1, 0x08, - 0x77, 0x17, 0x37, 0xad, 0x9b, 0x6d, 0x4f, 0xe3, 0x70, 0x0d, 0x23, 0x3c, 0x3a, 0xc2, 0xf1, 0x1e, - 0x4d, 0x49, 0xd2, 0x5d, 0x12, 0x03, 0x74, 0x96, 0xb3, 0x02, 0x36, 0x7e, 0xde, 0x6d, 0x0a, 0xd5, - 0x36, 0x7e, 0xee, 0x6c, 0x40, 0x83, 0x25, 0x28, 0x49, 0x59, 0x17, 0x36, 0xad, 0x9b, 0x75, 0x4f, - 0x51, 0xce, 0x16, 0xb4, 0x85, 0x5e, 0x9a, 0x59, 0xd3, 0x12, 0x22, 0x26, 0x33, 0x47, 0xec, 0xf1, - 0x79, 0x84, 0xbb, 0xcb, 0x42, 0x41, 0xc1, 0x70, 0xff, 0x62, 0xc3, 0xba, 0xc0, 0xbd, 0x27, 0x0c, - 0xb8, 0x9b, 0x86, 0xe1, 0x25, 0x1e, 0xd8, 0x80, 0x46, 0x2a, 0xa7, 0x93, 0xf0, 0x2b, 0x8a, 0xcf, - 0x13, 0xd3, 0x10, 0x1f, 0xe0, 0x33, 0x1c, 0x0a, 0xe0, 0xeb, 0x5e, 0xc1, 0x70, 0xae, 0xc1, 0xd2, - 0x7b, 0x34, 0x20, 0x02, 0x93, 0x05, 0xf1, 0x31, 0xa7, 0xf9, 0x37, 0x12, 0x0c, 0x4e, 0x09, 0x77, - 0xa9, 0x84, 0x3b, 0xa7, 0x75, 0x4f, 0x34, 0x4c, 0x4f, 0xbc, 0x06, 0x2b, 0x28, 0x8a, 0x7a, 0x88, - 0x0c, 0x71, 0x2c, 0x27, 0x5d, 0x14, 0x7a, 0x4b, 0x5c, 0xee, 0x0f, 0x3e, 0x53, 0x9f, 0xa6, 0xf1, - 0x00, 0x0b, 0xb8, 0xeb, 0x9e, 0xc6, 0xe1, 0x7a, 0x68, 0x84, 0x63, 0x0d, 0x46, 0x89, 0x7c, 0x89, - 0xab, 0xbc, 0x02, 0xb9, 0x57, 0xb8, 0x1f, 0xd3, 0x04, 0xdf, 0x21, 0xbe, 0x58, 0x54, 0x4b, 0xf9, - 0xb1, 0x60, 0xb9, 0x3f, 0xb1, 0x60, 0xe5, 0x30, 0x3d, 0x0a, 0x83, 0x81, 0x50, 0xc1, 0x61, 0x2d, - 0xc0, 0xb3, 0x0c, 0xf0, 0x74, 0x08, 0xec, 0xe9, 0x10, 0xd4, 0x4c, 0x08, 0x36, 0xa0, 0x31, 0xc4, - 0xc4, 0xc7, 0xb1, 0x82, 0x54, 0x51, 0xca, 0xd4, 0x7a, 0x66, 0xaa, 0xfb, 0x0b, 0x1b, 0x96, 0x3e, - 0x62, 0x13, 0x36, 0xa1, 0x15, 0x9d, 0x50, 0x82, 0x1f, 0xa6, 0x3c, 0xac, 0x94, 0x2d, 0x3a, 0xcb, - 0x79, 0x05, 0xea, 0x47, 0x41, 0x9c, 0x9c, 0x08, 0xbf, 0xb6, 0x3d, 0x49, 0x70, 0x2e, 0x1e, 0xa1, - 0x40, 0x3a, 0xb3, 0xe9, 0x49, 0x42, 0x2d, 0x68, 0x29, 0xc7, 0xde, 0xcc, 0xb1, 0x66, 0x25, 0xc7, - 0xaa, 0xb1, 0x01, 0x93, 0x62, 0xc3, 0xfd, 0xa7, 0x05, 0x70, 0x37, 0x0e, 0x30, 0xf1, 0x05, 0x34, - 0xa5, 0xe4, 0xb6, 0xaa, 0xc9, 0xbd, 0x01, 0x8d, 0x18, 0x8f, 0x50, 0x7c, 0x9a, 0x05, 0xbf, 0xa4, - 0x4a, 0x06, 0xd5, 0x2a, 0x06, 0xbd, 0x05, 0x70, 0x2c, 0xe6, 0xe1, 0x7a, 0x04, 0x54, 0xad, 0x5b, - 0x9f, 0xda, 0xae, 0x94, 0xc1, 0xed, 0xcc, 0x4b, 0x9e, 0x36, 0x9c, 0x67, 0x16, 0xf2, 0x7d, 0x15, - 0xc0, 0x75, 0x99, 0x59, 0x39, 0x63, 0x42, 0xfc, 0x36, 0x2e, 0x88, 0xdf, 0xc5, 0x3c, 0x28, 0xfe, - 0x6e, 0x41, 0x73, 0x37, 0x44, 0x83, 0xd3, 0x19, 0x97, 0x6e, 0x2e, 0xd1, 0xae, 0x2c, 0xf1, 0x1e, - 0xb4, 0x8f, 0xb8, 0xba, 0x6c, 0x09, 0x02, 0x85, 0xd6, 0xad, 0xcf, 0x4c, 0x58, 0xa5, 0x99, 0x14, - 0x9e, 0x29, 0x67, 0x2e, 0x77, 0xe1, 0xf2, 0xe5, 0xd6, 0x2f, 0x58, 0x6e, 0x23, 0x5f, 0xee, 0x9f, - 0x6d, 0x58, 0x16, 0x85, 0xce, 0xc3, 0xe3, 0x14, 0xb3, 0xc4, 0xf9, 0x06, 0x2c, 0xa5, 0x99, 0xa9, - 0xd6, 0xac, 0xa6, 0xe6, 0x22, 0xce, 0x9b, 0xaa, 0xac, 0x0a, 0x79, 0x5b, 0xc8, 0x5f, 0x9f, 0x20, - 0x9f, 0xef, 0x69, 0x5e, 0x31, 0x9c, 0x6f, 0x41, 0x27, 0x88, 0xf8, 0x21, 0xf6, 0x30, 0x4b, 0xc3, - 0x44, 0x55, 0x4b, 0x83, 0x27, 0x23, 0x6d, 0xdc, 0x63, 0x43, 0xb5, 0x41, 0x29, 0x8a, 0xa3, 0x23, - 0xc7, 0xf1, 0x4f, 0x72, 0xe9, 0x05, 0x83, 0x27, 0x6a, 0x8c, 0xc7, 0xc2, 0x43, 0x32, 0xad, 0x32, - 0xb2, 0x98, 0x53, 0xa1, 0x26, 0x03, 0xc1, 0xe0, 0x71, 0x17, 0x4b, 0x5a, 0x28, 0x90, 0x3b, 0x93, - 0xc6, 0x29, 0x6f, 0x4c, 0xee, 0x5f, 0x6b, 0xd0, 0x96, 0xe9, 0x93, 0x81, 0x7a, 0x83, 0xc7, 0x39, - 0x1d, 0x19, 0x51, 0xa4, 0x71, 0xb8, 0x15, 0x9c, 0x7a, 0x68, 0x16, 0x1a, 0x83, 0xc7, 0x43, 0x91, - 0xd3, 0x77, 0x8d, 0x82, 0xa3, 0xb3, 0xb2, 0x59, 0xee, 0xe9, 0x85, 0x47, 0xe3, 0xf0, 0x52, 0x96, - 0x50, 0x23, 0x3a, 0x72, 0x9a, 0xcb, 0x26, 0x34, 0x9f, 0x5f, 0xc6, 0x87, 0xc6, 0xe1, 0xf8, 0x26, - 0x34, 0x9b, 0x5b, 0x82, 0x54, 0x30, 0xa4, 0x66, 0x35, 0xaf, 0xdc, 0x4a, 0x72, 0xba, 0xe2, 0xd5, - 0xe6, 0x85, 0x5e, 0x05, 0xc3, 0xab, 0x66, 0x72, 0xb5, 0x2a, 0xc9, 0xb5, 0x05, 0x6d, 0xa9, 0x27, - 0x0b, 0xfa, 0x65, 0xb9, 0xd5, 0x1b, 0x4c, 0x33, 0x36, 0xda, 0xe5, 0xd8, 0x30, 0xbd, 0xbb, 0x32, - 0xc5, 0xbb, 0x9d, 0xdc, 0xbb, 0x3f, 0x80, 0xee, 0x61, 0x1a, 0x86, 0x3d, 0xcc, 0x18, 0x1a, 0xe2, - 0xdd, 0xf3, 0x3e, 0x1e, 0x1f, 0x04, 0x2c, 0xf1, 0x30, 0x8b, 0x78, 0x9c, 0xe1, 0x38, 0xde, 0xa3, - 0x3e, 0x16, 0x4e, 0xae, 0x7b, 0x19, 0xc9, 0x57, 0x88, 0xe3, 0x98, 0x1b, 0xa0, 0x2a, 0xa4, 0xa4, - 0x9c, 0x6d, 0x58, 0x08, 0x03, 0xc6, 0x63, 0xbd, 0x76, 0xb3, 0x75, 0xeb, 0xda, 0x84, 0x54, 0xe9, - 0xb1, 0xe1, 0x3e, 0x4a, 0x90, 0x27, 0xc6, 0xb9, 0x23, 0xf8, 0xc4, 0xe4, 0xd9, 0xc7, 0x53, 0x77, - 0x30, 0x5e, 0xc3, 0x44, 0x11, 0x08, 0x28, 0xc9, 0xdb, 0x13, 0x9d, 0xc5, 0xcd, 0x66, 0x52, 0x8f, - 0xb0, 0xa3, 0xed, 0x65, 0xa4, 0xfb, 0x0a, 0x38, 0xf7, 0x70, 0xd2, 0x43, 0xcf, 0x77, 0x88, 0xdf, - 0x0b, 0x48, 0x1f, 0x8f, 0x3d, 0x3c, 0x76, 0xef, 0xc0, 0x7a, 0x85, 0xcb, 0x22, 0x6e, 0xc0, 0x08, - 0x3d, 0xef, 0xe3, 0xb1, 0x30, 0xa0, 0xed, 0x29, 0x4a, 0xf0, 0xc5, 0x28, 0x55, 0x1e, 0x15, 0xe5, - 0x8e, 0xa1, 0xc3, 0x3d, 0xd4, 0xc7, 0xc4, 0xef, 0xb1, 0xa1, 0x50, 0xb1, 0x09, 0x2d, 0x89, 0x40, - 0x8f, 0x0d, 0x8b, 0x7a, 0xab, 0xb1, 0xf8, 0x88, 0x41, 0x18, 0x60, 0x92, 0xc8, 0x11, 0x6a, 0x35, - 0x1a, 0x8b, 0x07, 0x23, 0xc3, 0xaa, 0xfd, 0xe0, 0x59, 0x52, 0xf3, 0x72, 0xda, 0xfd, 0x43, 0x1d, - 0x16, 0x15, 0xa0, 0xa2, 0x7f, 0xe4, 0x5b, 0x5c, 0x8e, 0x97, 0xa4, 0x64, 0x30, 0x0e, 0xce, 0x8a, - 0x4e, 0x4e, 0x52, 0x7a, 0xef, 0x57, 0x33, 0x7b, 0xbf, 0x92, 0x4d, 0x0b, 0x55, 0x9b, 0x4a, 0xeb, - 0xaa, 0x57, 0xd7, 0xf5, 0x3a, 0xac, 0x32, 0x91, 0x30, 0x87, 0x21, 0x4a, 0x8e, 0x69, 0x3c, 0x52, - 0x3b, 0x56, 0xdd, 0xab, 0xf0, 0x79, 0xb1, 0x97, 0xbc, 0x3c, 0x61, 0x65, 0x46, 0x96, 0xb8, 0x3c, - 0x3d, 0x24, 0x27, 0x4b, 0x5c, 0xd9, 0x2a, 0x98, 0x4c, 0x69, 0x1b, 0x63, 0x01, 0x25, 0xa2, 0x17, - 0x96, 0xf9, 0xa9, 0xb3, 0xf8, 0xca, 0x47, 0x6c, 0x78, 0x37, 0xa6, 0x23, 0xd5, 0x30, 0x64, 0xa4, - 0x58, 0x39, 0x25, 0x09, 0x26, 0x89, 0x90, 0x6d, 0x49, 0x59, 0x8d, 0xc5, 0x65, 0x15, 0x29, 0x92, - 0x73, 0xd9, 0xcb, 0x48, 0x67, 0x15, 0x6a, 0x0c, 0x8f, 0x55, 0xc6, 0xf1, 0x9f, 0x86, 0xe7, 0x3a, - 0xa6, 0xe7, 0x4a, 0xa5, 0x60, 0x55, 0x7c, 0xd5, 0x4b, 0x41, 0x71, 0x1a, 0x58, 0x33, 0x4e, 0x03, - 0x3b, 0xb0, 0x48, 0x23, 0x1e, 0xe7, 0xac, 0xeb, 0x88, 0x1c, 0xfb, 0xec, 0xf4, 0x1c, 0xdb, 0x7e, - 0x24, 0x47, 0xde, 0x21, 0x49, 0x7c, 0xee, 0x65, 0x72, 0xce, 0x01, 0x74, 0xe8, 0xf1, 0x71, 0x18, - 0x10, 0x7c, 0x98, 0xb2, 0x13, 0xb1, 0xb3, 0xad, 0x8b, 0x9d, 0xcd, 0x9d, 0xa0, 0xea, 0x91, 0x39, - 0xd2, 0x2b, 0x8b, 0x5e, 0x7b, 0x13, 0x96, 0xf5, 0x69, 0x38, 0x0c, 0xa7, 0xf8, 0x5c, 0xc5, 0x20, - 0xff, 0xc9, 0x9b, 0xbd, 0x33, 0x14, 0xa6, 0x72, 0x1b, 0x58, 0xf2, 0x24, 0xf1, 0xa6, 0xfd, 0x55, - 0xcb, 0xfd, 0xb9, 0x05, 0x9d, 0xd2, 0x04, 0x7c, 0x74, 0x12, 0x24, 0x21, 0x56, 0x1a, 0x24, 0xe1, - 0x38, 0xb0, 0xe0, 0x63, 0x36, 0x50, 0x21, 0x2c, 0x7e, 0xab, 0x4a, 0x56, 0xcb, 0xdb, 0x45, 0x7e, - 0xe4, 0x7b, 0xd4, 0xe7, 0x8a, 0xfa, 0x34, 0x25, 0x7e, 0x7e, 0xe4, 0xd3, 0x78, 0x3c, 0x84, 0x82, - 0x47, 0xfd, 0x5d, 0xe4, 0x0f, 0xb1, 0x3c, 0x98, 0xd5, 0x85, 0x4d, 0x26, 0xd3, 0xf5, 0x61, 0xe9, - 0x71, 0x10, 0xb1, 0x3d, 0x3a, 0x1a, 0x71, 0x47, 0xf8, 0x38, 0xe1, 0xbd, 0xaa, 0x25, 0xfc, 0xad, - 0x28, 0x1e, 0x2a, 0x3e, 0x3e, 0x46, 0x69, 0x98, 0xf0, 0xa1, 0x59, 0xe2, 0x6a, 0x2c, 0x71, 0x24, - 0x61, 0x94, 0xec, 0x4b, 0x69, 0x69, 0xa7, 0xc6, 0x71, 0xff, 0x64, 0xc3, 0xaa, 0x68, 0x1c, 0xf6, - 0x84, 0xdb, 0x7d, 0x21, 0x74, 0x0b, 0xea, 0x22, 0x0d, 0x55, 0xb3, 0x72, 0x71, 0xb3, 0x21, 0x87, - 0x3a, 0xb7, 0xa1, 0x41, 0x23, 0xd1, 0x72, 0xca, 0x0e, 0xe5, 0xb5, 0x69, 0x42, 0xe6, 0xe9, 0xcf, - 0x53, 0x52, 0xce, 0x5d, 0x00, 0x79, 0x30, 0x3d, 0x28, 0x4a, 0xf7, 0xac, 0x3a, 0x34, 0x49, 0x0e, - 0x6e, 0x5e, 0x86, 0xf3, 0x23, 0x60, 0xcd, 0x33, 0x99, 0xce, 0x43, 0x58, 0x11, 0x66, 0x3f, 0xca, - 0xba, 0x4e, 0xe1, 0x83, 0xd9, 0x67, 0x2c, 0x49, 0xbb, 0xbf, 0xb2, 0x14, 0x8c, 0xfc, 0x6b, 0x1f, - 0x4b, 0xec, 0x0b, 0x48, 0xac, 0xb9, 0x20, 0xb9, 0x06, 0x4b, 0xfc, 0x8c, 0x97, 0x37, 0xc1, 0x35, - 0x2f, 0xa7, 0x0b, 0x17, 0xd5, 0x66, 0x76, 0x91, 0xfb, 0x6b, 0x0b, 0xba, 0x6f, 0xd3, 0x80, 0x88, - 0x0f, 0x3b, 0x51, 0x14, 0xaa, 0x7b, 0x8a, 0xb9, 0x7d, 0xfe, 0x4d, 0x68, 0x22, 0xa9, 0x86, 0x24, - 0xca, 0xed, 0x33, 0x34, 0xb6, 0x85, 0x8c, 0xd6, 0xa3, 0xd4, 0xf4, 0x1e, 0xc5, 0x7d, 0xdf, 0x82, - 0x15, 0x09, 0xca, 0x3b, 0x69, 0x90, 0xcc, 0x6d, 0xdf, 0x2e, 0x2c, 0x8d, 0xd3, 0x20, 0x99, 0x23, - 0x2a, 0x73, 0xb9, 0x6a, 0x3c, 0xd5, 0x26, 0xc4, 0x93, 0xfb, 0x81, 0x05, 0xd7, 0xcb, 0xb0, 0xee, - 0x0c, 0x06, 0x38, 0x7a, 0x91, 0x29, 0x65, 0xf4, 0x68, 0x0b, 0xa5, 0x1e, 0x6d, 0xa2, 0xc9, 0x1e, - 0x7e, 0x0f, 0x0f, 0xfe, 0x7b, 0x4d, 0xfe, 0xb1, 0x0d, 0x9f, 0xbc, 0x97, 0x27, 0xde, 0xe3, 0x18, - 0x11, 0x76, 0x8c, 0xe3, 0xf8, 0x05, 0xda, 0x7b, 0x00, 0x6d, 0x82, 0x9f, 0x15, 0x36, 0xa9, 0x74, - 0x9c, 0x55, 0x8d, 0x29, 0x3c, 0x5b, 0xed, 0x72, 0xff, 0x65, 0xc1, 0xaa, 0xd4, 0xf3, 0xad, 0x60, - 0x70, 0xfa, 0x02, 0x17, 0xff, 0x10, 0x56, 0x4e, 0x85, 0x05, 0x9c, 0x9a, 0xa3, 0x6c, 0x97, 0xa4, - 0x67, 0x5c, 0xfe, 0xbf, 0x2d, 0x58, 0x93, 0x8a, 0x1e, 0x90, 0xb3, 0xe0, 0x45, 0x06, 0xeb, 0x21, - 0x74, 0x02, 0x69, 0xc2, 0x9c, 0x00, 0x94, 0xc5, 0x67, 0x44, 0xe0, 0xf7, 0x16, 0x74, 0xa4, 0xa6, - 0x3b, 0x24, 0xc1, 0xf1, 0xdc, 0xeb, 0xbf, 0x0f, 0x2d, 0x4c, 0x92, 0x18, 0x91, 0x79, 0x2a, 0xa4, - 0x2e, 0x3a, 0x63, 0x91, 0x7c, 0xdf, 0x02, 0x47, 0xa8, 0xda, 0x0f, 0xd8, 0x28, 0x60, 0xec, 0x05, - 0xba, 0x6e, 0x36, 0x83, 0x4f, 0x61, 0x4d, 0xde, 0x39, 0x68, 0x25, 0x92, 0x37, 0xdf, 0xc8, 0x97, - 0xfd, 0xb4, 0x25, 0x84, 0x32, 0xd2, 0xbc, 0x4d, 0x52, 0x0f, 0x06, 0xc5, 0x6d, 0xd2, 0x0d, 0x00, - 0xe4, 0xfb, 0xef, 0xd2, 0xd8, 0x0f, 0x48, 0xb6, 0xdf, 0x69, 0x1c, 0xf7, 0x6d, 0x58, 0xe6, 0xed, - 0xff, 0x63, 0xed, 0xf6, 0xe0, 0xc2, 0xfb, 0x0d, 0xfd, 0xe6, 0xc1, 0x36, 0x6f, 0x1e, 0xdc, 0xef, - 0xc3, 0xc7, 0x2b, 0x86, 0x0b, 0xac, 0xf7, 0xe4, 0xa5, 0x48, 0x36, 0x89, 0x82, 0xfc, 0xd3, 0x13, - 0xd0, 0xd3, 0x6d, 0xf1, 0x0c, 0x21, 0xf7, 0x47, 0x16, 0xbc, 0x5a, 0x51, 0xbf, 0x13, 0x45, 0x31, - 0x3d, 0x53, 0x2e, 0xbd, 0x8a, 0x69, 0xcc, 0xbd, 0xc0, 0x2e, 0xef, 0x05, 0x13, 0x8d, 0x30, 0xf6, - 0xaf, 0x8f, 0xc0, 0x88, 0xdf, 0x58, 0xd0, 0x51, 0x46, 0xf8, 0xbe, 0x9a, 0xf6, 0x2b, 0xd0, 0x90, - 0x17, 0xaa, 0x6a, 0xc2, 0x57, 0x27, 0x4e, 0x98, 0x5d, 0x04, 0x7b, 0x6a, 0x70, 0x35, 0x22, 0xed, - 0x49, 0x7d, 0xeb, 0xd7, 0xf2, 0xb8, 0x9f, 0xf9, 0xca, 0x53, 0x09, 0xb8, 0xdf, 0xc9, 0x82, 0x79, - 0x1f, 0x87, 0xf8, 0x2a, 0x31, 0x72, 0x9f, 0xc0, 0x8a, 0xb8, 0xdd, 0x2d, 0x30, 0xb8, 0x12, 0xb5, - 0xef, 0xc2, 0xaa, 0x50, 0x7b, 0xe5, 0xf6, 0xe6, 0xd9, 0xc1, 0xf1, 0xd9, 0x3b, 0x41, 0x64, 0x78, - 0x95, 0xda, 0xbf, 0x08, 0xeb, 0x19, 0xf6, 0x4f, 0x22, 0x3f, 0x3f, 0x53, 0x4d, 0xb9, 0x49, 0x72, - 0xbf, 0x04, 0x1b, 0x7b, 0x94, 0x9c, 0xe1, 0x98, 0x09, 0x2f, 0x4b, 0x91, 0x4c, 0xc2, 0x48, 0x7e, - 0x45, 0xb9, 0x7d, 0x58, 0x53, 0x77, 0xa0, 0x87, 0x68, 0x18, 0x10, 0x59, 0x95, 0x6e, 0x00, 0x44, - 0x68, 0x98, 0xbd, 0x81, 0xc8, 0x8b, 0x32, 0x8d, 0xc3, 0xbf, 0xb3, 0x13, 0xfa, 0x4c, 0x7d, 0xb7, - 0xe5, 0xf7, 0x82, 0xe3, 0x7e, 0x1b, 0x1c, 0x0f, 0xb3, 0x88, 0x12, 0x86, 0x35, 0xad, 0x9b, 0xd0, - 0xda, 0x4b, 0xe3, 0x18, 0x13, 0x3e, 0x55, 0xf6, 0x20, 0xa0, 0xb3, 0xb8, 0xde, 0x7e, 0xa1, 0x57, - 0x5e, 0xae, 0x68, 0x1c, 0xf7, 0x97, 0x35, 0x68, 0xf6, 0x83, 0x21, 0x41, 0xa1, 0x87, 0xc7, 0xce, - 0xd7, 0xa1, 0x21, 0xb7, 0x3c, 0x05, 0xed, 0xa4, 0xc3, 0xbe, 0x1c, 0x2d, 0xf7, 0x76, 0x0f, 0x8f, - 0xef, 0x7f, 0xcc, 0x53, 0x32, 0xce, 0x3b, 0xd0, 0x96, 0xbf, 0x1e, 0xc8, 0x23, 0x8c, 0xaa, 0xfd, - 0x9f, 0xbb, 0x44, 0x89, 0x1a, 0x2d, 0x75, 0x99, 0x1a, 0xb8, 0x41, 0x03, 0x44, 0x06, 0xea, 0x19, - 0xf1, 0x22, 0x83, 0xf6, 0xc4, 0x30, 0x65, 0x90, 0x94, 0xe1, 0xd2, 0x48, 0x34, 0xf9, 0xea, 0x99, - 0x65, 0xba, 0xb4, 0x3c, 0x0b, 0x28, 0x69, 0x29, 0xc3, 0xa5, 0x4f, 0x52, 0x32, 0x7c, 0x12, 0xa9, - 0xb3, 0xe7, 0x74, 0xe9, 0xfb, 0x62, 0x98, 0x92, 0x96, 0x32, 0x5c, 0x3a, 0x16, 0xd5, 0x4e, 0x80, - 0x7e, 0x91, 0xb4, 0x2c, 0x8a, 0x4a, 0x5a, 0xca, 0xec, 0x36, 0x61, 0x31, 0x42, 0xe7, 0x21, 0x45, - 0xbe, 0xfb, 0xdb, 0x1a, 0x40, 0x36, 0x90, 0x89, 0x9d, 0xd5, 0x70, 0xd1, 0xd6, 0xa5, 0x2e, 0x8a, - 0xc2, 0x73, 0xcd, 0x49, 0xfd, 0xc9, 0x4e, 0xfa, 0xfc, 0xac, 0x4e, 0x92, 0xda, 0x4a, 0x6e, 0xba, - 0x5d, 0x72, 0xd3, 0xd6, 0xa5, 0x6e, 0x52, 0x46, 0x29, 0x47, 0xdd, 0x2e, 0x39, 0x6a, 0xeb, 0x52, - 0x47, 0x29, 0x79, 0xe5, 0xaa, 0xdb, 0x25, 0x57, 0x6d, 0x5d, 0xea, 0x2a, 0x25, 0xaf, 0x9c, 0x75, - 0xbb, 0xe4, 0xac, 0xad, 0x4b, 0x9d, 0xa5, 0xe4, 0xab, 0xee, 0xfa, 0xc0, 0x86, 0x15, 0x01, 0x99, - 0xbc, 0x68, 0x26, 0xc7, 0x54, 0xdc, 0x27, 0x09, 0xb8, 0xcc, 0x27, 0x35, 0x93, 0xe9, 0x7c, 0x01, - 0xd6, 0x24, 0x43, 0x3d, 0xc1, 0x88, 0x7e, 0xd5, 0xde, 0xac, 0xdd, 0x6c, 0x7a, 0xd5, 0x0f, 0xe2, - 0x6a, 0x30, 0x65, 0x09, 0x1d, 0xed, 0xa3, 0x04, 0x65, 0xdd, 0x4a, 0xc1, 0xd1, 0x2f, 0x6e, 0x17, - 0x2a, 0x8f, 0xf6, 0x31, 0xa5, 0xa3, 0xfc, 0x46, 0x56, 0x51, 0x5c, 0x22, 0x09, 0x46, 0x98, 0xa6, - 0x89, 0x2a, 0x13, 0x19, 0xc9, 0xf7, 0xd8, 0x11, 0xf6, 0x03, 0x24, 0xae, 0x3b, 0xd5, 0x3b, 0x48, - 0xce, 0x10, 0x95, 0xad, 0xb8, 0xbe, 0x55, 0x8f, 0xea, 0x05, 0xe7, 0xf2, 0xab, 0x56, 0xf7, 0x6f, - 0x16, 0xac, 0x1f, 0xa2, 0x38, 0x09, 0x06, 0x41, 0x84, 0x48, 0xd2, 0xc3, 0x09, 0x12, 0x6b, 0x30, - 0xde, 0xd5, 0xac, 0x0f, 0xf7, 0xae, 0x76, 0x08, 0x9d, 0x61, 0xd1, 0x5f, 0x6a, 0x2f, 0x73, 0x33, - 0xf7, 0xfe, 0x25, 0x71, 0xe3, 0x91, 0xb0, 0xf6, 0xa1, 0x1f, 0x09, 0xdd, 0x9f, 0xda, 0xd0, 0x29, - 0x95, 0x4e, 0xde, 0x22, 0xca, 0xcd, 0x3f, 0x8f, 0x89, 0x9c, 0x76, 0x76, 0x00, 0x82, 0x3c, 0x8c, - 0x2e, 0xb8, 0xbc, 0x31, 0x63, 0xcd, 0xd3, 0x84, 0x26, 0xdd, 0xe1, 0xd6, 0xe6, 0xbe, 0xc3, 0xe5, - 0xa7, 0x91, 0xa8, 0x70, 0x92, 0x4a, 0xd4, 0x49, 0x68, 0x4e, 0x70, 0xa5, 0xa7, 0x8b, 0xba, 0xdf, - 0x83, 0xb5, 0x4a, 0x85, 0x12, 0x57, 0xba, 0xf4, 0x14, 0x93, 0xfc, 0x4a, 0x97, 0x13, 0x5a, 0xb0, - 0xda, 0xe5, 0x60, 0x0d, 0x83, 0x33, 0xfd, 0x5f, 0x08, 0x8a, 0x74, 0x7f, 0x66, 0xc3, 0xc6, 0xe4, - 0xdd, 0xe5, 0x65, 0x85, 0xfb, 0x08, 0xba, 0xd3, 0x2a, 0xf9, 0x95, 0xa1, 0x5e, 0x44, 0x77, 0xbe, - 0x0f, 0xbf, 0xac, 0x70, 0xaf, 0x67, 0xd1, 0xad, 0x6d, 0x75, 0xee, 0xef, 0x72, 0x7c, 0xf2, 0x4e, - 0xe3, 0x25, 0xc5, 0xc7, 0x79, 0x1d, 0x56, 0xe5, 0x32, 0xb5, 0x47, 0x3f, 0xd9, 0xb8, 0x56, 0xf8, - 0x45, 0xa5, 0xd0, 0xb6, 0xfd, 0x2b, 0x8b, 0xd9, 0x3f, 0x5a, 0x99, 0x4f, 0xf2, 0xfe, 0xed, 0x7f, - 0xca, 0x27, 0x45, 0xa4, 0x69, 0x4d, 0x8d, 0x16, 0x69, 0x79, 0x5f, 0xf9, 0xff, 0x48, 0xbb, 0x3c, - 0xd2, 0x72, 0x2c, 0xb5, 0x06, 0xcf, 0xfd, 0x21, 0xb4, 0xf7, 0x71, 0xd8, 0x63, 0xc3, 0xec, 0xef, - 0x06, 0x17, 0x01, 0x39, 0xed, 0xcf, 0x90, 0x53, 0xff, 0x68, 0x50, 0xfe, 0x93, 0xc2, 0x42, 0xe5, - 0x4f, 0x0a, 0xee, 0x2e, 0xac, 0xe8, 0x06, 0xcc, 0xf3, 0x6f, 0x8b, 0xdd, 0xeb, 0xdf, 0xbd, 0xb6, - 0xfd, 0x86, 0xfc, 0xdb, 0xed, 0x5b, 0x15, 0x10, 0x8f, 0x1a, 0xe2, 0x6f, 0xb8, 0x5f, 0xfe, 0x4f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x1a, 0xc5, 0xce, 0x99, 0x2b, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_48b3765a4295b161) } + +var fileDescriptor_ws_48b3765a4295b161 = []byte{ + // 2624 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3a, 0xcd, 0x6f, 0xe4, 0x48, + 0xf5, 0x3f, 0xbb, 0xd3, 0x9d, 0xf4, 0xeb, 0x74, 0x3a, 0x71, 0xf6, 0x17, 0x9a, 0x30, 0x3b, 0x04, + 0x2b, 0x5a, 0x86, 0x05, 0xb2, 0x68, 0x10, 0x12, 0xcc, 0xc2, 0xa0, 0x7c, 0xcc, 0xd7, 0x92, 0x9e, + 0xc9, 0xba, 0x67, 0x58, 0x04, 0x48, 0x23, 0xa7, 0x5d, 0xe9, 0x78, 0xe3, 0xae, 0x72, 0xfb, 0x23, + 0x33, 0x91, 0x90, 0x90, 0x40, 0x42, 0xdc, 0x38, 0xc1, 0x15, 0x89, 0x0b, 0x42, 0x42, 0xab, 0x3d, + 0xc0, 0x0d, 0x71, 0xe2, 0x1f, 0xe0, 0x88, 0xb8, 0x71, 0xe6, 0xca, 0x01, 0x09, 0x09, 0x54, 0xf5, + 0xca, 0x76, 0x95, 0xdd, 0x9d, 0xf4, 0x44, 0xd1, 0xce, 0xa2, 0xe1, 0xe6, 0xf7, 0x5c, 0xef, 0xd5, + 0xab, 0xf7, 0x5d, 0xcf, 0x86, 0x4e, 0xec, 0x9d, 0x3c, 0x7d, 0x16, 0xbf, 0xf5, 0x2c, 0xde, 0x0a, + 0x23, 0x96, 0x30, 0x6b, 0x25, 0x26, 0xd1, 0x29, 0x89, 0x9e, 0xba, 0xa1, 0xff, 0x34, 0x74, 0x23, + 0x77, 0x14, 0xdb, 0xff, 0x30, 0xa1, 0x79, 0x2f, 0x62, 0x69, 0xf8, 0x80, 0x1e, 0x31, 0xab, 0x0b, + 0xf3, 0x43, 0x01, 0xec, 0x75, 0x8d, 0x0d, 0xe3, 0x46, 0xd3, 0xc9, 0x40, 0xeb, 0x1a, 0x34, 0xc5, + 0xe3, 0x43, 0x77, 0x44, 0xba, 0xa6, 0x78, 0x57, 0x20, 0x2c, 0x1b, 0x16, 0x29, 0x4b, 0xfc, 0x23, + 0x7f, 0xe0, 0x26, 0x3e, 0xa3, 0xdd, 0x9a, 0x58, 0xa0, 0xe1, 0xf8, 0x1a, 0x9f, 0x26, 0x11, 0xf3, + 0xd2, 0x81, 0x58, 0x33, 0x87, 0x6b, 0x54, 0x1c, 0xdf, 0xff, 0xc8, 0x1d, 0x90, 0x27, 0xce, 0x7e, + 0xb7, 0x8e, 0xfb, 0x4b, 0xd0, 0xda, 0x80, 0x16, 0x7b, 0x46, 0x49, 0xf4, 0x24, 0x26, 0xd1, 0x83, + 0xbd, 0x6e, 0x43, 0xbc, 0x55, 0x51, 0xd6, 0x75, 0x80, 0x41, 0x44, 0xdc, 0x84, 0x3c, 0xf6, 0x47, + 0xa4, 0x3b, 0xbf, 0x61, 0xdc, 0x68, 0x3b, 0x0a, 0x86, 0x73, 0x18, 0x91, 0xd1, 0x21, 0x89, 0x76, + 0x59, 0x4a, 0x93, 0xee, 0x82, 0x58, 0xa0, 0xa2, 0xac, 0x25, 0x30, 0xc9, 0xf3, 0x6e, 0x53, 0xb0, + 0x36, 0xc9, 0x73, 0x6b, 0x0d, 0x1a, 0x71, 0xe2, 0x26, 0x69, 0xdc, 0x85, 0x0d, 0xe3, 0x46, 0xdd, + 0x91, 0x90, 0xb5, 0x09, 0x6d, 0xc1, 0x97, 0x65, 0xd2, 0xb4, 0x04, 0x89, 0x8e, 0xcc, 0x35, 0xf6, + 0xf8, 0x2c, 0x24, 0xdd, 0x45, 0xc1, 0xa0, 0x40, 0xd8, 0x7f, 0x31, 0x61, 0x55, 0xe8, 0xbd, 0x27, + 0x04, 0xb8, 0x9b, 0x06, 0xc1, 0x05, 0x16, 0x58, 0x83, 0x46, 0x8a, 0xdb, 0xa1, 0xfa, 0x25, 0xc4, + 0xf7, 0x89, 0x58, 0x40, 0xf6, 0xc9, 0x29, 0x09, 0x84, 0xe2, 0xeb, 0x4e, 0x81, 0xb0, 0xd6, 0x61, + 0xe1, 0x7d, 0xe6, 0x53, 0xa1, 0x93, 0x39, 0xf1, 0x32, 0x87, 0xf9, 0x3b, 0xea, 0x0f, 0x4e, 0x28, + 0x37, 0x29, 0xaa, 0x3b, 0x87, 0x55, 0x4b, 0x34, 0x74, 0x4b, 0xbc, 0x01, 0x4b, 0x6e, 0x18, 0xf6, + 0x5c, 0x3a, 0x24, 0x11, 0x6e, 0x3a, 0x2f, 0xf8, 0x96, 0xb0, 0xdc, 0x1e, 0x7c, 0xa7, 0x3e, 0x4b, + 0xa3, 0x01, 0x11, 0xea, 0xae, 0x3b, 0x0a, 0x86, 0xf3, 0x61, 0x21, 0x89, 0x14, 0x35, 0xa2, 0xe6, + 0x4b, 0x58, 0x69, 0x15, 0xc8, 0xad, 0xc2, 0xed, 0x98, 0x26, 0xe4, 0x0e, 0xf5, 0xc4, 0xa1, 0x5a, + 0xd2, 0x8e, 0x05, 0xca, 0xfe, 0x89, 0x01, 0x4b, 0x07, 0xe9, 0x61, 0xe0, 0x0f, 0x04, 0x0b, 0xae, + 0xd6, 0x42, 0x79, 0x86, 0xa6, 0x3c, 0x55, 0x05, 0xe6, 0x74, 0x15, 0xd4, 0x74, 0x15, 0xac, 0x41, + 0x63, 0x48, 0xa8, 0x47, 0x22, 0xa9, 0x52, 0x09, 0x49, 0x51, 0xeb, 0x99, 0xa8, 0xf6, 0x2f, 0x4c, + 0x58, 0xf8, 0x88, 0x45, 0xd8, 0x80, 0x56, 0x78, 0xcc, 0x28, 0x79, 0x98, 0x72, 0xb7, 0x92, 0xb2, + 0xa8, 0x28, 0xeb, 0x35, 0xa8, 0x1f, 0xfa, 0x51, 0x72, 0x2c, 0xec, 0xda, 0x76, 0x10, 0xe0, 0x58, + 0x32, 0x72, 0x7d, 0x34, 0x66, 0xd3, 0x41, 0x40, 0x1e, 0x68, 0x21, 0xd7, 0xbd, 0x1e, 0x63, 0xcd, + 0x4a, 0x8c, 0x55, 0x7d, 0x03, 0x26, 0xf9, 0x86, 0xfd, 0x4f, 0x03, 0xe0, 0x6e, 0xe4, 0x13, 0xea, + 0x09, 0xd5, 0x94, 0x82, 0xdb, 0xa8, 0x06, 0xf7, 0x1a, 0x34, 0x22, 0x32, 0x72, 0xa3, 0x93, 0xcc, + 0xf9, 0x11, 0x2a, 0x09, 0x54, 0xab, 0x08, 0xf4, 0x36, 0xc0, 0x91, 0xd8, 0x87, 0xf3, 0x11, 0xaa, + 0x6a, 0xdd, 0xfc, 0xd4, 0x56, 0x25, 0x0d, 0x6e, 0x65, 0x56, 0x72, 0x94, 0xe5, 0x3c, 0xb2, 0x5c, + 0xcf, 0x93, 0x0e, 0x5c, 0xc7, 0xc8, 0xca, 0x11, 0x13, 0xfc, 0xb7, 0x71, 0x8e, 0xff, 0xce, 0xe7, + 0x4e, 0xf1, 0x77, 0x03, 0x9a, 0x3b, 0x81, 0x3b, 0x38, 0x99, 0xf1, 0xe8, 0xfa, 0x11, 0xcd, 0xca, + 0x11, 0xef, 0x41, 0xfb, 0x90, 0xb3, 0xcb, 0x8e, 0x20, 0xb4, 0xd0, 0xba, 0xf9, 0x99, 0x09, 0xa7, + 0xd4, 0x83, 0xc2, 0xd1, 0xe9, 0xf4, 0xe3, 0xce, 0x5d, 0x7c, 0xdc, 0xfa, 0x39, 0xc7, 0x6d, 0xe4, + 0xc7, 0xfd, 0xb3, 0x09, 0x8b, 0x22, 0xd1, 0x39, 0x64, 0x9c, 0x92, 0x38, 0xb1, 0xbe, 0x01, 0x0b, + 0x69, 0x26, 0xaa, 0x31, 0xab, 0xa8, 0x39, 0x89, 0x75, 0x4b, 0xa6, 0x55, 0x41, 0x6f, 0x0a, 0xfa, + 0x6b, 0x13, 0xe8, 0xf3, 0x9a, 0xe6, 0x14, 0xcb, 0x79, 0x09, 0x3a, 0x76, 0xa9, 0x17, 0x10, 0x87, + 0xc4, 0x69, 0x90, 0xc8, 0x6c, 0xa9, 0xe1, 0xd0, 0xd3, 0xc6, 0xbd, 0x78, 0x28, 0x0b, 0x94, 0x84, + 0xb8, 0x76, 0x70, 0x1d, 0x7f, 0x85, 0x47, 0x2f, 0x10, 0x3c, 0x50, 0x23, 0x32, 0x16, 0x16, 0xc2, + 0xb0, 0xca, 0xc0, 0x62, 0x4f, 0xa9, 0x35, 0x74, 0x04, 0x0d, 0xc7, 0x4d, 0x8c, 0xb0, 0x60, 0x80, + 0x95, 0x49, 0xc1, 0x94, 0x0b, 0x93, 0xfd, 0xd7, 0x1a, 0xb4, 0x31, 0x7c, 0x32, 0xa5, 0x5e, 0xe7, + 0x7e, 0xce, 0x46, 0x9a, 0x17, 0x29, 0x18, 0x2e, 0x05, 0x87, 0x1e, 0xea, 0x89, 0x46, 0xc3, 0x71, + 0x57, 0xe4, 0xf0, 0x5d, 0x2d, 0xe1, 0xa8, 0xa8, 0x6c, 0x97, 0x7b, 0x6a, 0xe2, 0x51, 0x30, 0x3c, + 0x95, 0x25, 0x4c, 0xf3, 0x8e, 0x1c, 0xe6, 0xb4, 0x09, 0xcb, 0xf7, 0x47, 0xff, 0x50, 0x30, 0x5c, + 0xbf, 0x09, 0xcb, 0xf6, 0x46, 0x25, 0x15, 0x08, 0xe4, 0x2c, 0xf7, 0xc5, 0x52, 0x92, 0xc3, 0x15, + 0xab, 0x36, 0xcf, 0xb5, 0x2a, 0x68, 0x56, 0xd5, 0x83, 0xab, 0x55, 0x09, 0xae, 0x4d, 0x68, 0x23, + 0x9f, 0xcc, 0xe9, 0x17, 0xb1, 0xd4, 0x6b, 0x48, 0xdd, 0x37, 0xda, 0x65, 0xdf, 0xd0, 0xad, 0xbb, + 0x34, 0xc5, 0xba, 0x9d, 0xdc, 0xba, 0x3f, 0x80, 0xee, 0x41, 0x1a, 0x04, 0x3d, 0x12, 0xc7, 0xee, + 0x90, 0xec, 0x9c, 0xf5, 0xc9, 0x78, 0xdf, 0x8f, 0x13, 0x87, 0xc4, 0x21, 0xf7, 0x33, 0x12, 0x45, + 0xbb, 0xcc, 0x23, 0xc2, 0xc8, 0x75, 0x27, 0x03, 0xf9, 0x09, 0x49, 0x14, 0x71, 0x01, 0x64, 0x86, + 0x44, 0xc8, 0xda, 0x82, 0xb9, 0xc0, 0x8f, 0xb9, 0xaf, 0xd7, 0x6e, 0xb4, 0x6e, 0xae, 0x4f, 0x08, + 0x95, 0x5e, 0x3c, 0xdc, 0x73, 0x13, 0xd7, 0x11, 0xeb, 0xec, 0x11, 0x7c, 0x62, 0xf2, 0xee, 0xe3, + 0xa9, 0x15, 0x8c, 0xe7, 0x30, 0x91, 0x04, 0x7c, 0x46, 0xf3, 0xf6, 0x44, 0x45, 0x71, 0xb1, 0x63, + 0xe4, 0x23, 0xe4, 0x68, 0x3b, 0x19, 0x68, 0xbf, 0x06, 0xd6, 0x3d, 0x92, 0xf4, 0xdc, 0xe7, 0xdb, + 0xd4, 0xeb, 0xf9, 0xb4, 0x4f, 0xc6, 0x0e, 0x19, 0xdb, 0x77, 0x60, 0xb5, 0x82, 0x8d, 0x43, 0x2e, + 0xc0, 0xc8, 0x7d, 0xde, 0x27, 0x63, 0x21, 0x40, 0xdb, 0x91, 0x90, 0xc0, 0x8b, 0x55, 0x32, 0x3d, + 0x4a, 0xc8, 0x1e, 0x43, 0x87, 0x5b, 0xa8, 0x4f, 0xa8, 0xd7, 0x8b, 0x87, 0x82, 0xc5, 0x06, 0xb4, + 0x50, 0x03, 0xbd, 0x78, 0x58, 0xe4, 0x5b, 0x05, 0xc5, 0x57, 0x0c, 0x02, 0x9f, 0xd0, 0x04, 0x57, + 0xc8, 0xd3, 0x28, 0x28, 0xee, 0x8c, 0x31, 0x91, 0xed, 0x07, 0x8f, 0x92, 0x9a, 0x93, 0xc3, 0xf6, + 0x1f, 0xea, 0x30, 0x2f, 0x15, 0x2a, 0xfa, 0x47, 0x5e, 0xe2, 0x72, 0x7d, 0x21, 0x84, 0xce, 0x38, + 0x38, 0x2d, 0x3a, 0x39, 0x84, 0xd4, 0xde, 0xaf, 0xa6, 0xf7, 0x7e, 0x25, 0x99, 0xe6, 0xaa, 0x32, + 0x95, 0xce, 0x55, 0xaf, 0x9e, 0xeb, 0x4d, 0x58, 0x8e, 0x45, 0xc0, 0x1c, 0x04, 0x6e, 0x72, 0xc4, + 0xa2, 0x91, 0xac, 0x58, 0x75, 0xa7, 0x82, 0xe7, 0xc9, 0x1e, 0x71, 0x79, 0xc0, 0x62, 0x44, 0x96, + 0xb0, 0x3c, 0x3c, 0x10, 0x93, 0x05, 0x2e, 0xb6, 0x0a, 0x3a, 0x12, 0x65, 0x8b, 0x63, 0x9f, 0x51, + 0xd1, 0x0b, 0x63, 0x7c, 0xaa, 0x28, 0x7e, 0xf2, 0x51, 0x3c, 0xbc, 0x1b, 0xb1, 0x91, 0x6c, 0x18, + 0x32, 0x50, 0x9c, 0x9c, 0xd1, 0x84, 0xd0, 0x44, 0xd0, 0xb6, 0x90, 0x56, 0x41, 0x71, 0x5a, 0x09, + 0x8a, 0xe0, 0x5c, 0x74, 0x32, 0xd0, 0x5a, 0x86, 0x5a, 0x4c, 0xc6, 0x32, 0xe2, 0xf8, 0xa3, 0x66, + 0xb9, 0x8e, 0x6e, 0xb9, 0x52, 0x2a, 0x58, 0x16, 0x6f, 0xd5, 0x54, 0x50, 0xdc, 0x06, 0x56, 0xb4, + 0xdb, 0xc0, 0x36, 0xcc, 0xb3, 0x90, 0xfb, 0x79, 0xdc, 0xb5, 0x44, 0x8c, 0x7d, 0x76, 0x7a, 0x8c, + 0x6d, 0x3d, 0xc2, 0x95, 0x77, 0x68, 0x12, 0x9d, 0x39, 0x19, 0x9d, 0xb5, 0x0f, 0x1d, 0x76, 0x74, + 0x14, 0xf8, 0x94, 0x1c, 0xa4, 0xf1, 0xb1, 0xa8, 0x6c, 0xab, 0xa2, 0xb2, 0xd9, 0x13, 0x58, 0x3d, + 0xd2, 0x57, 0x3a, 0x65, 0xd2, 0xf5, 0x5b, 0xb0, 0xa8, 0x6e, 0xc3, 0xd5, 0x70, 0x42, 0xce, 0xa4, + 0x0f, 0xf2, 0x47, 0xde, 0xec, 0x9d, 0xba, 0x41, 0x8a, 0x65, 0x60, 0xc1, 0x41, 0xe0, 0x96, 0xf9, + 0x55, 0xc3, 0xfe, 0xb9, 0x01, 0x9d, 0xd2, 0x06, 0x7c, 0x75, 0xe2, 0x27, 0x01, 0x91, 0x1c, 0x10, + 0xb0, 0x2c, 0x98, 0xf3, 0x48, 0x3c, 0x90, 0x2e, 0x2c, 0x9e, 0x65, 0x26, 0xab, 0xe5, 0xed, 0x22, + 0xbf, 0xf2, 0x3d, 0xea, 0x73, 0x46, 0x7d, 0x96, 0x52, 0x2f, 0xbf, 0xf2, 0x29, 0x38, 0xee, 0x42, + 0xfe, 0xa3, 0xfe, 0x8e, 0xeb, 0x0d, 0x09, 0x5e, 0xcc, 0xea, 0x42, 0x26, 0x1d, 0x69, 0x7b, 0xb0, + 0xf0, 0xd8, 0x0f, 0xe3, 0x5d, 0x36, 0x1a, 0x71, 0x43, 0x78, 0x24, 0xe1, 0xbd, 0xaa, 0x21, 0xec, + 0x2d, 0x21, 0xee, 0x2a, 0x1e, 0x39, 0x72, 0xd3, 0x20, 0xe1, 0x4b, 0xb3, 0xc0, 0x55, 0x50, 0xe2, + 0x4a, 0x12, 0x33, 0xba, 0x87, 0xd4, 0x28, 0xa7, 0x82, 0xb1, 0xff, 0x64, 0xc2, 0xb2, 0x68, 0x1c, + 0x76, 0x85, 0xd9, 0x3d, 0x41, 0x74, 0x13, 0xea, 0x22, 0x0c, 0x65, 0xb3, 0x72, 0x7e, 0xb3, 0x81, + 0x4b, 0xad, 0xdb, 0xd0, 0x60, 0xa1, 0x68, 0x39, 0xb1, 0x43, 0x79, 0x63, 0x1a, 0x91, 0x7e, 0xfb, + 0x73, 0x24, 0x95, 0x75, 0x17, 0x00, 0x2f, 0xa6, 0xfb, 0x45, 0xea, 0x9e, 0x95, 0x87, 0x42, 0xc9, + 0x95, 0x9b, 0xa7, 0xe1, 0xfc, 0x0a, 0x58, 0x73, 0x74, 0xa4, 0xf5, 0x10, 0x96, 0x84, 0xd8, 0x8f, + 0xb2, 0xae, 0x53, 0xd8, 0x60, 0xf6, 0x1d, 0x4b, 0xd4, 0xf6, 0xaf, 0x0c, 0xa9, 0x46, 0xfe, 0xb6, + 0x4f, 0x50, 0xf7, 0x85, 0x4a, 0x8c, 0x4b, 0xa9, 0x64, 0x1d, 0x16, 0xf8, 0x1d, 0x2f, 0x6f, 0x82, + 0x6b, 0x4e, 0x0e, 0x17, 0x26, 0xaa, 0xcd, 0x6c, 0x22, 0xfb, 0xd7, 0x06, 0x74, 0xdf, 0x61, 0x3e, + 0x15, 0x2f, 0xb6, 0xc3, 0x30, 0x90, 0x73, 0x8a, 0x4b, 0xdb, 0xfc, 0x9b, 0xd0, 0x74, 0x91, 0x0d, + 0x4d, 0xa4, 0xd9, 0x67, 0x68, 0x6c, 0x0b, 0x1a, 0xa5, 0x47, 0xa9, 0xa9, 0x3d, 0x8a, 0xfd, 0x81, + 0x01, 0x4b, 0xa8, 0x94, 0x77, 0x53, 0x3f, 0xb9, 0xb4, 0x7c, 0x3b, 0xb0, 0x30, 0x4e, 0xfd, 0xe4, + 0x12, 0x5e, 0x99, 0xd3, 0x55, 0xfd, 0xa9, 0x36, 0xc1, 0x9f, 0xec, 0x0f, 0x0d, 0xb8, 0x56, 0x56, + 0xeb, 0xf6, 0x60, 0x40, 0xc2, 0x97, 0x19, 0x52, 0x5a, 0x8f, 0x36, 0x57, 0xea, 0xd1, 0x26, 0x8a, + 0xec, 0x90, 0xf7, 0xc9, 0xe0, 0xe3, 0x2b, 0xf2, 0x8f, 0x4d, 0xf8, 0xe4, 0xbd, 0x3c, 0xf0, 0x1e, + 0x47, 0x2e, 0x8d, 0x8f, 0x48, 0x14, 0xbd, 0x44, 0x79, 0xf7, 0xa1, 0x4d, 0xc9, 0xb3, 0x42, 0x26, + 0x19, 0x8e, 0xb3, 0xb2, 0xd1, 0x89, 0x67, 0xcb, 0x5d, 0xf6, 0xbf, 0x0c, 0x58, 0x46, 0x3e, 0xdf, + 0xf2, 0x07, 0x27, 0x2f, 0xf1, 0xf0, 0x0f, 0x61, 0xe9, 0x44, 0x48, 0xc0, 0xa1, 0x4b, 0xa4, 0xed, + 0x12, 0xf5, 0x8c, 0xc7, 0xff, 0xb7, 0x01, 0x2b, 0xc8, 0xe8, 0x01, 0x3d, 0xf5, 0x5f, 0xa6, 0xb3, + 0x1e, 0x40, 0xc7, 0x47, 0x11, 0x2e, 0xa9, 0x80, 0x32, 0xf9, 0x8c, 0x1a, 0xf8, 0xbd, 0x01, 0x1d, + 0xe4, 0x74, 0x87, 0x26, 0x24, 0xba, 0xf4, 0xf9, 0xef, 0x43, 0x8b, 0xd0, 0x24, 0x72, 0xe9, 0x65, + 0x32, 0xa4, 0x4a, 0x3a, 0x63, 0x92, 0xfc, 0xc0, 0x00, 0x4b, 0xb0, 0xda, 0xf3, 0xe3, 0x91, 0x1f, + 0xc7, 0x2f, 0xd1, 0x74, 0xb3, 0x09, 0xfc, 0x53, 0x13, 0xd6, 0x15, 0x2e, 0x9c, 0xc3, 0xee, 0xb1, + 0x4b, 0x87, 0x1f, 0x77, 0xc1, 0xb9, 0x67, 0x0e, 0x50, 0xd0, 0xdc, 0x33, 0xe7, 0x5e, 0x68, 0xbb, + 0x32, 0xb9, 0x7d, 0x02, 0x2b, 0x38, 0x7e, 0x51, 0xaa, 0x05, 0xbf, 0x87, 0xb8, 0x1e, 0x5e, 0x2d, + 0x0c, 0x21, 0x46, 0x06, 0xea, 0x83, 0x35, 0xf9, 0xed, 0xa4, 0x18, 0xac, 0x5d, 0x07, 0x70, 0x3d, + 0xef, 0x3d, 0x16, 0x79, 0x3e, 0xcd, 0x4a, 0xbf, 0x82, 0xb1, 0xdf, 0x81, 0x45, 0x7e, 0x13, 0x7a, + 0xac, 0x0c, 0x52, 0xce, 0x1d, 0xf5, 0xa8, 0x43, 0x18, 0x53, 0x1f, 0xc2, 0xd8, 0xdf, 0x87, 0xff, + 0xaf, 0x08, 0x2e, 0xac, 0xb7, 0x8b, 0xf3, 0xa1, 0x6c, 0x13, 0x69, 0xc4, 0x4f, 0x4f, 0x50, 0x90, + 0x2a, 0x8b, 0xa3, 0x11, 0xd9, 0x3f, 0x32, 0xe0, 0xf5, 0x0a, 0xfb, 0xed, 0x30, 0x8c, 0xd8, 0xa9, + 0x74, 0x92, 0xab, 0xd8, 0x46, 0x2f, 0x8b, 0x66, 0xb9, 0x2c, 0x4e, 0x14, 0x42, 0x2b, 0xe5, 0x1f, + 0x81, 0x10, 0xbf, 0x31, 0xa0, 0x23, 0x85, 0xf0, 0x3c, 0xb9, 0xed, 0x57, 0xa0, 0x81, 0xb3, 0x65, + 0xb9, 0xe1, 0xeb, 0x13, 0x37, 0xcc, 0x66, 0xe2, 0x8e, 0x5c, 0x5c, 0xf5, 0x71, 0x73, 0x92, 0x8f, + 0x7f, 0x2d, 0x8f, 0xa4, 0x99, 0xa7, 0xbf, 0x92, 0xc0, 0xfe, 0x4e, 0xe6, 0xcc, 0x7b, 0x24, 0x20, + 0x57, 0xa9, 0x23, 0xfb, 0x09, 0x2c, 0x89, 0x41, 0x77, 0xa1, 0x83, 0x2b, 0x61, 0xfb, 0x1e, 0x2c, + 0x0b, 0xb6, 0x57, 0x2e, 0x6f, 0x1e, 0x1d, 0xe5, 0xdc, 0x76, 0x25, 0xdc, 0xbf, 0x08, 0xab, 0x99, + 0xee, 0x9f, 0x84, 0x5e, 0x7e, 0xbd, 0x9c, 0x32, 0x54, 0xb3, 0xbf, 0x04, 0x6b, 0xbb, 0x8c, 0x9e, + 0x92, 0x28, 0x16, 0x56, 0x46, 0x92, 0x8c, 0x42, 0x0b, 0x7e, 0x09, 0xd9, 0x7d, 0x58, 0x91, 0xe3, + 0xe0, 0x03, 0x77, 0xe8, 0x53, 0xcc, 0x4a, 0xd7, 0x01, 0x42, 0x77, 0x98, 0x7d, 0x0e, 0xc2, 0x99, + 0xa1, 0x82, 0xe1, 0xef, 0xe3, 0x63, 0xf6, 0x4c, 0xbe, 0x37, 0xf1, 0x7d, 0x81, 0xb1, 0xbf, 0x0d, + 0x96, 0x43, 0xe2, 0x90, 0xd1, 0x98, 0x28, 0x5c, 0x37, 0xa0, 0xb5, 0x9b, 0x46, 0x11, 0xa1, 0x7c, + 0xab, 0xec, 0xdb, 0x88, 0x8a, 0xe2, 0x7c, 0xfb, 0x05, 0x5f, 0x9c, 0x33, 0x29, 0x18, 0xfb, 0x97, + 0x35, 0x68, 0xf6, 0xfd, 0x21, 0x75, 0x03, 0x87, 0x8c, 0xad, 0xaf, 0x43, 0x03, 0xab, 0xbf, 0x54, + 0xed, 0xa4, 0xb9, 0x07, 0xae, 0xc6, 0x36, 0xc7, 0x21, 0xe3, 0xfb, 0xff, 0xe7, 0x48, 0x1a, 0xeb, + 0x5d, 0x68, 0xe3, 0xd3, 0x03, 0xbc, 0xcd, 0xc9, 0x6a, 0xf2, 0xb9, 0x0b, 0x98, 0xc8, 0xd5, 0xc8, + 0x4b, 0xe7, 0xc0, 0x05, 0x1a, 0xb8, 0x74, 0x20, 0xbf, 0xa8, 0x9e, 0x27, 0xd0, 0xae, 0x58, 0x26, + 0x05, 0x42, 0x1a, 0x4e, 0xed, 0x8a, 0xfb, 0x8e, 0x2c, 0x34, 0xd3, 0xa9, 0xf1, 0x5a, 0x24, 0xa9, + 0x91, 0x86, 0x53, 0x1f, 0xa7, 0x74, 0xf8, 0x24, 0x94, 0xd7, 0xf0, 0xe9, 0xd4, 0xf7, 0xc5, 0x32, + 0x49, 0x8d, 0x34, 0x9c, 0x3a, 0x12, 0xd9, 0x4e, 0x28, 0xfd, 0x3c, 0x6a, 0x4c, 0x8a, 0x92, 0x1a, + 0x69, 0x76, 0x9a, 0x30, 0x1f, 0xba, 0x67, 0x01, 0x73, 0x3d, 0xfb, 0xb7, 0x35, 0x80, 0x6c, 0x61, + 0x2c, 0x6a, 0xb5, 0x66, 0xa2, 0xcd, 0x0b, 0x4d, 0x14, 0x06, 0x67, 0x8a, 0x91, 0xfa, 0x93, 0x8d, + 0xf4, 0xf9, 0x59, 0x8d, 0x84, 0xdc, 0x4a, 0x66, 0xba, 0x5d, 0x32, 0xd3, 0xe6, 0x85, 0x66, 0x92, + 0x42, 0x49, 0x43, 0xdd, 0x2e, 0x19, 0x6a, 0xf3, 0x42, 0x43, 0x49, 0x7a, 0x69, 0xaa, 0xdb, 0x25, + 0x53, 0x6d, 0x5e, 0x68, 0x2a, 0x49, 0x2f, 0x8d, 0x75, 0xbb, 0x64, 0xac, 0xcd, 0x0b, 0x8d, 0x25, + 0xe9, 0xab, 0xe6, 0xfa, 0xd0, 0x84, 0x25, 0xa1, 0x32, 0x9c, 0xb9, 0xd3, 0x23, 0x26, 0x46, 0x6b, + 0x42, 0x5d, 0xfa, 0xd7, 0x45, 0x1d, 0x69, 0x7d, 0x01, 0x56, 0x10, 0x21, 0xbf, 0x46, 0x89, 0x06, + 0xc9, 0xdc, 0xa8, 0xdd, 0x68, 0x3a, 0xd5, 0x17, 0x62, 0x4a, 0x9a, 0xc6, 0x09, 0x1b, 0xed, 0xb9, + 0x89, 0x9b, 0x75, 0x2b, 0x05, 0x46, 0x9d, 0x61, 0xcf, 0x55, 0xfe, 0x5f, 0x88, 0x18, 0x1b, 0xe5, + 0xc3, 0x69, 0x09, 0x71, 0x8a, 0xc4, 0x1f, 0x11, 0x96, 0x26, 0x32, 0x4d, 0x64, 0x20, 0xaf, 0xb1, + 0x23, 0xe2, 0xf9, 0xae, 0x98, 0xfc, 0xca, 0x4f, 0x42, 0x39, 0x42, 0x64, 0xb6, 0x62, 0x92, 0x2d, + 0xff, 0x2f, 0x28, 0x30, 0x17, 0x4f, 0x9d, 0xed, 0xbf, 0x19, 0xb0, 0x7a, 0xe0, 0x46, 0x89, 0x3f, + 0xf0, 0x43, 0x97, 0x26, 0x3d, 0x92, 0xb8, 0xe2, 0x0c, 0xda, 0x27, 0x46, 0xe3, 0xc5, 0x3e, 0x31, + 0x1e, 0x40, 0x67, 0xa8, 0x37, 0xc9, 0x2f, 0xd8, 0xdb, 0x96, 0xc9, 0xb5, 0xef, 0xa5, 0xb5, 0x17, + 0xfe, 0x5e, 0xca, 0xdb, 0xf6, 0x4e, 0x29, 0x75, 0xf2, 0x16, 0x11, 0x8b, 0x7f, 0xee, 0x13, 0x39, + 0x6c, 0x6d, 0x03, 0xf8, 0xb9, 0x1b, 0x9d, 0x33, 0xc7, 0xd2, 0x7d, 0xcd, 0x51, 0x88, 0x26, 0x8d, + 0xb3, 0x6b, 0x97, 0x1e, 0x67, 0xf3, 0x8b, 0x59, 0x58, 0x18, 0xe9, 0x9c, 0xd6, 0x7d, 0x82, 0x29, + 0x1d, 0x95, 0xd4, 0xfe, 0x1e, 0xac, 0x54, 0x32, 0x94, 0x98, 0x6e, 0xb3, 0x13, 0x42, 0xf3, 0xe9, + 0x36, 0x07, 0x14, 0x67, 0x35, 0xcb, 0xce, 0x1a, 0xf8, 0xa7, 0xea, 0x0f, 0x19, 0x12, 0xb4, 0x7f, + 0x66, 0xc2, 0xda, 0xe4, 0xea, 0xf2, 0xaa, 0xaa, 0xfb, 0x10, 0xba, 0xd3, 0x32, 0xf9, 0x95, 0x69, + 0xbd, 0xf0, 0xee, 0xbc, 0x0e, 0xbf, 0xaa, 0xea, 0x5e, 0xcd, 0xbc, 0x5b, 0x29, 0x75, 0xf6, 0xef, + 0x72, 0xfd, 0xe4, 0x9d, 0xc6, 0x2b, 0xaa, 0x1f, 0xeb, 0x4d, 0x58, 0xc6, 0x63, 0x2a, 0xdf, 0x3f, + 0xb1, 0x71, 0xad, 0xe0, 0x8b, 0x4c, 0xa1, 0x94, 0xfd, 0x2b, 0xf3, 0xd9, 0x3f, 0x1a, 0x99, 0x4d, + 0xf2, 0xfe, 0xed, 0xbf, 0xca, 0x26, 0x85, 0xa7, 0x29, 0x4d, 0x8d, 0xe2, 0x69, 0x79, 0x5f, 0xf9, + 0x3f, 0x4f, 0xbb, 0xd8, 0xd3, 0x72, 0x5d, 0x2a, 0x0d, 0x9e, 0xfd, 0x43, 0x68, 0xef, 0x91, 0xa0, + 0x17, 0x0f, 0xb3, 0x3f, 0x2f, 0xce, 0x53, 0xe4, 0xb4, 0xff, 0x42, 0xa7, 0xfe, 0x73, 0x51, 0xfe, + 0x5f, 0x63, 0xae, 0xf2, 0xbf, 0x86, 0xbd, 0x03, 0x4b, 0xaa, 0x00, 0x97, 0xf9, 0xf1, 0x64, 0xe7, + 0xda, 0x77, 0xd7, 0xb7, 0xde, 0xc2, 0x3f, 0x90, 0xdf, 0xae, 0x28, 0xf1, 0xb0, 0x21, 0xfe, 0x48, + 0xfe, 0xf2, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x57, 0x56, 0x7c, 0x02, 0xa4, 0x2c, 0x00, 0x00, } From ecb1068f0b9465d5fb955ac2c446cce704d59757 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 29 Mar 2022 12:40:08 +0800 Subject: [PATCH 27/28] mute group --- pkg/proto/sdk_ws/ws.proto | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 93d604a7c..a1cc2ce63 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -261,11 +261,31 @@ message GroupDismissedTips{ int64 operationTime = 3; } -message GroupMemberInfoChangedTips{ +message GroupMemberMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; + GroupMemberFullInfo mutedUser = 4; + uint32 mutedSeconds = 5; +} + +message GroupMemberCancelMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; + GroupMemberFullInfo mutedUser = 4; +} + +message GroupMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; +} + +message GroupCancelMutedTips{ GroupInfo group = 1; GroupMemberFullInfo opUser = 2; int64 operationTime = 3; - GroupMemberFullInfo changedUserList = 4; } From 30bc6c274ebe726fe3a34c74a08df208a8113dcf Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 29 Mar 2022 13:30:54 +0800 Subject: [PATCH 28/28] mute group --- pkg/proto/sdk_ws/ws.pb.go | 687 ++++++++++++++++++++++++-------------- 1 file changed, 436 insertions(+), 251 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 9945fbc92..43fd488b8 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,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_48b3765a4295b161, []int{0} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -165,7 +165,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_48b3765a4295b161, []int{1} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -277,7 +277,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_48b3765a4295b161, []int{2} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -352,7 +352,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_48b3765a4295b161, []int{3} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -459,7 +459,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_48b3765a4295b161, []int{4} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -544,7 +544,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_48b3765a4295b161, []int{5} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -625,7 +625,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_48b3765a4295b161, []int{6} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -733,7 +733,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_48b3765a4295b161, []int{7} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -871,7 +871,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_48b3765a4295b161, []int{8} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -925,7 +925,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_48b3765a4295b161, []int{9} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -976,7 +976,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_48b3765a4295b161, []int{10} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1008,7 +1008,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_48b3765a4295b161, []int{11} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1055,7 +1055,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_48b3765a4295b161, []int{12} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1124,7 +1124,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_48b3765a4295b161, []int{13} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1285,7 +1285,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_48b3765a4295b161, []int{14} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1353,7 +1353,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_48b3765a4295b161, []int{15} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1410,7 +1410,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_48b3765a4295b161, []int{16} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1479,7 +1479,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_48b3765a4295b161, []int{17} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1534,7 +1534,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_48b3765a4295b161, []int{18} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1590,7 +1590,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_48b3765a4295b161, []int{19} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1645,7 +1645,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_48b3765a4295b161, []int{20} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1700,7 +1700,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_48b3765a4295b161, []int{21} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1756,7 +1756,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_48b3765a4295b161, []int{22} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1819,7 +1819,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_48b3765a4295b161, []int{23} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1882,7 +1882,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_48b3765a4295b161, []int{24} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1944,7 +1944,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_48b3765a4295b161, []int{25} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1998,7 +1998,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_48b3765a4295b161, []int{26} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{26} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2039,68 +2039,246 @@ func (m *GroupDismissedTips) GetOperationTime() int64 { return 0 } -type GroupMemberInfoChangedTips struct { +type GroupMemberMutedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - ChangedUserList *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUserList" json:"changedUserList,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GroupMemberInfoChangedTips) Reset() { *m = GroupMemberInfoChangedTips{} } -func (m *GroupMemberInfoChangedTips) String() string { return proto.CompactTextString(m) } -func (*GroupMemberInfoChangedTips) ProtoMessage() {} -func (*GroupMemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_48b3765a4295b161, []int{27} +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_f1fa7995a968e7fe, []int{27} } -func (m *GroupMemberInfoChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberInfoChangedTips.Unmarshal(m, b) +func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) } -func (m *GroupMemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberInfoChangedTips.Marshal(b, m, deterministic) +func (m *GroupMemberMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberMutedTips.Marshal(b, m, deterministic) } -func (dst *GroupMemberInfoChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberInfoChangedTips.Merge(dst, src) +func (dst *GroupMemberMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberMutedTips.Merge(dst, src) } -func (m *GroupMemberInfoChangedTips) XXX_Size() int { - return xxx_messageInfo_GroupMemberInfoChangedTips.Size(m) +func (m *GroupMemberMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberMutedTips.Size(m) } -func (m *GroupMemberInfoChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberInfoChangedTips.DiscardUnknown(m) +func (m *GroupMemberMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberMutedTips.DiscardUnknown(m) } -var xxx_messageInfo_GroupMemberInfoChangedTips proto.InternalMessageInfo +var xxx_messageInfo_GroupMemberMutedTips proto.InternalMessageInfo -func (m *GroupMemberInfoChangedTips) GetGroup() *GroupInfo { +func (m *GroupMemberMutedTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *GroupMemberInfoChangedTips) GetOpUser() *GroupMemberFullInfo { +func (m *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { return m.OpUser } return nil } -func (m *GroupMemberInfoChangedTips) GetOperationTime() int64 { +func (m *GroupMemberMutedTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } return 0 } -func (m *GroupMemberInfoChangedTips) GetChangedUserList() *GroupMemberFullInfo { +func (m *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo { if m != nil { - return m.ChangedUserList + return m.MutedUser } return nil } +func (m *GroupMemberMutedTips) GetMutedSeconds() uint32 { + if m != nil { + return m.MutedSeconds + } + return 0 +} + +type GroupMemberCancelMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMutedTips{} } +func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberCancelMutedTips) ProtoMessage() {} +func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_f1fa7995a968e7fe, []int{28} +} +func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) +} +func (m *GroupMemberCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberCancelMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberCancelMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberCancelMutedTips.Merge(dst, src) +} +func (m *GroupMemberCancelMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberCancelMutedTips.Size(m) +} +func (m *GroupMemberCancelMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberCancelMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberCancelMutedTips proto.InternalMessageInfo + +func (m *GroupMemberCancelMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberCancelMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +func (m *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo { + if m != nil { + return m.MutedUser + } + return nil +} + +type GroupMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_f1fa7995a968e7fe, []int{29} +} +func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) +} +func (m *GroupMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMutedTips.Merge(dst, src) +} +func (m *GroupMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMutedTips.Size(m) +} +func (m *GroupMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMutedTips proto.InternalMessageInfo + +func (m *GroupMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupCancelMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_f1fa7995a968e7fe, []int{30} +} +func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) +} +func (m *GroupCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCancelMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCancelMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCancelMutedTips.Merge(dst, src) +} +func (m *GroupCancelMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupCancelMutedTips.Size(m) +} +func (m *GroupCancelMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCancelMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupCancelMutedTips proto.InternalMessageInfo + +func (m *GroupCancelMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupCancelMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + type FriendApplication struct { AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` @@ -2114,7 +2292,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_48b3765a4295b161, []int{28} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{31} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2167,7 +2345,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_48b3765a4295b161, []int{29} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{32} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2213,7 +2391,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_48b3765a4295b161, []int{30} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{33} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2253,7 +2431,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_48b3765a4295b161, []int{31} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{34} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2300,7 +2478,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_48b3765a4295b161, []int{32} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{35} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2348,7 +2526,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_48b3765a4295b161, []int{33} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{36} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2401,7 +2579,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_48b3765a4295b161, []int{34} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{37} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2439,7 +2617,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_48b3765a4295b161, []int{35} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{38} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2477,7 +2655,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_48b3765a4295b161, []int{36} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{39} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2515,7 +2693,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_48b3765a4295b161, []int{37} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{40} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2554,7 +2732,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_48b3765a4295b161, []int{38} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{41} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2593,7 +2771,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_48b3765a4295b161, []int{39} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{42} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -2633,7 +2811,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_48b3765a4295b161, []int{40} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{43} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -2679,7 +2857,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_48b3765a4295b161, []int{41} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{44} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -2732,7 +2910,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_48b3765a4295b161, []int{42} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{45} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -2999,7 +3177,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_48b3765a4295b161, []int{43} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{46} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -3267,7 +3445,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_48b3765a4295b161, []int{44} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{47} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -3363,7 +3541,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_48b3765a4295b161, []int{45} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{48} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -3418,7 +3596,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_48b3765a4295b161, []int{46} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{49} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -3479,7 +3657,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_48b3765a4295b161, []int{47} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{50} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -3534,7 +3712,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_48b3765a4295b161, []int{48} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{51} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -3595,7 +3773,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_48b3765a4295b161, []int{49} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{52} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -3650,7 +3828,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_48b3765a4295b161, []int{50} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{53} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -3708,7 +3886,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_48b3765a4295b161, []int{51} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{54} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -3743,7 +3921,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_48b3765a4295b161, []int{52} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{55} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -3811,7 +3989,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_48b3765a4295b161, []int{53} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{56} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -3865,7 +4043,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_48b3765a4295b161, []int{54} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{57} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -3916,7 +4094,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_48b3765a4295b161, []int{55} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{58} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -3951,7 +4129,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_48b3765a4295b161, []int{56} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{59} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -4016,7 +4194,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_48b3765a4295b161, []int{57} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{60} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -4050,7 +4228,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_48b3765a4295b161, []int{58} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{61} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4110,7 +4288,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_48b3765a4295b161, []int{59} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{62} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4173,7 +4351,10 @@ func init() { proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips") - proto.RegisterType((*GroupMemberInfoChangedTips)(nil), "server_api_params.GroupMemberInfoChangedTips") + proto.RegisterType((*GroupMemberMutedTips)(nil), "server_api_params.GroupMemberMutedTips") + proto.RegisterType((*GroupMemberCancelMutedTips)(nil), "server_api_params.GroupMemberCancelMutedTips") + proto.RegisterType((*GroupMutedTips)(nil), "server_api_params.GroupMutedTips") + proto.RegisterType((*GroupCancelMutedTips)(nil), "server_api_params.GroupCancelMutedTips") proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") @@ -4208,172 +4389,176 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_48b3765a4295b161) } - -var fileDescriptor_ws_48b3765a4295b161 = []byte{ - // 2624 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3a, 0xcd, 0x6f, 0xe4, 0x48, - 0xf5, 0x3f, 0xbb, 0xd3, 0x9d, 0xf4, 0xeb, 0x74, 0x3a, 0x71, 0xf6, 0x17, 0x9a, 0x30, 0x3b, 0x04, - 0x2b, 0x5a, 0x86, 0x05, 0xb2, 0x68, 0x10, 0x12, 0xcc, 0xc2, 0xa0, 0x7c, 0xcc, 0xd7, 0x92, 0x9e, - 0xc9, 0xba, 0x67, 0x58, 0x04, 0x48, 0x23, 0xa7, 0x5d, 0xe9, 0x78, 0xe3, 0xae, 0x72, 0xfb, 0x23, - 0x33, 0x91, 0x90, 0x90, 0x40, 0x42, 0xdc, 0x38, 0xc1, 0x15, 0x89, 0x0b, 0x42, 0x42, 0xab, 0x3d, - 0xc0, 0x0d, 0x71, 0xe2, 0x1f, 0xe0, 0x88, 0xb8, 0x71, 0xe6, 0xca, 0x01, 0x09, 0x09, 0x54, 0xf5, - 0xca, 0x76, 0x95, 0xdd, 0x9d, 0xf4, 0x44, 0xd1, 0xce, 0xa2, 0xe1, 0xe6, 0xf7, 0x5c, 0xef, 0xd5, - 0xab, 0xf7, 0x5d, 0xcf, 0x86, 0x4e, 0xec, 0x9d, 0x3c, 0x7d, 0x16, 0xbf, 0xf5, 0x2c, 0xde, 0x0a, - 0x23, 0x96, 0x30, 0x6b, 0x25, 0x26, 0xd1, 0x29, 0x89, 0x9e, 0xba, 0xa1, 0xff, 0x34, 0x74, 0x23, - 0x77, 0x14, 0xdb, 0xff, 0x30, 0xa1, 0x79, 0x2f, 0x62, 0x69, 0xf8, 0x80, 0x1e, 0x31, 0xab, 0x0b, - 0xf3, 0x43, 0x01, 0xec, 0x75, 0x8d, 0x0d, 0xe3, 0x46, 0xd3, 0xc9, 0x40, 0xeb, 0x1a, 0x34, 0xc5, - 0xe3, 0x43, 0x77, 0x44, 0xba, 0xa6, 0x78, 0x57, 0x20, 0x2c, 0x1b, 0x16, 0x29, 0x4b, 0xfc, 0x23, - 0x7f, 0xe0, 0x26, 0x3e, 0xa3, 0xdd, 0x9a, 0x58, 0xa0, 0xe1, 0xf8, 0x1a, 0x9f, 0x26, 0x11, 0xf3, - 0xd2, 0x81, 0x58, 0x33, 0x87, 0x6b, 0x54, 0x1c, 0xdf, 0xff, 0xc8, 0x1d, 0x90, 0x27, 0xce, 0x7e, - 0xb7, 0x8e, 0xfb, 0x4b, 0xd0, 0xda, 0x80, 0x16, 0x7b, 0x46, 0x49, 0xf4, 0x24, 0x26, 0xd1, 0x83, - 0xbd, 0x6e, 0x43, 0xbc, 0x55, 0x51, 0xd6, 0x75, 0x80, 0x41, 0x44, 0xdc, 0x84, 0x3c, 0xf6, 0x47, - 0xa4, 0x3b, 0xbf, 0x61, 0xdc, 0x68, 0x3b, 0x0a, 0x86, 0x73, 0x18, 0x91, 0xd1, 0x21, 0x89, 0x76, - 0x59, 0x4a, 0x93, 0xee, 0x82, 0x58, 0xa0, 0xa2, 0xac, 0x25, 0x30, 0xc9, 0xf3, 0x6e, 0x53, 0xb0, - 0x36, 0xc9, 0x73, 0x6b, 0x0d, 0x1a, 0x71, 0xe2, 0x26, 0x69, 0xdc, 0x85, 0x0d, 0xe3, 0x46, 0xdd, - 0x91, 0x90, 0xb5, 0x09, 0x6d, 0xc1, 0x97, 0x65, 0xd2, 0xb4, 0x04, 0x89, 0x8e, 0xcc, 0x35, 0xf6, - 0xf8, 0x2c, 0x24, 0xdd, 0x45, 0xc1, 0xa0, 0x40, 0xd8, 0x7f, 0x31, 0x61, 0x55, 0xe8, 0xbd, 0x27, - 0x04, 0xb8, 0x9b, 0x06, 0xc1, 0x05, 0x16, 0x58, 0x83, 0x46, 0x8a, 0xdb, 0xa1, 0xfa, 0x25, 0xc4, - 0xf7, 0x89, 0x58, 0x40, 0xf6, 0xc9, 0x29, 0x09, 0x84, 0xe2, 0xeb, 0x4e, 0x81, 0xb0, 0xd6, 0x61, - 0xe1, 0x7d, 0xe6, 0x53, 0xa1, 0x93, 0x39, 0xf1, 0x32, 0x87, 0xf9, 0x3b, 0xea, 0x0f, 0x4e, 0x28, - 0x37, 0x29, 0xaa, 0x3b, 0x87, 0x55, 0x4b, 0x34, 0x74, 0x4b, 0xbc, 0x01, 0x4b, 0x6e, 0x18, 0xf6, - 0x5c, 0x3a, 0x24, 0x11, 0x6e, 0x3a, 0x2f, 0xf8, 0x96, 0xb0, 0xdc, 0x1e, 0x7c, 0xa7, 0x3e, 0x4b, - 0xa3, 0x01, 0x11, 0xea, 0xae, 0x3b, 0x0a, 0x86, 0xf3, 0x61, 0x21, 0x89, 0x14, 0x35, 0xa2, 0xe6, - 0x4b, 0x58, 0x69, 0x15, 0xc8, 0xad, 0xc2, 0xed, 0x98, 0x26, 0xe4, 0x0e, 0xf5, 0xc4, 0xa1, 0x5a, - 0xd2, 0x8e, 0x05, 0xca, 0xfe, 0x89, 0x01, 0x4b, 0x07, 0xe9, 0x61, 0xe0, 0x0f, 0x04, 0x0b, 0xae, - 0xd6, 0x42, 0x79, 0x86, 0xa6, 0x3c, 0x55, 0x05, 0xe6, 0x74, 0x15, 0xd4, 0x74, 0x15, 0xac, 0x41, - 0x63, 0x48, 0xa8, 0x47, 0x22, 0xa9, 0x52, 0x09, 0x49, 0x51, 0xeb, 0x99, 0xa8, 0xf6, 0x2f, 0x4c, - 0x58, 0xf8, 0x88, 0x45, 0xd8, 0x80, 0x56, 0x78, 0xcc, 0x28, 0x79, 0x98, 0x72, 0xb7, 0x92, 0xb2, - 0xa8, 0x28, 0xeb, 0x35, 0xa8, 0x1f, 0xfa, 0x51, 0x72, 0x2c, 0xec, 0xda, 0x76, 0x10, 0xe0, 0x58, - 0x32, 0x72, 0x7d, 0x34, 0x66, 0xd3, 0x41, 0x40, 0x1e, 0x68, 0x21, 0xd7, 0xbd, 0x1e, 0x63, 0xcd, - 0x4a, 0x8c, 0x55, 0x7d, 0x03, 0x26, 0xf9, 0x86, 0xfd, 0x4f, 0x03, 0xe0, 0x6e, 0xe4, 0x13, 0xea, - 0x09, 0xd5, 0x94, 0x82, 0xdb, 0xa8, 0x06, 0xf7, 0x1a, 0x34, 0x22, 0x32, 0x72, 0xa3, 0x93, 0xcc, - 0xf9, 0x11, 0x2a, 0x09, 0x54, 0xab, 0x08, 0xf4, 0x36, 0xc0, 0x91, 0xd8, 0x87, 0xf3, 0x11, 0xaa, - 0x6a, 0xdd, 0xfc, 0xd4, 0x56, 0x25, 0x0d, 0x6e, 0x65, 0x56, 0x72, 0x94, 0xe5, 0x3c, 0xb2, 0x5c, - 0xcf, 0x93, 0x0e, 0x5c, 0xc7, 0xc8, 0xca, 0x11, 0x13, 0xfc, 0xb7, 0x71, 0x8e, 0xff, 0xce, 0xe7, - 0x4e, 0xf1, 0x77, 0x03, 0x9a, 0x3b, 0x81, 0x3b, 0x38, 0x99, 0xf1, 0xe8, 0xfa, 0x11, 0xcd, 0xca, - 0x11, 0xef, 0x41, 0xfb, 0x90, 0xb3, 0xcb, 0x8e, 0x20, 0xb4, 0xd0, 0xba, 0xf9, 0x99, 0x09, 0xa7, - 0xd4, 0x83, 0xc2, 0xd1, 0xe9, 0xf4, 0xe3, 0xce, 0x5d, 0x7c, 0xdc, 0xfa, 0x39, 0xc7, 0x6d, 0xe4, - 0xc7, 0xfd, 0xb3, 0x09, 0x8b, 0x22, 0xd1, 0x39, 0x64, 0x9c, 0x92, 0x38, 0xb1, 0xbe, 0x01, 0x0b, - 0x69, 0x26, 0xaa, 0x31, 0xab, 0xa8, 0x39, 0x89, 0x75, 0x4b, 0xa6, 0x55, 0x41, 0x6f, 0x0a, 0xfa, - 0x6b, 0x13, 0xe8, 0xf3, 0x9a, 0xe6, 0x14, 0xcb, 0x79, 0x09, 0x3a, 0x76, 0xa9, 0x17, 0x10, 0x87, - 0xc4, 0x69, 0x90, 0xc8, 0x6c, 0xa9, 0xe1, 0xd0, 0xd3, 0xc6, 0xbd, 0x78, 0x28, 0x0b, 0x94, 0x84, - 0xb8, 0x76, 0x70, 0x1d, 0x7f, 0x85, 0x47, 0x2f, 0x10, 0x3c, 0x50, 0x23, 0x32, 0x16, 0x16, 0xc2, - 0xb0, 0xca, 0xc0, 0x62, 0x4f, 0xa9, 0x35, 0x74, 0x04, 0x0d, 0xc7, 0x4d, 0x8c, 0xb0, 0x60, 0x80, - 0x95, 0x49, 0xc1, 0x94, 0x0b, 0x93, 0xfd, 0xd7, 0x1a, 0xb4, 0x31, 0x7c, 0x32, 0xa5, 0x5e, 0xe7, - 0x7e, 0xce, 0x46, 0x9a, 0x17, 0x29, 0x18, 0x2e, 0x05, 0x87, 0x1e, 0xea, 0x89, 0x46, 0xc3, 0x71, - 0x57, 0xe4, 0xf0, 0x5d, 0x2d, 0xe1, 0xa8, 0xa8, 0x6c, 0x97, 0x7b, 0x6a, 0xe2, 0x51, 0x30, 0x3c, - 0x95, 0x25, 0x4c, 0xf3, 0x8e, 0x1c, 0xe6, 0xb4, 0x09, 0xcb, 0xf7, 0x47, 0xff, 0x50, 0x30, 0x5c, - 0xbf, 0x09, 0xcb, 0xf6, 0x46, 0x25, 0x15, 0x08, 0xe4, 0x2c, 0xf7, 0xc5, 0x52, 0x92, 0xc3, 0x15, - 0xab, 0x36, 0xcf, 0xb5, 0x2a, 0x68, 0x56, 0xd5, 0x83, 0xab, 0x55, 0x09, 0xae, 0x4d, 0x68, 0x23, - 0x9f, 0xcc, 0xe9, 0x17, 0xb1, 0xd4, 0x6b, 0x48, 0xdd, 0x37, 0xda, 0x65, 0xdf, 0xd0, 0xad, 0xbb, - 0x34, 0xc5, 0xba, 0x9d, 0xdc, 0xba, 0x3f, 0x80, 0xee, 0x41, 0x1a, 0x04, 0x3d, 0x12, 0xc7, 0xee, - 0x90, 0xec, 0x9c, 0xf5, 0xc9, 0x78, 0xdf, 0x8f, 0x13, 0x87, 0xc4, 0x21, 0xf7, 0x33, 0x12, 0x45, - 0xbb, 0xcc, 0x23, 0xc2, 0xc8, 0x75, 0x27, 0x03, 0xf9, 0x09, 0x49, 0x14, 0x71, 0x01, 0x64, 0x86, - 0x44, 0xc8, 0xda, 0x82, 0xb9, 0xc0, 0x8f, 0xb9, 0xaf, 0xd7, 0x6e, 0xb4, 0x6e, 0xae, 0x4f, 0x08, - 0x95, 0x5e, 0x3c, 0xdc, 0x73, 0x13, 0xd7, 0x11, 0xeb, 0xec, 0x11, 0x7c, 0x62, 0xf2, 0xee, 0xe3, - 0xa9, 0x15, 0x8c, 0xe7, 0x30, 0x91, 0x04, 0x7c, 0x46, 0xf3, 0xf6, 0x44, 0x45, 0x71, 0xb1, 0x63, - 0xe4, 0x23, 0xe4, 0x68, 0x3b, 0x19, 0x68, 0xbf, 0x06, 0xd6, 0x3d, 0x92, 0xf4, 0xdc, 0xe7, 0xdb, - 0xd4, 0xeb, 0xf9, 0xb4, 0x4f, 0xc6, 0x0e, 0x19, 0xdb, 0x77, 0x60, 0xb5, 0x82, 0x8d, 0x43, 0x2e, - 0xc0, 0xc8, 0x7d, 0xde, 0x27, 0x63, 0x21, 0x40, 0xdb, 0x91, 0x90, 0xc0, 0x8b, 0x55, 0x32, 0x3d, - 0x4a, 0xc8, 0x1e, 0x43, 0x87, 0x5b, 0xa8, 0x4f, 0xa8, 0xd7, 0x8b, 0x87, 0x82, 0xc5, 0x06, 0xb4, - 0x50, 0x03, 0xbd, 0x78, 0x58, 0xe4, 0x5b, 0x05, 0xc5, 0x57, 0x0c, 0x02, 0x9f, 0xd0, 0x04, 0x57, - 0xc8, 0xd3, 0x28, 0x28, 0xee, 0x8c, 0x31, 0x91, 0xed, 0x07, 0x8f, 0x92, 0x9a, 0x93, 0xc3, 0xf6, - 0x1f, 0xea, 0x30, 0x2f, 0x15, 0x2a, 0xfa, 0x47, 0x5e, 0xe2, 0x72, 0x7d, 0x21, 0x84, 0xce, 0x38, - 0x38, 0x2d, 0x3a, 0x39, 0x84, 0xd4, 0xde, 0xaf, 0xa6, 0xf7, 0x7e, 0x25, 0x99, 0xe6, 0xaa, 0x32, - 0x95, 0xce, 0x55, 0xaf, 0x9e, 0xeb, 0x4d, 0x58, 0x8e, 0x45, 0xc0, 0x1c, 0x04, 0x6e, 0x72, 0xc4, - 0xa2, 0x91, 0xac, 0x58, 0x75, 0xa7, 0x82, 0xe7, 0xc9, 0x1e, 0x71, 0x79, 0xc0, 0x62, 0x44, 0x96, - 0xb0, 0x3c, 0x3c, 0x10, 0x93, 0x05, 0x2e, 0xb6, 0x0a, 0x3a, 0x12, 0x65, 0x8b, 0x63, 0x9f, 0x51, - 0xd1, 0x0b, 0x63, 0x7c, 0xaa, 0x28, 0x7e, 0xf2, 0x51, 0x3c, 0xbc, 0x1b, 0xb1, 0x91, 0x6c, 0x18, - 0x32, 0x50, 0x9c, 0x9c, 0xd1, 0x84, 0xd0, 0x44, 0xd0, 0xb6, 0x90, 0x56, 0x41, 0x71, 0x5a, 0x09, - 0x8a, 0xe0, 0x5c, 0x74, 0x32, 0xd0, 0x5a, 0x86, 0x5a, 0x4c, 0xc6, 0x32, 0xe2, 0xf8, 0xa3, 0x66, - 0xb9, 0x8e, 0x6e, 0xb9, 0x52, 0x2a, 0x58, 0x16, 0x6f, 0xd5, 0x54, 0x50, 0xdc, 0x06, 0x56, 0xb4, - 0xdb, 0xc0, 0x36, 0xcc, 0xb3, 0x90, 0xfb, 0x79, 0xdc, 0xb5, 0x44, 0x8c, 0x7d, 0x76, 0x7a, 0x8c, - 0x6d, 0x3d, 0xc2, 0x95, 0x77, 0x68, 0x12, 0x9d, 0x39, 0x19, 0x9d, 0xb5, 0x0f, 0x1d, 0x76, 0x74, - 0x14, 0xf8, 0x94, 0x1c, 0xa4, 0xf1, 0xb1, 0xa8, 0x6c, 0xab, 0xa2, 0xb2, 0xd9, 0x13, 0x58, 0x3d, - 0xd2, 0x57, 0x3a, 0x65, 0xd2, 0xf5, 0x5b, 0xb0, 0xa8, 0x6e, 0xc3, 0xd5, 0x70, 0x42, 0xce, 0xa4, - 0x0f, 0xf2, 0x47, 0xde, 0xec, 0x9d, 0xba, 0x41, 0x8a, 0x65, 0x60, 0xc1, 0x41, 0xe0, 0x96, 0xf9, - 0x55, 0xc3, 0xfe, 0xb9, 0x01, 0x9d, 0xd2, 0x06, 0x7c, 0x75, 0xe2, 0x27, 0x01, 0x91, 0x1c, 0x10, - 0xb0, 0x2c, 0x98, 0xf3, 0x48, 0x3c, 0x90, 0x2e, 0x2c, 0x9e, 0x65, 0x26, 0xab, 0xe5, 0xed, 0x22, - 0xbf, 0xf2, 0x3d, 0xea, 0x73, 0x46, 0x7d, 0x96, 0x52, 0x2f, 0xbf, 0xf2, 0x29, 0x38, 0xee, 0x42, - 0xfe, 0xa3, 0xfe, 0x8e, 0xeb, 0x0d, 0x09, 0x5e, 0xcc, 0xea, 0x42, 0x26, 0x1d, 0x69, 0x7b, 0xb0, - 0xf0, 0xd8, 0x0f, 0xe3, 0x5d, 0x36, 0x1a, 0x71, 0x43, 0x78, 0x24, 0xe1, 0xbd, 0xaa, 0x21, 0xec, - 0x2d, 0x21, 0xee, 0x2a, 0x1e, 0x39, 0x72, 0xd3, 0x20, 0xe1, 0x4b, 0xb3, 0xc0, 0x55, 0x50, 0xe2, - 0x4a, 0x12, 0x33, 0xba, 0x87, 0xd4, 0x28, 0xa7, 0x82, 0xb1, 0xff, 0x64, 0xc2, 0xb2, 0x68, 0x1c, - 0x76, 0x85, 0xd9, 0x3d, 0x41, 0x74, 0x13, 0xea, 0x22, 0x0c, 0x65, 0xb3, 0x72, 0x7e, 0xb3, 0x81, - 0x4b, 0xad, 0xdb, 0xd0, 0x60, 0xa1, 0x68, 0x39, 0xb1, 0x43, 0x79, 0x63, 0x1a, 0x91, 0x7e, 0xfb, - 0x73, 0x24, 0x95, 0x75, 0x17, 0x00, 0x2f, 0xa6, 0xfb, 0x45, 0xea, 0x9e, 0x95, 0x87, 0x42, 0xc9, - 0x95, 0x9b, 0xa7, 0xe1, 0xfc, 0x0a, 0x58, 0x73, 0x74, 0xa4, 0xf5, 0x10, 0x96, 0x84, 0xd8, 0x8f, - 0xb2, 0xae, 0x53, 0xd8, 0x60, 0xf6, 0x1d, 0x4b, 0xd4, 0xf6, 0xaf, 0x0c, 0xa9, 0x46, 0xfe, 0xb6, - 0x4f, 0x50, 0xf7, 0x85, 0x4a, 0x8c, 0x4b, 0xa9, 0x64, 0x1d, 0x16, 0xf8, 0x1d, 0x2f, 0x6f, 0x82, - 0x6b, 0x4e, 0x0e, 0x17, 0x26, 0xaa, 0xcd, 0x6c, 0x22, 0xfb, 0xd7, 0x06, 0x74, 0xdf, 0x61, 0x3e, - 0x15, 0x2f, 0xb6, 0xc3, 0x30, 0x90, 0x73, 0x8a, 0x4b, 0xdb, 0xfc, 0x9b, 0xd0, 0x74, 0x91, 0x0d, - 0x4d, 0xa4, 0xd9, 0x67, 0x68, 0x6c, 0x0b, 0x1a, 0xa5, 0x47, 0xa9, 0xa9, 0x3d, 0x8a, 0xfd, 0x81, - 0x01, 0x4b, 0xa8, 0x94, 0x77, 0x53, 0x3f, 0xb9, 0xb4, 0x7c, 0x3b, 0xb0, 0x30, 0x4e, 0xfd, 0xe4, - 0x12, 0x5e, 0x99, 0xd3, 0x55, 0xfd, 0xa9, 0x36, 0xc1, 0x9f, 0xec, 0x0f, 0x0d, 0xb8, 0x56, 0x56, - 0xeb, 0xf6, 0x60, 0x40, 0xc2, 0x97, 0x19, 0x52, 0x5a, 0x8f, 0x36, 0x57, 0xea, 0xd1, 0x26, 0x8a, - 0xec, 0x90, 0xf7, 0xc9, 0xe0, 0xe3, 0x2b, 0xf2, 0x8f, 0x4d, 0xf8, 0xe4, 0xbd, 0x3c, 0xf0, 0x1e, - 0x47, 0x2e, 0x8d, 0x8f, 0x48, 0x14, 0xbd, 0x44, 0x79, 0xf7, 0xa1, 0x4d, 0xc9, 0xb3, 0x42, 0x26, - 0x19, 0x8e, 0xb3, 0xb2, 0xd1, 0x89, 0x67, 0xcb, 0x5d, 0xf6, 0xbf, 0x0c, 0x58, 0x46, 0x3e, 0xdf, - 0xf2, 0x07, 0x27, 0x2f, 0xf1, 0xf0, 0x0f, 0x61, 0xe9, 0x44, 0x48, 0xc0, 0xa1, 0x4b, 0xa4, 0xed, - 0x12, 0xf5, 0x8c, 0xc7, 0xff, 0xb7, 0x01, 0x2b, 0xc8, 0xe8, 0x01, 0x3d, 0xf5, 0x5f, 0xa6, 0xb3, - 0x1e, 0x40, 0xc7, 0x47, 0x11, 0x2e, 0xa9, 0x80, 0x32, 0xf9, 0x8c, 0x1a, 0xf8, 0xbd, 0x01, 0x1d, - 0xe4, 0x74, 0x87, 0x26, 0x24, 0xba, 0xf4, 0xf9, 0xef, 0x43, 0x8b, 0xd0, 0x24, 0x72, 0xe9, 0x65, - 0x32, 0xa4, 0x4a, 0x3a, 0x63, 0x92, 0xfc, 0xc0, 0x00, 0x4b, 0xb0, 0xda, 0xf3, 0xe3, 0x91, 0x1f, - 0xc7, 0x2f, 0xd1, 0x74, 0xb3, 0x09, 0xfc, 0x53, 0x13, 0xd6, 0x15, 0x2e, 0x9c, 0xc3, 0xee, 0xb1, - 0x4b, 0x87, 0x1f, 0x77, 0xc1, 0xb9, 0x67, 0x0e, 0x50, 0xd0, 0xdc, 0x33, 0xe7, 0x5e, 0x68, 0xbb, - 0x32, 0xb9, 0x7d, 0x02, 0x2b, 0x38, 0x7e, 0x51, 0xaa, 0x05, 0xbf, 0x87, 0xb8, 0x1e, 0x5e, 0x2d, - 0x0c, 0x21, 0x46, 0x06, 0xea, 0x83, 0x35, 0xf9, 0xed, 0xa4, 0x18, 0xac, 0x5d, 0x07, 0x70, 0x3d, - 0xef, 0x3d, 0x16, 0x79, 0x3e, 0xcd, 0x4a, 0xbf, 0x82, 0xb1, 0xdf, 0x81, 0x45, 0x7e, 0x13, 0x7a, - 0xac, 0x0c, 0x52, 0xce, 0x1d, 0xf5, 0xa8, 0x43, 0x18, 0x53, 0x1f, 0xc2, 0xd8, 0xdf, 0x87, 0xff, - 0xaf, 0x08, 0x2e, 0xac, 0xb7, 0x8b, 0xf3, 0xa1, 0x6c, 0x13, 0x69, 0xc4, 0x4f, 0x4f, 0x50, 0x90, - 0x2a, 0x8b, 0xa3, 0x11, 0xd9, 0x3f, 0x32, 0xe0, 0xf5, 0x0a, 0xfb, 0xed, 0x30, 0x8c, 0xd8, 0xa9, - 0x74, 0x92, 0xab, 0xd8, 0x46, 0x2f, 0x8b, 0x66, 0xb9, 0x2c, 0x4e, 0x14, 0x42, 0x2b, 0xe5, 0x1f, - 0x81, 0x10, 0xbf, 0x31, 0xa0, 0x23, 0x85, 0xf0, 0x3c, 0xb9, 0xed, 0x57, 0xa0, 0x81, 0xb3, 0x65, - 0xb9, 0xe1, 0xeb, 0x13, 0x37, 0xcc, 0x66, 0xe2, 0x8e, 0x5c, 0x5c, 0xf5, 0x71, 0x73, 0x92, 0x8f, - 0x7f, 0x2d, 0x8f, 0xa4, 0x99, 0xa7, 0xbf, 0x92, 0xc0, 0xfe, 0x4e, 0xe6, 0xcc, 0x7b, 0x24, 0x20, - 0x57, 0xa9, 0x23, 0xfb, 0x09, 0x2c, 0x89, 0x41, 0x77, 0xa1, 0x83, 0x2b, 0x61, 0xfb, 0x1e, 0x2c, - 0x0b, 0xb6, 0x57, 0x2e, 0x6f, 0x1e, 0x1d, 0xe5, 0xdc, 0x76, 0x25, 0xdc, 0xbf, 0x08, 0xab, 0x99, - 0xee, 0x9f, 0x84, 0x5e, 0x7e, 0xbd, 0x9c, 0x32, 0x54, 0xb3, 0xbf, 0x04, 0x6b, 0xbb, 0x8c, 0x9e, - 0x92, 0x28, 0x16, 0x56, 0x46, 0x92, 0x8c, 0x42, 0x0b, 0x7e, 0x09, 0xd9, 0x7d, 0x58, 0x91, 0xe3, - 0xe0, 0x03, 0x77, 0xe8, 0x53, 0xcc, 0x4a, 0xd7, 0x01, 0x42, 0x77, 0x98, 0x7d, 0x0e, 0xc2, 0x99, - 0xa1, 0x82, 0xe1, 0xef, 0xe3, 0x63, 0xf6, 0x4c, 0xbe, 0x37, 0xf1, 0x7d, 0x81, 0xb1, 0xbf, 0x0d, - 0x96, 0x43, 0xe2, 0x90, 0xd1, 0x98, 0x28, 0x5c, 0x37, 0xa0, 0xb5, 0x9b, 0x46, 0x11, 0xa1, 0x7c, - 0xab, 0xec, 0xdb, 0x88, 0x8a, 0xe2, 0x7c, 0xfb, 0x05, 0x5f, 0x9c, 0x33, 0x29, 0x18, 0xfb, 0x97, - 0x35, 0x68, 0xf6, 0xfd, 0x21, 0x75, 0x03, 0x87, 0x8c, 0xad, 0xaf, 0x43, 0x03, 0xab, 0xbf, 0x54, - 0xed, 0xa4, 0xb9, 0x07, 0xae, 0xc6, 0x36, 0xc7, 0x21, 0xe3, 0xfb, 0xff, 0xe7, 0x48, 0x1a, 0xeb, - 0x5d, 0x68, 0xe3, 0xd3, 0x03, 0xbc, 0xcd, 0xc9, 0x6a, 0xf2, 0xb9, 0x0b, 0x98, 0xc8, 0xd5, 0xc8, - 0x4b, 0xe7, 0xc0, 0x05, 0x1a, 0xb8, 0x74, 0x20, 0xbf, 0xa8, 0x9e, 0x27, 0xd0, 0xae, 0x58, 0x26, - 0x05, 0x42, 0x1a, 0x4e, 0xed, 0x8a, 0xfb, 0x8e, 0x2c, 0x34, 0xd3, 0xa9, 0xf1, 0x5a, 0x24, 0xa9, - 0x91, 0x86, 0x53, 0x1f, 0xa7, 0x74, 0xf8, 0x24, 0x94, 0xd7, 0xf0, 0xe9, 0xd4, 0xf7, 0xc5, 0x32, - 0x49, 0x8d, 0x34, 0x9c, 0x3a, 0x12, 0xd9, 0x4e, 0x28, 0xfd, 0x3c, 0x6a, 0x4c, 0x8a, 0x92, 0x1a, - 0x69, 0x76, 0x9a, 0x30, 0x1f, 0xba, 0x67, 0x01, 0x73, 0x3d, 0xfb, 0xb7, 0x35, 0x80, 0x6c, 0x61, - 0x2c, 0x6a, 0xb5, 0x66, 0xa2, 0xcd, 0x0b, 0x4d, 0x14, 0x06, 0x67, 0x8a, 0x91, 0xfa, 0x93, 0x8d, - 0xf4, 0xf9, 0x59, 0x8d, 0x84, 0xdc, 0x4a, 0x66, 0xba, 0x5d, 0x32, 0xd3, 0xe6, 0x85, 0x66, 0x92, - 0x42, 0x49, 0x43, 0xdd, 0x2e, 0x19, 0x6a, 0xf3, 0x42, 0x43, 0x49, 0x7a, 0x69, 0xaa, 0xdb, 0x25, - 0x53, 0x6d, 0x5e, 0x68, 0x2a, 0x49, 0x2f, 0x8d, 0x75, 0xbb, 0x64, 0xac, 0xcd, 0x0b, 0x8d, 0x25, - 0xe9, 0xab, 0xe6, 0xfa, 0xd0, 0x84, 0x25, 0xa1, 0x32, 0x9c, 0xb9, 0xd3, 0x23, 0x26, 0x46, 0x6b, - 0x42, 0x5d, 0xfa, 0xd7, 0x45, 0x1d, 0x69, 0x7d, 0x01, 0x56, 0x10, 0x21, 0xbf, 0x46, 0x89, 0x06, - 0xc9, 0xdc, 0xa8, 0xdd, 0x68, 0x3a, 0xd5, 0x17, 0x62, 0x4a, 0x9a, 0xc6, 0x09, 0x1b, 0xed, 0xb9, - 0x89, 0x9b, 0x75, 0x2b, 0x05, 0x46, 0x9d, 0x61, 0xcf, 0x55, 0xfe, 0x5f, 0x88, 0x18, 0x1b, 0xe5, - 0xc3, 0x69, 0x09, 0x71, 0x8a, 0xc4, 0x1f, 0x11, 0x96, 0x26, 0x32, 0x4d, 0x64, 0x20, 0xaf, 0xb1, - 0x23, 0xe2, 0xf9, 0xae, 0x98, 0xfc, 0xca, 0x4f, 0x42, 0x39, 0x42, 0x64, 0xb6, 0x62, 0x92, 0x2d, - 0xff, 0x2f, 0x28, 0x30, 0x17, 0x4f, 0x9d, 0xed, 0xbf, 0x19, 0xb0, 0x7a, 0xe0, 0x46, 0x89, 0x3f, - 0xf0, 0x43, 0x97, 0x26, 0x3d, 0x92, 0xb8, 0xe2, 0x0c, 0xda, 0x27, 0x46, 0xe3, 0xc5, 0x3e, 0x31, - 0x1e, 0x40, 0x67, 0xa8, 0x37, 0xc9, 0x2f, 0xd8, 0xdb, 0x96, 0xc9, 0xb5, 0xef, 0xa5, 0xb5, 0x17, - 0xfe, 0x5e, 0xca, 0xdb, 0xf6, 0x4e, 0x29, 0x75, 0xf2, 0x16, 0x11, 0x8b, 0x7f, 0xee, 0x13, 0x39, - 0x6c, 0x6d, 0x03, 0xf8, 0xb9, 0x1b, 0x9d, 0x33, 0xc7, 0xd2, 0x7d, 0xcd, 0x51, 0x88, 0x26, 0x8d, - 0xb3, 0x6b, 0x97, 0x1e, 0x67, 0xf3, 0x8b, 0x59, 0x58, 0x18, 0xe9, 0x9c, 0xd6, 0x7d, 0x82, 0x29, - 0x1d, 0x95, 0xd4, 0xfe, 0x1e, 0xac, 0x54, 0x32, 0x94, 0x98, 0x6e, 0xb3, 0x13, 0x42, 0xf3, 0xe9, - 0x36, 0x07, 0x14, 0x67, 0x35, 0xcb, 0xce, 0x1a, 0xf8, 0xa7, 0xea, 0x0f, 0x19, 0x12, 0xb4, 0x7f, - 0x66, 0xc2, 0xda, 0xe4, 0xea, 0xf2, 0xaa, 0xaa, 0xfb, 0x10, 0xba, 0xd3, 0x32, 0xf9, 0x95, 0x69, - 0xbd, 0xf0, 0xee, 0xbc, 0x0e, 0xbf, 0xaa, 0xea, 0x5e, 0xcd, 0xbc, 0x5b, 0x29, 0x75, 0xf6, 0xef, - 0x72, 0xfd, 0xe4, 0x9d, 0xc6, 0x2b, 0xaa, 0x1f, 0xeb, 0x4d, 0x58, 0xc6, 0x63, 0x2a, 0xdf, 0x3f, - 0xb1, 0x71, 0xad, 0xe0, 0x8b, 0x4c, 0xa1, 0x94, 0xfd, 0x2b, 0xf3, 0xd9, 0x3f, 0x1a, 0x99, 0x4d, - 0xf2, 0xfe, 0xed, 0xbf, 0xca, 0x26, 0x85, 0xa7, 0x29, 0x4d, 0x8d, 0xe2, 0x69, 0x79, 0x5f, 0xf9, - 0x3f, 0x4f, 0xbb, 0xd8, 0xd3, 0x72, 0x5d, 0x2a, 0x0d, 0x9e, 0xfd, 0x43, 0x68, 0xef, 0x91, 0xa0, - 0x17, 0x0f, 0xb3, 0x3f, 0x2f, 0xce, 0x53, 0xe4, 0xb4, 0xff, 0x42, 0xa7, 0xfe, 0x73, 0x51, 0xfe, - 0x5f, 0x63, 0xae, 0xf2, 0xbf, 0x86, 0xbd, 0x03, 0x4b, 0xaa, 0x00, 0x97, 0xf9, 0xf1, 0x64, 0xe7, - 0xda, 0x77, 0xd7, 0xb7, 0xde, 0xc2, 0x3f, 0x90, 0xdf, 0xae, 0x28, 0xf1, 0xb0, 0x21, 0xfe, 0x48, - 0xfe, 0xf2, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x57, 0x56, 0x7c, 0x02, 0xa4, 0x2c, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f1fa7995a968e7fe) } + +var fileDescriptor_ws_f1fa7995a968e7fe = []byte{ + // 2676 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0xa7, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0x59, 0x82, 0x09, 0xb3, 0x43, 0x68, 0x45, + 0xcb, 0xb0, 0x40, 0x16, 0x0d, 0x42, 0x82, 0x5d, 0x18, 0x94, 0x8f, 0xf9, 0x5a, 0xe2, 0x99, 0x6c, + 0x7b, 0x86, 0x45, 0x80, 0xb4, 0xea, 0xb8, 0x2b, 0x4e, 0x6f, 0xda, 0x55, 0xed, 0xfe, 0xc8, 0x4c, + 0x24, 0x24, 0x24, 0x90, 0x10, 0x37, 0x4e, 0x70, 0xe0, 0x82, 0xc4, 0x05, 0x81, 0xd0, 0x6a, 0x0f, + 0x70, 0x43, 0x9c, 0xf8, 0x07, 0x38, 0x22, 0x6e, 0x9c, 0xb9, 0x72, 0x40, 0x42, 0x02, 0x55, 0xbd, + 0xea, 0xee, 0xaa, 0x6e, 0x3b, 0xf1, 0x46, 0xd1, 0xce, 0xac, 0x86, 0x9b, 0xdf, 0xeb, 0x7a, 0xaf, + 0x5e, 0xbd, 0xdf, 0x7b, 0xaf, 0x5e, 0x55, 0x19, 0x3a, 0xb1, 0x77, 0xf2, 0xce, 0x93, 0xf8, 0xb5, + 0x27, 0xf1, 0x56, 0x18, 0xb1, 0x84, 0x59, 0x2b, 0x31, 0x89, 0x4e, 0x49, 0xf4, 0x8e, 0x1b, 0xfa, + 0xef, 0x84, 0x6e, 0xe4, 0x8e, 0x62, 0xfb, 0x5f, 0x26, 0x34, 0xef, 0x46, 0x2c, 0x0d, 0xef, 0xd3, + 0x23, 0x66, 0x75, 0x61, 0x7e, 0x28, 0x88, 0xbd, 0xae, 0xb1, 0x61, 0xdc, 0x68, 0x3a, 0x19, 0x69, + 0x5d, 0x83, 0xa6, 0xf8, 0xf9, 0xc0, 0x1d, 0x91, 0xae, 0x29, 0xbe, 0x15, 0x0c, 0xcb, 0x86, 0x45, + 0xca, 0x12, 0xff, 0xc8, 0x1f, 0xb8, 0x89, 0xcf, 0x68, 0xb7, 0x26, 0x06, 0x68, 0x3c, 0x3e, 0xc6, + 0xa7, 0x49, 0xc4, 0xbc, 0x74, 0x20, 0xc6, 0xcc, 0xe1, 0x18, 0x95, 0xc7, 0xe7, 0x3f, 0x72, 0x07, + 0xe4, 0xb1, 0xb3, 0xdf, 0xad, 0xe3, 0xfc, 0x92, 0xb4, 0x36, 0xa0, 0xc5, 0x9e, 0x50, 0x12, 0x3d, + 0x8e, 0x49, 0x74, 0x7f, 0xaf, 0xdb, 0x10, 0x5f, 0x55, 0x96, 0x75, 0x1d, 0x60, 0x10, 0x11, 0x37, + 0x21, 0x8f, 0xfc, 0x11, 0xe9, 0xce, 0x6f, 0x18, 0x37, 0xda, 0x8e, 0xc2, 0xe1, 0x1a, 0x46, 0x64, + 0x74, 0x48, 0xa2, 0x5d, 0x96, 0xd2, 0xa4, 0xbb, 0x20, 0x06, 0xa8, 0x2c, 0x6b, 0x09, 0x4c, 0xf2, + 0xb4, 0xdb, 0x14, 0xaa, 0x4d, 0xf2, 0xd4, 0x5a, 0x83, 0x46, 0x9c, 0xb8, 0x49, 0x1a, 0x77, 0x61, + 0xc3, 0xb8, 0x51, 0x77, 0x24, 0x65, 0x6d, 0x42, 0x5b, 0xe8, 0x65, 0x99, 0x35, 0x2d, 0x21, 0xa2, + 0x33, 0x73, 0x8f, 0x3d, 0x3a, 0x0b, 0x49, 0x77, 0x51, 0x28, 0x28, 0x18, 0xf6, 0xdf, 0x4c, 0x58, + 0x15, 0x7e, 0xef, 0x09, 0x03, 0xee, 0xa4, 0x41, 0x70, 0x01, 0x02, 0x6b, 0xd0, 0x48, 0x71, 0x3a, + 0x74, 0xbf, 0xa4, 0xf8, 0x3c, 0x11, 0x0b, 0xc8, 0x3e, 0x39, 0x25, 0x81, 0x70, 0x7c, 0xdd, 0x29, + 0x18, 0xd6, 0x3a, 0x2c, 0xbc, 0xcb, 0x7c, 0x2a, 0x7c, 0x32, 0x27, 0x3e, 0xe6, 0x34, 0xff, 0x46, + 0xfd, 0xc1, 0x09, 0xe5, 0x90, 0xa2, 0xbb, 0x73, 0x5a, 0x45, 0xa2, 0xa1, 0x23, 0xf1, 0x0a, 0x2c, + 0xb9, 0x61, 0xd8, 0x73, 0xe9, 0x90, 0x44, 0x38, 0xe9, 0xbc, 0xd0, 0x5b, 0xe2, 0x72, 0x3c, 0xf8, + 0x4c, 0x7d, 0x96, 0x46, 0x03, 0x22, 0xdc, 0x5d, 0x77, 0x14, 0x0e, 0xd7, 0xc3, 0x42, 0x12, 0x29, + 0x6e, 0x44, 0xcf, 0x97, 0xb8, 0x12, 0x15, 0xc8, 0x51, 0xe1, 0x38, 0xa6, 0x09, 0xb9, 0x4d, 0x3d, + 0xb1, 0xa8, 0x96, 0xc4, 0xb1, 0x60, 0xd9, 0x3f, 0x31, 0x60, 0xe9, 0x20, 0x3d, 0x0c, 0xfc, 0x81, + 0x50, 0xc1, 0xdd, 0x5a, 0x38, 0xcf, 0xd0, 0x9c, 0xa7, 0xba, 0xc0, 0x9c, 0xee, 0x82, 0x9a, 0xee, + 0x82, 0x35, 0x68, 0x0c, 0x09, 0xf5, 0x48, 0x24, 0x5d, 0x2a, 0x29, 0x69, 0x6a, 0x3d, 0x33, 0xd5, + 0xfe, 0x85, 0x09, 0x0b, 0x1f, 0xb2, 0x09, 0x1b, 0xd0, 0x0a, 0x8f, 0x19, 0x25, 0x0f, 0x52, 0x1e, + 0x56, 0xd2, 0x16, 0x95, 0x65, 0xbd, 0x04, 0xf5, 0x43, 0x3f, 0x4a, 0x8e, 0x05, 0xae, 0x6d, 0x07, + 0x09, 0xce, 0x25, 0x23, 0xd7, 0x47, 0x30, 0x9b, 0x0e, 0x12, 0x72, 0x41, 0x0b, 0xb9, 0xef, 0xf5, + 0x1c, 0x6b, 0x56, 0x72, 0xac, 0x1a, 0x1b, 0x30, 0x29, 0x36, 0xec, 0x7f, 0x1b, 0x00, 0x77, 0x22, + 0x9f, 0x50, 0x4f, 0xb8, 0xa6, 0x94, 0xdc, 0x46, 0x35, 0xb9, 0xd7, 0xa0, 0x11, 0x91, 0x91, 0x1b, + 0x9d, 0x64, 0xc1, 0x8f, 0x54, 0xc9, 0xa0, 0x5a, 0xc5, 0xa0, 0x37, 0x00, 0x8e, 0xc4, 0x3c, 0x5c, + 0x8f, 0x70, 0x55, 0xeb, 0xe6, 0xa7, 0xb6, 0x2a, 0x65, 0x70, 0x2b, 0x43, 0xc9, 0x51, 0x86, 0xf3, + 0xcc, 0x72, 0x3d, 0x4f, 0x06, 0x70, 0x1d, 0x33, 0x2b, 0x67, 0x4c, 0x88, 0xdf, 0xc6, 0x39, 0xf1, + 0x3b, 0x9f, 0x07, 0xc5, 0x3f, 0x0d, 0x68, 0xee, 0x04, 0xee, 0xe0, 0x64, 0xc6, 0xa5, 0xeb, 0x4b, + 0x34, 0x2b, 0x4b, 0xbc, 0x0b, 0xed, 0x43, 0xae, 0x2e, 0x5b, 0x82, 0xf0, 0x42, 0xeb, 0xe6, 0x67, + 0x26, 0xac, 0x52, 0x4f, 0x0a, 0x47, 0x97, 0xd3, 0x97, 0x3b, 0x77, 0xf1, 0x72, 0xeb, 0xe7, 0x2c, + 0xb7, 0x91, 0x2f, 0xf7, 0xaf, 0x26, 0x2c, 0x8a, 0x42, 0xe7, 0x90, 0x71, 0x4a, 0xe2, 0xc4, 0xfa, + 0x06, 0x2c, 0xa4, 0x99, 0xa9, 0xc6, 0xac, 0xa6, 0xe6, 0x22, 0xd6, 0xeb, 0xb2, 0xac, 0x0a, 0x79, + 0x53, 0xc8, 0x5f, 0x9b, 0x20, 0x9f, 0xef, 0x69, 0x4e, 0x31, 0x9c, 0x6f, 0x41, 0xc7, 0x2e, 0xf5, + 0x02, 0xe2, 0x90, 0x38, 0x0d, 0x12, 0x59, 0x2d, 0x35, 0x1e, 0x46, 0xda, 0xb8, 0x17, 0x0f, 0xe5, + 0x06, 0x25, 0x29, 0xee, 0x1d, 0x1c, 0xc7, 0x3f, 0xe1, 0xd2, 0x0b, 0x06, 0x4f, 0xd4, 0x88, 0x8c, + 0x05, 0x42, 0x98, 0x56, 0x19, 0x59, 0xcc, 0x29, 0xbd, 0x86, 0x81, 0xa0, 0xf1, 0x38, 0xc4, 0x48, + 0x0b, 0x05, 0xb8, 0x33, 0x29, 0x9c, 0xf2, 0xc6, 0x64, 0xff, 0xbd, 0x06, 0x6d, 0x4c, 0x9f, 0xcc, + 0xa9, 0xd7, 0x79, 0x9c, 0xb3, 0x91, 0x16, 0x45, 0x0a, 0x87, 0x5b, 0xc1, 0xa9, 0x07, 0x7a, 0xa1, + 0xd1, 0x78, 0x3c, 0x14, 0x39, 0x7d, 0x47, 0x2b, 0x38, 0x2a, 0x2b, 0x9b, 0xe5, 0xae, 0x5a, 0x78, + 0x14, 0x0e, 0x2f, 0x65, 0x09, 0xd3, 0xa2, 0x23, 0xa7, 0xb9, 0x6c, 0xc2, 0xf2, 0xf9, 0x31, 0x3e, + 0x14, 0x0e, 0xf7, 0x6f, 0xc2, 0xb2, 0xb9, 0xd1, 0x49, 0x05, 0x03, 0x35, 0xcb, 0x79, 0x71, 0x2b, + 0xc9, 0xe9, 0x0a, 0xaa, 0xcd, 0x73, 0x51, 0x05, 0x0d, 0x55, 0x3d, 0xb9, 0x5a, 0x95, 0xe4, 0xda, + 0x84, 0x36, 0xea, 0xc9, 0x82, 0x7e, 0x11, 0xb7, 0x7a, 0x8d, 0xa9, 0xc7, 0x46, 0xbb, 0x1c, 0x1b, + 0x3a, 0xba, 0x4b, 0x53, 0xd0, 0xed, 0xe4, 0xe8, 0xfe, 0x00, 0xba, 0x07, 0x69, 0x10, 0xf4, 0x48, + 0x1c, 0xbb, 0x43, 0xb2, 0x73, 0xd6, 0x27, 0xe3, 0x7d, 0x3f, 0x4e, 0x1c, 0x12, 0x87, 0x3c, 0xce, + 0x48, 0x14, 0xed, 0x32, 0x8f, 0x08, 0x90, 0xeb, 0x4e, 0x46, 0xf2, 0x15, 0x92, 0x28, 0xe2, 0x06, + 0xc8, 0x0a, 0x89, 0x94, 0xb5, 0x05, 0x73, 0x81, 0x1f, 0xf3, 0x58, 0xaf, 0xdd, 0x68, 0xdd, 0x5c, + 0x9f, 0x90, 0x2a, 0xbd, 0x78, 0xb8, 0xe7, 0x26, 0xae, 0x23, 0xc6, 0xd9, 0x23, 0xf8, 0xc4, 0xe4, + 0xd9, 0xc7, 0x53, 0x77, 0x30, 0x5e, 0xc3, 0x44, 0x11, 0xf0, 0x19, 0xcd, 0xdb, 0x13, 0x95, 0xc5, + 0xcd, 0x8e, 0x51, 0x8f, 0xb0, 0xa3, 0xed, 0x64, 0xa4, 0xfd, 0x12, 0x58, 0x77, 0x49, 0xd2, 0x73, + 0x9f, 0x6e, 0x53, 0xaf, 0xe7, 0xd3, 0x3e, 0x19, 0x3b, 0x64, 0x6c, 0xdf, 0x86, 0xd5, 0x0a, 0x37, + 0x0e, 0xb9, 0x01, 0x23, 0xf7, 0x69, 0x9f, 0x8c, 0x85, 0x01, 0x6d, 0x47, 0x52, 0x82, 0x2f, 0x46, + 0xc9, 0xf2, 0x28, 0x29, 0x7b, 0x0c, 0x1d, 0x8e, 0x50, 0x9f, 0x50, 0xaf, 0x17, 0x0f, 0x85, 0x8a, + 0x0d, 0x68, 0xa1, 0x07, 0x7a, 0xf1, 0xb0, 0xa8, 0xb7, 0x0a, 0x8b, 0x8f, 0x18, 0x04, 0x3e, 0xa1, + 0x09, 0x8e, 0x90, 0xab, 0x51, 0x58, 0x3c, 0x18, 0x63, 0x22, 0xdb, 0x0f, 0x9e, 0x25, 0x35, 0x27, + 0xa7, 0xed, 0x3f, 0xd5, 0x61, 0x5e, 0x3a, 0x54, 0xf4, 0x8f, 0x7c, 0x8b, 0xcb, 0xfd, 0x85, 0x14, + 0x06, 0xe3, 0xe0, 0xb4, 0xe8, 0xe4, 0x90, 0x52, 0x7b, 0xbf, 0x9a, 0xde, 0xfb, 0x95, 0x6c, 0x9a, + 0xab, 0xda, 0x54, 0x5a, 0x57, 0xbd, 0xba, 0xae, 0x57, 0x61, 0x39, 0x16, 0x09, 0x73, 0x10, 0xb8, + 0xc9, 0x11, 0x8b, 0x46, 0x72, 0xc7, 0xaa, 0x3b, 0x15, 0x3e, 0x2f, 0xf6, 0xc8, 0xcb, 0x13, 0x16, + 0x33, 0xb2, 0xc4, 0xe5, 0xe9, 0x81, 0x9c, 0x2c, 0x71, 0xb1, 0x55, 0xd0, 0x99, 0x68, 0x5b, 0x1c, + 0xfb, 0x8c, 0x8a, 0x5e, 0x18, 0xf3, 0x53, 0x65, 0xf1, 0x95, 0x8f, 0xe2, 0xe1, 0x9d, 0x88, 0x8d, + 0x64, 0xc3, 0x90, 0x91, 0x62, 0xe5, 0x8c, 0x26, 0x84, 0x26, 0x42, 0xb6, 0x85, 0xb2, 0x0a, 0x8b, + 0xcb, 0x4a, 0x52, 0x24, 0xe7, 0xa2, 0x93, 0x91, 0xd6, 0x32, 0xd4, 0x62, 0x32, 0x96, 0x19, 0xc7, + 0x7f, 0x6a, 0xc8, 0x75, 0x74, 0xe4, 0x4a, 0xa5, 0x60, 0x59, 0x7c, 0x55, 0x4b, 0x41, 0x71, 0x1a, + 0x58, 0xd1, 0x4e, 0x03, 0xdb, 0x30, 0xcf, 0x42, 0x1e, 0xe7, 0x71, 0xd7, 0x12, 0x39, 0xf6, 0xd9, + 0xe9, 0x39, 0xb6, 0xf5, 0x10, 0x47, 0xde, 0xa6, 0x49, 0x74, 0xe6, 0x64, 0x72, 0xd6, 0x3e, 0x74, + 0xd8, 0xd1, 0x51, 0xe0, 0x53, 0x72, 0x90, 0xc6, 0xc7, 0x62, 0x67, 0x5b, 0x15, 0x3b, 0x9b, 0x3d, + 0x41, 0xd5, 0x43, 0x7d, 0xa4, 0x53, 0x16, 0x5d, 0x7f, 0x1d, 0x16, 0xd5, 0x69, 0xb8, 0x1b, 0x4e, + 0xc8, 0x99, 0x8c, 0x41, 0xfe, 0x93, 0x37, 0x7b, 0xa7, 0x6e, 0x90, 0xe2, 0x36, 0xb0, 0xe0, 0x20, + 0xf1, 0xba, 0xf9, 0x55, 0xc3, 0xfe, 0xb9, 0x01, 0x9d, 0xd2, 0x04, 0x7c, 0x74, 0xe2, 0x27, 0x01, + 0x91, 0x1a, 0x90, 0xb0, 0x2c, 0x98, 0xf3, 0x48, 0x3c, 0x90, 0x21, 0x2c, 0x7e, 0xcb, 0x4a, 0x56, + 0xcb, 0xdb, 0x45, 0x7e, 0xe4, 0x7b, 0xd8, 0xe7, 0x8a, 0xfa, 0x2c, 0xa5, 0x5e, 0x7e, 0xe4, 0x53, + 0x78, 0x3c, 0x84, 0xfc, 0x87, 0xfd, 0x1d, 0xd7, 0x1b, 0x12, 0x3c, 0x98, 0xd5, 0x85, 0x4d, 0x3a, + 0xd3, 0xf6, 0x60, 0xe1, 0x91, 0x1f, 0xc6, 0xbb, 0x6c, 0x34, 0xe2, 0x40, 0x78, 0x24, 0xe1, 0xbd, + 0xaa, 0x21, 0xf0, 0x96, 0x14, 0x0f, 0x15, 0x8f, 0x1c, 0xb9, 0x69, 0x90, 0xf0, 0xa1, 0x59, 0xe2, + 0x2a, 0x2c, 0x71, 0x24, 0x89, 0x19, 0xdd, 0x43, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x31, 0x61, + 0x59, 0x34, 0x0e, 0xbb, 0x02, 0x76, 0x4f, 0x08, 0xdd, 0x84, 0xba, 0x48, 0x43, 0xd9, 0xac, 0x9c, + 0xdf, 0x6c, 0xe0, 0x50, 0xeb, 0x16, 0x34, 0x58, 0x28, 0x5a, 0x4e, 0xec, 0x50, 0x5e, 0x99, 0x26, + 0xa4, 0x9f, 0xfe, 0x1c, 0x29, 0x65, 0xdd, 0x01, 0xc0, 0x83, 0xe9, 0x7e, 0x51, 0xba, 0x67, 0xd5, + 0xa1, 0x48, 0x72, 0xe7, 0xe6, 0x65, 0x38, 0x3f, 0x02, 0xd6, 0x1c, 0x9d, 0x69, 0x3d, 0x80, 0x25, + 0x61, 0xf6, 0xc3, 0xac, 0xeb, 0x14, 0x18, 0xcc, 0x3e, 0x63, 0x49, 0xda, 0xfe, 0xb5, 0x21, 0xdd, + 0xc8, 0xbf, 0xf6, 0x09, 0xfa, 0xbe, 0x70, 0x89, 0x71, 0x29, 0x97, 0xac, 0xc3, 0x02, 0x3f, 0xe3, + 0xe5, 0x4d, 0x70, 0xcd, 0xc9, 0xe9, 0x02, 0xa2, 0xda, 0xcc, 0x10, 0xd9, 0xbf, 0x31, 0xa0, 0xfb, + 0x26, 0xf3, 0xa9, 0xf8, 0xb0, 0x1d, 0x86, 0x81, 0xbc, 0xa7, 0xb8, 0x34, 0xe6, 0xdf, 0x84, 0xa6, + 0x8b, 0x6a, 0x68, 0x22, 0x61, 0x9f, 0xa1, 0xb1, 0x2d, 0x64, 0x94, 0x1e, 0xa5, 0xa6, 0xf6, 0x28, + 0xf6, 0x7b, 0x06, 0x2c, 0xa1, 0x53, 0xde, 0x4a, 0xfd, 0xe4, 0xd2, 0xf6, 0xed, 0xc0, 0xc2, 0x38, + 0xf5, 0x93, 0x4b, 0x44, 0x65, 0x2e, 0x57, 0x8d, 0xa7, 0xda, 0x84, 0x78, 0xb2, 0xdf, 0x37, 0xe0, + 0x5a, 0xd9, 0xad, 0xdb, 0x83, 0x01, 0x09, 0x9f, 0x65, 0x4a, 0x69, 0x3d, 0xda, 0x5c, 0xa9, 0x47, + 0x9b, 0x68, 0xb2, 0x43, 0xde, 0x25, 0x83, 0xe7, 0xd7, 0xe4, 0x1f, 0x9b, 0xf0, 0xc9, 0xbb, 0x79, + 0xe2, 0x3d, 0x8a, 0x5c, 0x1a, 0x1f, 0x91, 0x28, 0x7a, 0x86, 0xf6, 0xee, 0x43, 0x9b, 0x92, 0x27, + 0x85, 0x4d, 0x32, 0x1d, 0x67, 0x55, 0xa3, 0x0b, 0xcf, 0x56, 0xbb, 0xec, 0xff, 0x18, 0xb0, 0x8c, + 0x7a, 0xbe, 0xe5, 0x0f, 0x4e, 0x9e, 0xe1, 0xe2, 0x1f, 0xc0, 0xd2, 0x89, 0xb0, 0x80, 0x53, 0x97, + 0x28, 0xdb, 0x25, 0xe9, 0x19, 0x97, 0xff, 0x5f, 0x03, 0x56, 0x50, 0xd1, 0x7d, 0x7a, 0xea, 0x3f, + 0xcb, 0x60, 0x3d, 0x80, 0x8e, 0x8f, 0x26, 0x5c, 0xd2, 0x01, 0x65, 0xf1, 0x19, 0x3d, 0xf0, 0x47, + 0x03, 0x3a, 0xa8, 0xe9, 0x36, 0x4d, 0x48, 0x74, 0xe9, 0xf5, 0xdf, 0x83, 0x16, 0xa1, 0x49, 0xe4, + 0xd2, 0xcb, 0x54, 0x48, 0x55, 0x74, 0xc6, 0x22, 0xf9, 0x9e, 0x01, 0x96, 0x50, 0xb5, 0xe7, 0xc7, + 0x23, 0x3f, 0x8e, 0x9f, 0x21, 0x74, 0xb3, 0x19, 0xfc, 0x4b, 0x13, 0x5e, 0x52, 0xb4, 0xf4, 0xd2, + 0xe4, 0x79, 0x37, 0xd9, 0xda, 0x83, 0x26, 0xef, 0x11, 0xd4, 0xcb, 0xbf, 0x59, 0x27, 0x2a, 0x04, + 0x79, 0x17, 0x2b, 0x88, 0x3e, 0x19, 0x30, 0xea, 0xc5, 0xa2, 0x39, 0x6a, 0x3b, 0x1a, 0x8f, 0x97, + 0xa1, 0x75, 0x45, 0xcd, 0xae, 0x4b, 0x07, 0x24, 0x78, 0x61, 0x5c, 0x64, 0xff, 0xce, 0x80, 0x25, + 0x1c, 0xf2, 0xfc, 0x2f, 0x99, 0xef, 0xf5, 0x18, 0xc8, 0x1f, 0x19, 0x94, 0xec, 0x13, 0x58, 0xc1, + 0xfb, 0x3e, 0xa5, 0x3d, 0xe1, 0x07, 0x5f, 0xd7, 0xc3, 0xb3, 0xac, 0x21, 0x84, 0x32, 0x52, 0xbf, + 0xc9, 0x95, 0x8f, 0x75, 0xc5, 0x4d, 0xee, 0x75, 0x00, 0xd7, 0xf3, 0xde, 0x66, 0x91, 0xe7, 0xd3, + 0xac, 0xd7, 0x54, 0x38, 0xf6, 0x9b, 0xb0, 0xc8, 0x8f, 0xde, 0x8f, 0x94, 0x9b, 0xbb, 0x73, 0xef, + 0x16, 0xd5, 0x5b, 0x3f, 0x53, 0xbf, 0xf5, 0xb3, 0xbf, 0x0f, 0x1f, 0xaf, 0x18, 0x2e, 0x7c, 0xbd, + 0x8b, 0x17, 0x92, 0xd9, 0x24, 0xd2, 0xe5, 0x9f, 0x9e, 0xe0, 0x3d, 0xd5, 0x16, 0x47, 0x13, 0xb2, + 0x7f, 0x64, 0xc0, 0xcb, 0x15, 0xf5, 0xdb, 0x61, 0x18, 0xb1, 0x53, 0x09, 0xe9, 0x55, 0x4c, 0xa3, + 0xf7, 0x61, 0x66, 0xb9, 0x0f, 0x9b, 0x68, 0x84, 0xd6, 0x3b, 0x7e, 0x08, 0x46, 0xfc, 0xd6, 0x80, + 0x8e, 0x34, 0xc2, 0xf3, 0xe4, 0xb4, 0x5f, 0x81, 0x06, 0x3e, 0x66, 0xc8, 0x09, 0x5f, 0x9e, 0x38, + 0x61, 0xf6, 0x08, 0xe3, 0xc8, 0xc1, 0xd5, 0x88, 0x34, 0x27, 0xd5, 0x8d, 0xaf, 0xe5, 0x71, 0x3f, + 0xf3, 0x73, 0x83, 0x14, 0xb0, 0xbf, 0x93, 0x05, 0xf3, 0x1e, 0x09, 0xc8, 0x55, 0xfa, 0xc8, 0x7e, + 0x0c, 0x4b, 0xe2, 0x65, 0xa5, 0xf0, 0xc1, 0x95, 0xa8, 0x7d, 0x1b, 0x96, 0x85, 0xda, 0x2b, 0xb7, + 0x37, 0xcf, 0x0e, 0xee, 0x9f, 0xdd, 0x63, 0x97, 0x0e, 0xaf, 0x52, 0xfb, 0x17, 0x61, 0x35, 0xf3, + 0xfd, 0xe3, 0xd0, 0xcb, 0xef, 0x33, 0xa6, 0xdc, 0xe2, 0xda, 0x5f, 0x82, 0xb5, 0x5d, 0x46, 0x4f, + 0x49, 0x14, 0x0b, 0x94, 0x51, 0x24, 0x93, 0xd0, 0x92, 0x5f, 0x52, 0x76, 0x1f, 0x56, 0xe4, 0xfb, + 0xc3, 0x81, 0x3b, 0xf4, 0x29, 0x56, 0xa5, 0xeb, 0x00, 0xa1, 0x3b, 0xcc, 0xde, 0x1f, 0xf1, 0x92, + 0x5a, 0xe1, 0xf0, 0xef, 0xf1, 0x31, 0x7b, 0x22, 0xbf, 0x9b, 0xf8, 0xbd, 0xe0, 0xd8, 0xdf, 0x06, + 0xcb, 0x21, 0x71, 0xc8, 0x68, 0x4c, 0x14, 0xad, 0x1b, 0xd0, 0xda, 0x4d, 0xa3, 0x88, 0x50, 0x3e, + 0x55, 0xf6, 0x18, 0xa7, 0xb2, 0xb8, 0xde, 0x7e, 0xa1, 0x17, 0x2f, 0x36, 0x15, 0x8e, 0xfd, 0xab, + 0x1a, 0x34, 0xfb, 0xfe, 0x90, 0xba, 0x81, 0x43, 0xc6, 0xd6, 0xd7, 0xa1, 0x81, 0xed, 0xa6, 0x74, + 0xed, 0xa4, 0x8b, 0x36, 0x1c, 0x8d, 0x7d, 0xb5, 0x43, 0xc6, 0xf7, 0x3e, 0xe6, 0x48, 0x19, 0xeb, + 0x2d, 0x68, 0xe3, 0xaf, 0xfb, 0x78, 0x7d, 0x20, 0x6b, 0xff, 0xe7, 0x2e, 0x50, 0x22, 0x47, 0xa3, + 0x2e, 0x5d, 0x03, 0x37, 0x68, 0x20, 0xb6, 0x23, 0x99, 0x4f, 0xd3, 0x0d, 0xc2, 0x5d, 0x4b, 0x1a, + 0x84, 0x32, 0x5c, 0xda, 0x15, 0x07, 0x6c, 0xb9, 0x85, 0x4f, 0x97, 0xc6, 0x73, 0xb8, 0x94, 0x46, + 0x19, 0x2e, 0x7d, 0x9c, 0xd2, 0xe1, 0xe3, 0x50, 0xde, 0xfb, 0x4c, 0x97, 0xbe, 0x27, 0x86, 0x49, + 0x69, 0x94, 0xe1, 0xd2, 0x91, 0xa8, 0x76, 0xc2, 0xe9, 0xe7, 0x49, 0x63, 0x51, 0x94, 0xd2, 0x28, + 0xb3, 0xd3, 0x84, 0xf9, 0xd0, 0x3d, 0x0b, 0x98, 0xeb, 0xd9, 0xbf, 0xaf, 0x01, 0x64, 0x03, 0x63, + 0xb1, 0xb3, 0x6a, 0x10, 0x6d, 0x5e, 0x08, 0x51, 0x18, 0x9c, 0x29, 0x20, 0xf5, 0x27, 0x83, 0xf4, + 0xf9, 0x59, 0x41, 0x42, 0x6d, 0x25, 0x98, 0x6e, 0x95, 0x60, 0xda, 0xbc, 0x10, 0x26, 0x69, 0x94, + 0x04, 0xea, 0x56, 0x09, 0xa8, 0xcd, 0x0b, 0x81, 0x92, 0xf2, 0x12, 0xaa, 0x5b, 0x25, 0xa8, 0x36, + 0x2f, 0x84, 0x4a, 0xca, 0x4b, 0xb0, 0x6e, 0x95, 0xc0, 0xda, 0xbc, 0x10, 0x2c, 0x29, 0x5f, 0x85, + 0xeb, 0x7d, 0x13, 0x96, 0x84, 0xcb, 0xf0, 0x91, 0x87, 0x1e, 0x31, 0x71, 0x97, 0x2b, 0xdc, 0xa5, + 0x3f, 0x67, 0xeb, 0x4c, 0xeb, 0x0b, 0xb0, 0x82, 0x0c, 0xf9, 0xfc, 0x29, 0xce, 0x8a, 0xe6, 0x46, + 0xed, 0x46, 0xd3, 0xa9, 0x7e, 0x10, 0xd7, 0xf2, 0x69, 0x9c, 0xb0, 0xd1, 0x9e, 0x9b, 0xb8, 0x59, + 0xb7, 0x52, 0x70, 0xd4, 0x47, 0x93, 0xb9, 0xca, 0x1f, 0x66, 0x22, 0xc6, 0x46, 0xf9, 0x6b, 0x88, + 0xa4, 0xb8, 0x44, 0xe2, 0x8f, 0x08, 0x4b, 0x13, 0x59, 0x26, 0x32, 0x92, 0xef, 0xb1, 0x23, 0xe2, + 0xf9, 0xae, 0x78, 0x6a, 0x90, 0x6f, 0x90, 0x39, 0x43, 0x54, 0xb6, 0xe2, 0xe9, 0x44, 0xfe, 0xa1, + 0xa5, 0xe0, 0x5c, 0xfc, 0xcc, 0x61, 0xff, 0xc3, 0x80, 0xd5, 0x03, 0x37, 0x4a, 0xfc, 0x81, 0x1f, + 0xba, 0x34, 0xe9, 0x91, 0xc4, 0x15, 0x6b, 0xd0, 0xde, 0xb4, 0x8d, 0x0f, 0xf6, 0xa6, 0x7d, 0x00, + 0x9d, 0x61, 0xd1, 0x5f, 0x2a, 0xaf, 0xe2, 0x33, 0x9f, 0xbb, 0x4b, 0xe2, 0xda, 0x03, 0x7d, 0xed, + 0x03, 0x3f, 0xd0, 0xdb, 0x3f, 0x35, 0xa1, 0x53, 0x2a, 0x9d, 0xbc, 0x45, 0xc4, 0xcd, 0x3f, 0x8f, + 0x89, 0x9c, 0xb6, 0xb6, 0x01, 0xfc, 0x3c, 0x8c, 0xce, 0xb9, 0x38, 0xd5, 0x63, 0xcd, 0x51, 0x84, + 0x26, 0xbd, 0x9f, 0xd4, 0x2e, 0xfd, 0x7e, 0x62, 0xdd, 0x83, 0x56, 0x58, 0x80, 0x74, 0xce, 0xa1, + 0x68, 0x02, 0x94, 0x8e, 0x2a, 0x6a, 0x7f, 0x0f, 0x56, 0x2a, 0x15, 0x4a, 0x3c, 0xa7, 0xb0, 0x13, + 0x42, 0xf3, 0xe7, 0x14, 0x4e, 0x28, 0xc1, 0x6a, 0x96, 0x83, 0x35, 0xf0, 0x4f, 0xd5, 0x7f, 0x00, + 0x49, 0xd2, 0xfe, 0x99, 0x09, 0x6b, 0x93, 0x77, 0x97, 0x17, 0xd5, 0xdd, 0x87, 0xd0, 0x9d, 0x56, + 0xc9, 0xaf, 0xcc, 0xeb, 0x45, 0x74, 0xe7, 0xfb, 0xf0, 0x8b, 0xea, 0xee, 0xd5, 0x2c, 0xba, 0x95, + 0xad, 0xce, 0xfe, 0x43, 0xee, 0x9f, 0xbc, 0xd3, 0x78, 0x41, 0xfd, 0x63, 0xbd, 0x0a, 0xcb, 0xb8, + 0x4c, 0xe5, 0xc1, 0x1d, 0x1b, 0xd7, 0x0a, 0xbf, 0xa8, 0x14, 0xca, 0xb6, 0x7f, 0x65, 0x31, 0xfb, + 0x67, 0x23, 0xc3, 0x24, 0xef, 0xdf, 0x3e, 0x52, 0x98, 0x14, 0x91, 0xa6, 0x34, 0x35, 0x4a, 0xa4, + 0xe5, 0x7d, 0xe5, 0xff, 0x23, 0xed, 0xe2, 0x48, 0xcb, 0x7d, 0xa9, 0x34, 0x78, 0xf6, 0x0f, 0xa1, + 0xbd, 0x47, 0x82, 0x5e, 0x3c, 0xcc, 0xfe, 0xea, 0x73, 0x9e, 0x23, 0xa7, 0xfd, 0x11, 0x79, 0xea, + 0x9f, 0x7c, 0xca, 0x7f, 0x10, 0x9a, 0xab, 0xfc, 0x41, 0xc8, 0xde, 0x81, 0x25, 0xd5, 0x80, 0xcb, + 0xfc, 0xd3, 0x69, 0xe7, 0xda, 0x77, 0xd7, 0xb7, 0x5e, 0xc3, 0xbf, 0xbc, 0xbf, 0x51, 0x71, 0xe2, + 0x61, 0x43, 0xfc, 0x05, 0xfe, 0xcb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x93, 0x6d, 0x96, 0x68, + 0x15, 0x2f, 0x00, 0x00, }