diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 588c9bb77..3cf486771 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 588c9bb77b9bd89a9261964006568b8655233cb6 +Subproject commit 3cf486771bbe7ecb33f7e7c3cdf733f28b16d8b7 diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 37ceefff2..7ad6a1304 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -139,15 +139,16 @@ func main() { chatGroup.POST("/send_msg", apiChat.SendMsg) chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList) chatGroup.POST("/del_msg", apiChat.DelMsg) + chatGroup.POST("/del_super_group_msg", apiChat.DelSuperGroupMsg) chatGroup.POST("/clear_msg", apiChat.ClearMsg) chatGroup.POST("/manage_send_msg", manage.ManagementSendMsg) chatGroup.POST("/batch_send_msg", manage.ManagementBatchSendMsg) } //Manager - managementGroup := r.Group("/manager") - { - managementGroup.POST("/delete_user", manage.DeleteUser) //1 - } + //managementGroup := r.Group("/manager") + //{ + // managementGroup.POST("/delete_user", manage.DeleteUser) //1 + //} //Conversation conversationGroup := r.Group("/conversation") { //1 diff --git a/config/config.yaml b/config/config.yaml index f23ae7027..28a32ae78 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -38,6 +38,7 @@ redis: dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 + dbUserName: #only redis version 6.0+ need username dbPassWord: openIM #redis密码 建议修改 enableCluster: false #如果外部redis以集群方式启动,需要打开此开关 diff --git a/internal/api/chat/del_msg.go b/internal/api/chat/del_msg.go index c6a6da385..a5131897f 100644 --- a/internal/api/chat/del_msg.go +++ b/internal/api/chat/del_msg.go @@ -12,6 +12,7 @@ import ( "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" + "github.com/golang/protobuf/proto" "net/http" "strings" ) @@ -72,6 +73,83 @@ func DelMsg(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) c.JSON(http.StatusOK, resp) } +func DelSuperGroupMsg(c *gin.Context) { + var ( + req api.DelSuperGroupMsgReq + resp api.DelSuperGroupMsgResp + ) + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + + ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + errMsg := req.OperationID + " " + opUserID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + options := make(map[string]bool, 5) + utils.SetSwitchFromOptions(options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(options, constant.IsSenderConversationUpdate, false) + utils.SetSwitchFromOptions(options, constant.IsUnreadCount, false) + utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) + pbData := rpc.SendMsgReq{ + OperationID: req.OperationID, + MsgData: &pbCommon.MsgData{ + SendID: req.UserID, + RecvID: req.UserID, + ClientMsgID: utils.GetMsgID(req.UserID), + SessionType: constant.SingleChatType, + MsgFrom: constant.SysMsgType, + ContentType: constant.MsgDeleteNotification, + // ForceList: params.ForceList, + CreateTime: utils.GetCurrentTimestampByMill(), + Options: options, + }, + } + var tips pbCommon.TipsComm + deleteMsg := api.MsgDeleteNotificationElem{ + GroupID: req.GroupID, + IsAllDelete: req.IsAllDelete, + SeqList: req.SeqList, + } + tips.JsonDetail = utils.StructToJsonString(deleteMsg) + var err error + pbData.MsgData.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.OperationID, "Marshal failed ", err.Error(), tips.String()) + resp.ErrCode = 400 + resp.ErrMsg = err.Error() + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) + c.JSON(http.StatusOK, resp) + } + log.Info(req.OperationID, "", "api DelSuperGroupMsg call start..., [data: %s]", pbData.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := rpc.NewChatClient(etcdConn) + + log.Info(req.OperationID, "", "api DelSuperGroupMsg call, api call rpc...") + + RpcResp, err := client.SendMsg(context.Background(), &pbData) + if err != nil { + log.NewError(req.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) + return + } + log.Info(req.OperationID, "", "api DelSuperGroupMsg call end..., [data: %s] [reply: %s]", pbData.String(), RpcResp.String()) + resp.ErrCode = RpcResp.ErrCode + resp.ErrMsg = RpcResp.ErrMsg + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) + c.JSON(http.StatusOK, resp) +} // @Summary 清空用户消息 // @Description 清空用户消息 diff --git a/internal/api/group/group.go b/internal/api/group/group.go index e7696fb92..9c7500872 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -3,6 +3,7 @@ package group import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -316,7 +317,12 @@ func InviteUserToGroup(c *gin.Context) { } req := &rpc.InviteUserToGroupReq{} utils.CopyStructFields(req, ¶ms) - + if len(req.InvitedUserIDList) > constant.MaxNotificationNum { + errMsg := req.OperationID + " too many, Limit: " + utils.IntToString(constant.MaxNotificationNum) + log.NewError(req.OperationID, errMsg, len(req.InvitedUserIDList)) + c.JSON(http.StatusRequestEntityTooLarge, gin.H{"errCode": 400, "errMsg": errMsg}) + return + } var ok bool var errInfo string ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) @@ -779,12 +785,7 @@ func SetGroupInfo(c *gin.Context) { req := &rpc.SetGroupInfoReq{GroupInfoForSet: &open_im_sdk.GroupInfoForSet{}} utils.CopyStructFields(req.GroupInfoForSet, ¶ms) req.OperationID = params.OperationID - - if params.NeedVerification != nil { - req.GroupInfoForSet.NeedVerification = &wrappers.Int32Value{Value: *params.NeedVerification} - log.NewInfo(req.OperationID, "NeedVerification ", req.GroupInfoForSet.NeedVerification) - } - + argsHandle(¶ms, req) var ok bool var errInfo string ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) @@ -815,6 +816,20 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "SetGroupInfo api return ", resp) } +func argsHandle(params *api.SetGroupInfoReq, req *rpc.SetGroupInfoReq) { + if params.NeedVerification != nil { + req.GroupInfoForSet.NeedVerification = &wrappers.Int32Value{Value: *params.NeedVerification} + log.NewInfo(req.OperationID, "NeedVerification ", req.GroupInfoForSet.NeedVerification) + } + if params.LookMemberInfo != nil { + req.GroupInfoForSet.LookMemberInfo = &wrappers.Int32Value{Value: *params.LookMemberInfo} + log.NewInfo(req.OperationID, "LookMemberInfo ", req.GroupInfoForSet.LookMemberInfo) + } + if params.ApplyMemberFriend != nil { + req.GroupInfoForSet.ApplyMemberFriend = &wrappers.Int32Value{Value: *params.ApplyMemberFriend} + log.NewInfo(req.OperationID, "ApplyMemberFriend ", req.GroupInfoForSet.ApplyMemberFriend) + } +} // @Summary 转让群主 // @Description 转让群主 diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index f5510ded5..af635606d 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -123,7 +123,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) } //to group member - groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID} + groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID, JoinSource: constant.JoinByInvitation, InviterUserID: req.OpUserID} utils.CopyStructFields(&groupMember, us) err = imdb.InsertIntoGroupMember(groupMember) if err != nil { @@ -144,6 +144,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR continue } groupMember.RoleLevel = user.RoleLevel + groupMember.JoinSource = constant.JoinByInvitation + groupMember.InviterUserID = req.OpUserID utils.CopyStructFields(&groupMember, us) err = imdb.InsertIntoGroupMember(groupMember) if err != nil { @@ -227,13 +229,22 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo //group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { + if group.Status == constant.GroupStatusDismissed { + log.NewError(req.OperationID, "constant.GroupStatusDismissed ", group) + continue + } utils.CopyStructFields(&groupNode, group) groupNode.CreateTime = uint32(group.CreateTime.Unix()) - groupNode.MemberCount = uint32(num) + groupNode.NotificationUpdateTime = uint32(group.NotificationUpdateTime.Unix()) + if group.NotificationUpdateTime.Unix() < 0 { + groupNode.NotificationUpdateTime = 0 + } + + groupNode.MemberCount = num groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) } else { - log.NewError(req.OperationID, "check nil ", num, owner, err, group) + log.NewError(req.OperationID, "check nil ", num, owner, err, group, err2) continue } log.NewDebug(req.OperationID, "joinedGroup ", groupNode) @@ -267,6 +278,8 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite var groupRequest db.GroupRequest groupRequest.UserID = v groupRequest.GroupID = req.GroupID + groupRequest.JoinSource = constant.JoinByInvitation + groupRequest.InviterUserID = req.OpUserID err = imdb.InsertIntoGroupRequest(groupRequest) if err != nil { var resultNode pbGroup.Id2Result @@ -320,6 +333,8 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite toInsertInfo.GroupID = req.GroupID toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers toInsertInfo.OperatorUserID = req.OpUserID + toInsertInfo.InviterUserID = req.OpUserID + toInsertInfo.JoinSource = constant.JoinByInvitation err = imdb.InsertIntoGroupMember(toInsertInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceURL) @@ -776,10 +791,14 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } err := imdb.UpdateGroupRequest(groupRequest) if err != nil { - //{openIM002 7836e478bc43ce1d3b8889cac983f59b 1 ok 0001-01-01 00:00:00 +0000 UTC openIM001 0001-01-01 00:00:00 +0000 UTC } log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), groupRequest) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + request, err := imdb.GetGroupRequestByGroupIDAndUserID(req.GroupID, req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.GroupID, req.FromUserID) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } if req.HandleResult == constant.GroupResponseAgree { user, err := imdb.GetUserByUserID(req.FromUserID) @@ -794,7 +813,8 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G member.OperatorUserID = req.OpUserID member.FaceURL = user.FaceURL member.Nickname = user.Nickname - + member.JoinSource = request.JoinSource + member.InviterUserID = request.InviterUserID err = imdb.InsertIntoGroupMember(member) if err != nil { log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), member) @@ -945,6 +965,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) groupRequest.UserID = req.OpUserID groupRequest.ReqMsg = req.ReqMessage groupRequest.GroupID = req.GroupID + groupRequest.JoinSource = req.JoinSource err = imdb.InsertIntoGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupRequest failed ", err.Error(), groupRequest) @@ -1114,7 +1135,24 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) } } - + if req.GroupInfoForSet.LookMemberInfo != nil { + changedType = changedType | (1 << 5) + m := make(map[string]interface{}) + m["look_member_info"] = req.GroupInfoForSet.LookMemberInfo.Value + if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { + log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + } + } + if req.GroupInfoForSet.ApplyMemberFriend != nil { + changedType = changedType | (1 << 6) + m := make(map[string]interface{}) + m["apply_member_friend"] = req.GroupInfoForSet.ApplyMemberFriend.Value + if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { + log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + } + } // //if req.RoleLevel != nil { // @@ -1122,6 +1160,10 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf //only administrators can set group information var groupInfo db.Group utils.CopyStructFields(&groupInfo, req.GroupInfoForSet) + if req.GroupInfoForSet.Notification != "" { + groupInfo.NotificationUserID = req.OpUserID + groupInfo.NotificationUpdateTime = time.Now() + } err = imdb.SetGroupInfo(groupInfo) if err != nil { log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 8d18657a2..e14bfce8d 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -232,6 +232,9 @@ func GroupCreatedNotification(operationID, opUserID, groupID string, initMemberL continue } GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) + if len(GroupCreatedTips.MemberList) == constant.MaxNotificationNum { + break + } } groupNotification(constant.GroupCreatedNotification, &GroupCreatedTips, opUserID, groupID, "", operationID) } @@ -536,7 +539,6 @@ func MemberInvitedNotification(operationID, groupID, opUserID, reason string, in } MemberInvitedTips.InvitedUserList = append(MemberInvitedTips.InvitedUserList, &groupMemberInfo) } - groupNotification(constant.MemberInvitedNotification, &MemberInvitedTips, opUserID, groupID, "", operationID) } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index a3f20f993..675d4e414 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -379,6 +379,13 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } + oldNickname := "" + if req.UserInfo.Nickname != "" { + u, err := imdb.GetUserByUserID(req.UserInfo.UserID) + if err == nil { + oldNickname = u.Nickname + } + } var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { @@ -420,6 +427,24 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI if req.UserInfo.FaceURL != "" { go s.SyncJoinedGroupMemberFaceURL(req.UserInfo.UserID, req.UserInfo.FaceURL, req.OperationID, req.OpUserID) } + if req.UserInfo.Nickname != "" { + go s.SyncJoinedGroupMemberNickname(req.UserInfo.UserID, req.UserInfo.Nickname, oldNickname, req.OperationID, req.OpUserID) + } + //updateUserInfoToCacheReq := &cache.UpdateUserInfoToCacheReq{ + // OperationID: req.OperationID, + // UserInfoList: []*sdkws.UserInfo{req.UserInfo}, + //} + //cacheEtcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName) + //cacheClient := cache.NewCacheClient(cacheEtcdConn) + //resp, err := cacheClient.UpdateUserInfoToCache(context.Background(), updateUserInfoToCacheReq) + //if err != nil { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), updateUserInfoToCacheReq.String()) + // return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrServer.ErrCode, ErrMsg: err.Error()}}, nil + //} + //if resp.CommonResp.ErrCode != 0 { + // log.NewError(req.OperationID, utils.GetSelfFuncName(), resp.String()) + // return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrServer.ErrCode, ErrMsg: resp.CommonResp.ErrMsg}}, nil + //} return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } func (s *userServer) SetGlobalRecvMessageOpt(ctx context.Context, req *pbUser.SetGlobalRecvMessageOptReq) (*pbUser.SetGlobalRecvMessageOptResp, error) { @@ -444,6 +469,7 @@ func (s *userServer) SetGlobalRecvMessageOpt(ctx context.Context, req *pbUser.Se chat.UserInfoUpdatedNotification(req.OperationID, req.UserID, req.UserID) return &pbUser.SetGlobalRecvMessageOptResp{CommonResp: &pbUser.CommonResp{}}, nil } + func (s *userServer) SyncJoinedGroupMemberFaceURL(userID string, faceURL string, operationID string, opUserID string) { joinedGroupIDList, err := rocksCache.GetJoinedGroupIDListFromCache(userID) if err != nil { @@ -464,6 +490,33 @@ func (s *userServer) SyncJoinedGroupMemberFaceURL(userID string, faceURL string, } } +func (s *userServer) SyncJoinedGroupMemberNickname(userID string, newNickname, oldNickname string, operationID string, opUserID string) { + joinedGroupIDList, err := imdb.GetJoinedGroupIDListByUserID(userID) + if err != nil { + log.NewWarn(operationID, "GetJoinedGroupIDListByUserID failed ", userID, err.Error()) + return + } + for _, v := range joinedGroupIDList { + member, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(v, userID) + if err != nil { + log.NewWarn(operationID, "GetGroupMemberInfoByGroupIDAndUserID failed ", err.Error(), v, userID) + continue + } + if member.Nickname == oldNickname { + groupMemberInfo := db.GroupMember{UserID: userID, GroupID: v, Nickname: newNickname} + if err := imdb.UpdateGroupMemberInfo(groupMemberInfo); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), groupMemberInfo) + continue + } + if err := rocksCache.DelAllGroupMembersInfoFromCache(v); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error(), v) + continue + } + chat.GroupMemberInfoSetNotification(operationID, opUserID, v, userID) + } + } +} + func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByNameReq) (*pbUser.GetUsersByNameResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) resp := &pbUser.GetUsersByNameResp{} diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index e15bed380..21b1912e7 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -72,7 +72,7 @@ type GetBlackListResp struct { type SetFriendRemarkReq struct { ParamsCommFriend - Remark string `json:"remark" binding:"required"` + Remark string `json:"remark"` } type SetFriendRemarkResp struct { CommResp diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index dac6328ee..09a164e42 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -161,10 +161,13 @@ type ApplicationGroupResponseResp struct { } type JoinGroupReq struct { - GroupID string `json:"groupID" binding:"required"` - ReqMessage string `json:"reqMessage"` - OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + ReqMessage string `json:"reqMessage"` + OperationID string `json:"operationID" binding:"required"` + JoinSource int32 `json:"joinSource"` + InviterUserID string `json:"inviterUserID"` } + type JoinGroupResp struct { CommResp } @@ -178,14 +181,16 @@ type QuitGroupResp struct { } type SetGroupInfoReq struct { - GroupID string `json:"groupID" binding:"required"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceURL string `json:"faceURL"` - Ex string `json:"ex"` - OperationID string `json:"operationID" binding:"required"` - NeedVerification *int32 `json:"needVerification" binding "oneof=0 1 2"` + GroupID string `json:"groupID" binding:"required"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + Ex string `json:"ex"` + OperationID string `json:"operationID" binding:"required"` + NeedVerification *int32 `json:"needVerification" ` + LookMemberInfo *int32 `json:"lookMemberInfo"` + ApplyMemberFriend *int32 `json:"applyMemberFriend"` } type SetGroupInfoResp struct { diff --git a/pkg/base_info/msg.go b/pkg/base_info/msg.go index 153313f65..f6b134ef3 100644 --- a/pkg/base_info/msg.go +++ b/pkg/base_info/msg.go @@ -18,3 +18,19 @@ type CleanUpMsgReq struct { type CleanUpMsgResp struct { CommResp } +type DelSuperGroupMsgReq struct { + UserID string `json:"userID,omitempty" binding:"required"` + GroupID string `json:"groupID,omitempty" binding:"required"` + SeqList []uint32 `json:"seqList,omitempty"` + IsAllDelete bool `json:"isAllDelete"` + OperationID string `json:"operationID,omitempty" binding:"required"` +} + +type DelSuperGroupMsgResp struct { + CommResp +} +type MsgDeleteNotificationElem struct { + GroupID string `json:"groupID"` + IsAllDelete bool `json:"isAllDelete"` + SeqList []uint32 `json:"seqList"` +} diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 824f58043..e00be850d 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -32,7 +32,7 @@ type ApiUserInfo struct { type GroupAddMemberInfo struct { UserID string `json:"userID" binding:"required"` - RoleLevel int32 `json:"roleLevel" binding:"required"` + RoleLevel int32 `json:"roleLevel" binding:"required,oneof= 1 3"` } func SetErrCodeMsg(c *gin.Context, status int) *CommResp { diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index aea550a20..6d7748b4c 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -106,6 +106,7 @@ type config struct { DBMaxIdle int `yaml:"dbMaxIdle"` DBMaxActive int `yaml:"dbMaxActive"` DBIdleTimeout int `yaml:"dbIdleTimeout"` + DBUserName string `yaml:"dbUserName"` DBPassWord string `yaml:"dbPassWord"` EnableCluster bool `yaml:"enableCluster"` } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index ff857ef5c..3deeed5e6 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -58,6 +58,7 @@ const ( FriendRemarkSetNotification = 1206 //set_friend_remark? BlackAddedNotification = 1207 //add_black BlackDeletedNotification = 1208 //remove_black + MsgDeleteNotification = 1209 ConversationOptChangeNotification = 1300 // change conversation opt @@ -171,6 +172,10 @@ const ( //UserJoinGroupSource JoinByAdmin = 1 + JoinByInvitation = 2 + JoinBySearch = 3 + JoinByQRCode = 4 + //Minio MinioDurationTimes = 3600 @@ -298,3 +303,5 @@ const BigVersion = "v2" const LogFileName = "OpenIM.log" const StatisticsTimeInterval = 60 + +const MaxNotificationNum = 100 diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index de4461c99..6b30fad7d 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -118,11 +118,14 @@ func init() { // ) // }, //} + fmt.Println("tes", config.Config.Redis.DBUserName, config.Config.Redis.DBPassWord) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() if config.Config.Redis.EnableCluster { DB.rdb = go_redis.NewClusterClient(&go_redis.ClusterOptions{ Addrs: config.Config.Redis.DBAddress, + Username: config.Config.Redis.DBUserName, + Password: config.Config.Redis.DBPassWord, // no password set PoolSize: 50, }) _, err = DB.rdb.Ping(ctx).Result() @@ -132,6 +135,7 @@ func init() { } else { DB.rdb = go_redis.NewClient(&go_redis.Options{ Addr: config.Config.Redis.DBAddress[0], + Username: config.Config.Redis.DBUserName, Password: config.Config.Redis.DBPassWord, // no password set DB: 0, // use default DB PoolSize: 100, // 连接池大小 diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index b256a2161..0b30be53e 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -77,17 +77,21 @@ func (FriendRequest) TableName() string { type Group struct { //`json:"operationID" binding:"required"` //`protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` `json:"operationID" binding:"required"` - GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` - GroupName string `gorm:"column:name;size:255" json:"groupName"` - Notification string `gorm:"column:notification;size:255" json:"notification"` - Introduction string `gorm:"column:introduction;size:255" json:"introduction"` - FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` - CreateTime time.Time `gorm:"column:create_time"` - Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` - Status int32 `gorm:"column:status"` - CreatorUserID string `gorm:"column:creator_user_id;size:64"` - GroupType int32 `gorm:"column:group_type"` - NeedVerification int32 `gorm:"column:need_verification"` + GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` + GroupName string `gorm:"column:name;size:255" json:"groupName"` + Notification string `gorm:"column:notification;size:255" json:"notification"` + Introduction string `gorm:"column:introduction;size:255" json:"introduction"` + FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` + CreateTime time.Time `gorm:"column:create_time"` + Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` + Status int32 `gorm:"column:status"` + CreatorUserID string `gorm:"column:creator_user_id;size:64"` + GroupType int32 `gorm:"column:group_type"` + NeedVerification int32 `gorm:"column:need_verification"` + LookMemberInfo int32 `gorm:"column:look_member_info" json:"lookMemberInfo"` + ApplyMemberFriend int32 `gorm:"column:apply_member_friend" json:"applyMemberFriend"` + NotificationUpdateTime time.Time `gorm:"column:notification_update_time"` + NotificationUserID string `gorm:"column:notification_user_id;size:64"` } //message GroupMemberFullInfo { @@ -110,6 +114,7 @@ type GroupMember struct { RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` JoinSource int32 `gorm:"column:join_source"` + InviterUserID string `gorm:"column:inviter_user_id;size:64"` OperatorUserID string `gorm:"column:operator_user_id;size:64"` MuteEndTime time.Time `gorm:"column:mute_end_time"` Ex string `gorm:"column:ex;size:1024"` @@ -127,15 +132,17 @@ type GroupMember struct { //string Ex = 9; //}open_im_sdk.GroupRequest == imdb.GroupRequest type GroupRequest struct { - UserID string `gorm:"column:user_id;primary_key;size:64"` - GroupID string `gorm:"column:group_id;primary_key;size:64"` - HandleResult int32 `gorm:"column:handle_result"` - ReqMsg string `gorm:"column:req_msg;size:1024"` - HandledMsg string `gorm:"column:handle_msg;size:1024"` - ReqTime time.Time `gorm:"column:req_time"` - HandleUserID string `gorm:"column:handle_user_id;size:64"` - HandledTime time.Time `gorm:"column:handle_time"` - Ex string `gorm:"column:ex;size:1024"` + UserID string `gorm:"column:user_id;primary_key;size:64"` + GroupID string `gorm:"column:group_id;primary_key;size:64"` + HandleResult int32 `gorm:"column:handle_result"` + ReqMsg string `gorm:"column:req_msg;size:1024"` + HandledMsg string `gorm:"column:handle_msg;size:1024"` + ReqTime time.Time `gorm:"column:req_time"` + HandleUserID string `gorm:"column:handle_user_id;size:64"` + HandledTime time.Time `gorm:"column:handle_time"` + JoinSource int32 `gorm:"column:join_source"` + InviterUserID string `gorm:"column:inviter_user_id;size:64"` + Ex string `gorm:"column:ex;size:1024"` } //string UserID = 1; 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 aa70f24b6..19c2b1164 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 @@ -3,6 +3,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "errors" "fmt" "gorm.io/gorm" @@ -27,10 +28,15 @@ func InsertIntoGroup(groupInfo db.Group) error { groupInfo.GroupName = "Group Chat" } groupInfo.CreateTime = time.Now() + + if groupInfo.NotificationUpdateTime.Unix() < 0 { + groupInfo.NotificationUpdateTime = utils.UnixSecondToTime(0) + } err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Create(groupInfo).Error if err != nil { return err } + return nil } diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 1f6df3cd0..e437203ce 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -99,6 +99,10 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) error { return utils.Wrap(err, "") } dst.CreateTime = uint32(src.CreateTime.Unix()) + dst.NotificationUpdateTime = uint32(src.NotificationUpdateTime.Unix()) + if src.NotificationUpdateTime.Unix() < 0 { + dst.NotificationUpdateTime = 0 + } return nil } @@ -119,7 +123,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } dst.JoinTime = int32(src.JoinTime.Unix()) - if src.MuteEndTime.Unix() < 0 { + if src.JoinTime.Unix() < 0 { dst.JoinTime = 0 return nil } diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 265ec66d7..349827f6d 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{0} + return fileDescriptor_group_d529c7a0e85dbd90, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{1} + return fileDescriptor_group_d529c7a0e85dbd90, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{2} + return fileDescriptor_group_d529c7a0e85dbd90, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{3} + return fileDescriptor_group_d529c7a0e85dbd90, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{4} + return fileDescriptor_group_d529c7a0e85dbd90, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{5} + return fileDescriptor_group_d529c7a0e85dbd90, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{6} + return fileDescriptor_group_d529c7a0e85dbd90, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{7} + return fileDescriptor_group_d529c7a0e85dbd90, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{8} + return fileDescriptor_group_d529c7a0e85dbd90, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{9} + return fileDescriptor_group_d529c7a0e85dbd90, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{10} + return fileDescriptor_group_d529c7a0e85dbd90, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{11} + return fileDescriptor_group_d529c7a0e85dbd90, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{12} + return fileDescriptor_group_d529c7a0e85dbd90, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{13} + return fileDescriptor_group_d529c7a0e85dbd90, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -762,6 +762,8 @@ type JoinGroupReq struct { ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + JoinSource int32 `protobuf:"varint,5,opt,name=JoinSource" json:"JoinSource,omitempty"` + InviterUserID string `protobuf:"bytes,6,opt,name=InviterUserID" json:"InviterUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -771,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{14} + return fileDescriptor_group_d529c7a0e85dbd90, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -819,6 +821,20 @@ func (m *JoinGroupReq) GetOperationID() string { return "" } +func (m *JoinGroupReq) GetJoinSource() int32 { + if m != nil { + return m.JoinSource + } + return 0 +} + +func (m *JoinGroupReq) GetInviterUserID() string { + if m != nil { + return m.InviterUserID + } + return "" +} + type JoinGroupResp struct { CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -830,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{15} + return fileDescriptor_group_d529c7a0e85dbd90, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -873,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{16} + return fileDescriptor_group_d529c7a0e85dbd90, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -946,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{17} + return fileDescriptor_group_d529c7a0e85dbd90, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -986,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{18} + return fileDescriptor_group_d529c7a0e85dbd90, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1038,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{19} + return fileDescriptor_group_d529c7a0e85dbd90, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1080,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{20} + return fileDescriptor_group_d529c7a0e85dbd90, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1149,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{21} + return fileDescriptor_group_d529c7a0e85dbd90, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1211,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{22} + return fileDescriptor_group_d529c7a0e85dbd90, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1272,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{23} + return fileDescriptor_group_d529c7a0e85dbd90, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1328,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{24} + return fileDescriptor_group_d529c7a0e85dbd90, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1395,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{25} + return fileDescriptor_group_d529c7a0e85dbd90, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1442,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{26} + return fileDescriptor_group_d529c7a0e85dbd90, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1496,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{27} + return fileDescriptor_group_d529c7a0e85dbd90, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1550,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{28} + return fileDescriptor_group_d529c7a0e85dbd90, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1606,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{29} + return fileDescriptor_group_d529c7a0e85dbd90, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1674,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{30} + return fileDescriptor_group_d529c7a0e85dbd90, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1728,7 +1744,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{31} + return fileDescriptor_group_d529c7a0e85dbd90, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1782,7 +1798,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{32} + return fileDescriptor_group_d529c7a0e85dbd90, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1836,7 +1852,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{33} + return fileDescriptor_group_d529c7a0e85dbd90, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1890,7 +1906,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{34} + return fileDescriptor_group_d529c7a0e85dbd90, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1944,7 +1960,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{35} + return fileDescriptor_group_d529c7a0e85dbd90, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -1997,7 +2013,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{36} + return fileDescriptor_group_d529c7a0e85dbd90, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2044,7 +2060,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{37} + return fileDescriptor_group_d529c7a0e85dbd90, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2097,7 +2113,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{38} + return fileDescriptor_group_d529c7a0e85dbd90, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2144,7 +2160,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{39} + return fileDescriptor_group_d529c7a0e85dbd90, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2195,7 +2211,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{40} + return fileDescriptor_group_d529c7a0e85dbd90, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2229,7 +2245,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{41} + return fileDescriptor_group_d529c7a0e85dbd90, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2287,7 +2303,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{42} + return fileDescriptor_group_d529c7a0e85dbd90, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2319,7 +2335,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{43} + return fileDescriptor_group_d529c7a0e85dbd90, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2363,7 +2379,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{44} + return fileDescriptor_group_d529c7a0e85dbd90, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2395,7 +2411,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{45} + return fileDescriptor_group_d529c7a0e85dbd90, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2440,7 +2456,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{46} + return fileDescriptor_group_d529c7a0e85dbd90, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2481,7 +2497,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{47} + return fileDescriptor_group_d529c7a0e85dbd90, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2542,7 +2558,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{48} + return fileDescriptor_group_d529c7a0e85dbd90, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2597,7 +2613,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{49} + return fileDescriptor_group_d529c7a0e85dbd90, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2657,7 +2673,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{50} + return fileDescriptor_group_d529c7a0e85dbd90, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2705,7 +2721,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{51} + return fileDescriptor_group_d529c7a0e85dbd90, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2765,7 +2781,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{52} + return fileDescriptor_group_d529c7a0e85dbd90, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2812,7 +2828,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{53} + return fileDescriptor_group_d529c7a0e85dbd90, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2864,7 +2880,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{54} + return fileDescriptor_group_d529c7a0e85dbd90, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2906,7 +2922,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{55} + return fileDescriptor_group_d529c7a0e85dbd90, []int{55} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -2972,7 +2988,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{56} + return fileDescriptor_group_d529c7a0e85dbd90, []int{56} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -3013,7 +3029,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{57} + return fileDescriptor_group_d529c7a0e85dbd90, []int{57} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -3072,7 +3088,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{58} + return fileDescriptor_group_d529c7a0e85dbd90, []int{58} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -3112,7 +3128,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{59} + return fileDescriptor_group_d529c7a0e85dbd90, []int{59} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3164,7 +3180,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{60} + return fileDescriptor_group_d529c7a0e85dbd90, []int{60} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3204,7 +3220,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{61} + return fileDescriptor_group_d529c7a0e85dbd90, []int{61} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3256,7 +3272,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{62} + return fileDescriptor_group_d529c7a0e85dbd90, []int{62} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3298,7 +3314,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{63} + return fileDescriptor_group_d529c7a0e85dbd90, []int{63} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3364,7 +3380,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{64} + return fileDescriptor_group_d529c7a0e85dbd90, []int{64} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3404,7 +3420,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{65} + return fileDescriptor_group_d529c7a0e85dbd90, []int{65} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3457,7 +3473,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{66} + return fileDescriptor_group_d529c7a0e85dbd90, []int{66} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3504,7 +3520,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{67} + return fileDescriptor_group_d529c7a0e85dbd90, []int{67} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3557,7 +3573,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{68} + return fileDescriptor_group_d529c7a0e85dbd90, []int{68} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3609,7 +3625,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{69} + return fileDescriptor_group_d529c7a0e85dbd90, []int{69} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3696,7 +3712,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_40c147a29abb4e60, []int{70} + return fileDescriptor_group_d529c7a0e85dbd90, []int{70} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -4925,157 +4941,159 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_40c147a29abb4e60) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_d529c7a0e85dbd90) } -var fileDescriptor_group_40c147a29abb4e60 = []byte{ - // 2381 bytes of a gzipped FileDescriptorProto +var fileDescriptor_group_d529c7a0e85dbd90 = []byte{ + // 2407 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0x1c, 0x49, - 0x15, 0x57, 0xdb, 0x1e, 0xdb, 0xf3, 0x6c, 0x67, 0xec, 0x72, 0xc6, 0x1e, 0x77, 0xbc, 0x59, 0xa7, - 0x37, 0x2c, 0x11, 0x2c, 0xb6, 0x70, 0xa4, 0x08, 0x58, 0x44, 0x88, 0xff, 0xc5, 0x93, 0xf8, 0x0f, - 0xee, 0xc9, 0x72, 0x88, 0x84, 0xc2, 0x64, 0xba, 0x3c, 0x1a, 0x3c, 0xd3, 0xdd, 0xee, 0xea, 0xb1, - 0x03, 0x97, 0x15, 0x97, 0x95, 0x16, 0x21, 0x01, 0x42, 0xe2, 0x04, 0x82, 0x3d, 0xc1, 0x81, 0x03, - 0x07, 0x38, 0x23, 0x3e, 0x06, 0x57, 0xbe, 0x00, 0x9f, 0x00, 0x09, 0x75, 0x55, 0x75, 0x75, 0x75, - 0x57, 0x75, 0x7b, 0xd2, 0x4e, 0x36, 0x97, 0x96, 0xea, 0xd5, 0xab, 0x7a, 0xbf, 0xf7, 0xaa, 0xde, - 0xab, 0x7a, 0xaf, 0x1a, 0x16, 0xba, 0x81, 0x37, 0xf4, 0x37, 0xe8, 0x77, 0xdd, 0x0f, 0xbc, 0xd0, - 0x43, 0x15, 0xda, 0x30, 0xef, 0x1c, 0xfb, 0xd8, 0x7d, 0xd1, 0x3c, 0xdc, 0xf0, 0xcf, 0xba, 0x1b, - 0xb4, 0x67, 0x83, 0x38, 0x67, 0x2f, 0x2e, 0xc9, 0xc6, 0x25, 0x61, 0x9c, 0xe6, 0x57, 0xf3, 0x59, - 0x82, 0xb6, 0xef, 0xe3, 0x80, 0x33, 0x5a, 0xdf, 0x03, 0xd8, 0xf6, 0x06, 0x03, 0xcf, 0xb5, 0x31, - 0xf1, 0x51, 0x03, 0xa6, 0x76, 0x83, 0x60, 0xdb, 0x73, 0x70, 0xc3, 0x58, 0x33, 0xee, 0x55, 0xec, - 0xb8, 0x89, 0x96, 0x60, 0x72, 0x37, 0x08, 0x0e, 0x49, 0xb7, 0x31, 0xb6, 0x66, 0xdc, 0xab, 0xda, - 0xbc, 0x65, 0x3d, 0x01, 0xf4, 0x38, 0x02, 0xf5, 0xc8, 0x71, 0x0e, 0xf1, 0xe0, 0x25, 0x0e, 0x9a, - 0xee, 0xa9, 0x17, 0x71, 0x7f, 0x42, 0x70, 0xd0, 0xdc, 0xa1, 0xd3, 0x54, 0x6d, 0xde, 0x42, 0xab, - 0x50, 0xb5, 0xbd, 0x3e, 0x3e, 0xc0, 0x17, 0xb8, 0x4f, 0x27, 0xaa, 0xd8, 0x09, 0xc1, 0xfa, 0xaf, - 0x01, 0x37, 0xb6, 0x03, 0xdc, 0x0e, 0x31, 0x9d, 0xd2, 0xc6, 0xe7, 0xe8, 0x11, 0xdc, 0x68, 0xba, - 0xbd, 0x90, 0x4d, 0x7d, 0xd0, 0x23, 0x61, 0xc3, 0x58, 0x1b, 0xbf, 0x37, 0xb3, 0xb9, 0xb2, 0xce, - 0xec, 0xa2, 0xca, 0xb6, 0x33, 0x03, 0xd0, 0x77, 0xa0, 0x4a, 0xb9, 0xa2, 0x4e, 0x2a, 0x73, 0x66, - 0x73, 0x75, 0x9d, 0xe0, 0xe0, 0x02, 0x07, 0x2f, 0xda, 0x7e, 0xef, 0x85, 0xdf, 0x0e, 0xda, 0x03, - 0xb2, 0x2e, 0x78, 0xec, 0x84, 0x1d, 0xad, 0xc1, 0xcc, 0xb1, 0x8f, 0x83, 0x76, 0xd8, 0xf3, 0xdc, - 0xe6, 0x4e, 0x63, 0x9c, 0x2a, 0x23, 0x93, 0x90, 0x09, 0xd3, 0xc7, 0x3e, 0xd7, 0x75, 0x82, 0x76, - 0x8b, 0x36, 0x1d, 0x7d, 0xe9, 0xe2, 0x80, 0x77, 0x57, 0xf8, 0xe8, 0x84, 0x64, 0x7d, 0x0a, 0xb5, - 0x94, 0xc2, 0x65, 0x96, 0x20, 0xad, 0xe0, 0xf8, 0x6b, 0x29, 0x68, 0x05, 0x30, 0xff, 0x18, 0x87, - 0xb4, 0x4d, 0x68, 0x1f, 0x3e, 0x8f, 0x60, 0x33, 0x86, 0x1d, 0x61, 0xf0, 0xaa, 0x2d, 0x93, 0xb2, - 0x66, 0x19, 0x2b, 0x36, 0xcb, 0x78, 0xda, 0x2c, 0xd6, 0xe7, 0x06, 0x2c, 0x64, 0x84, 0x96, 0xd2, - 0x7b, 0x0b, 0xe6, 0x84, 0x22, 0x14, 0xe9, 0x38, 0xdd, 0x1a, 0xc5, 0xba, 0xa7, 0x87, 0x58, 0x7f, - 0x30, 0xa0, 0xd6, 0xe2, 0x58, 0x62, 0xfd, 0x0f, 0xa0, 0xd6, 0x8d, 0xdb, 0x7b, 0x5e, 0xd0, 0xc2, - 0x21, 0x45, 0x34, 0xb3, 0x69, 0x15, 0xcd, 0xcc, 0x38, 0xed, 0xec, 0xd0, 0x94, 0x25, 0xc6, 0x34, - 0x1b, 0xa4, 0x70, 0x7b, 0x59, 0xbb, 0x30, 0x9f, 0x86, 0x47, 0x7c, 0xf4, 0x4d, 0xd9, 0x65, 0x39, - 0xb4, 0x05, 0xee, 0x0f, 0x49, 0x87, 0x2d, 0x31, 0x59, 0x3f, 0x03, 0x33, 0xb6, 0xf8, 0x23, 0xdf, - 0xef, 0xf7, 0x3a, 0x74, 0xfe, 0xc8, 0x02, 0x91, 0xc2, 0x32, 0x44, 0xa3, 0x18, 0xa2, 0x66, 0xa9, - 0x6f, 0x03, 0xec, 0x05, 0xde, 0x20, 0xb5, 0xd8, 0x12, 0xc5, 0xfa, 0xbd, 0x01, 0xb7, 0x72, 0x85, - 0x97, 0x5a, 0xf8, 0xa7, 0x30, 0x1f, 0x07, 0x88, 0x21, 0x26, 0xa1, 0xb4, 0xf6, 0xef, 0xe7, 0xad, - 0x10, 0x67, 0xb5, 0x95, 0x81, 0x56, 0x08, 0xab, 0x8f, 0x71, 0x18, 0x61, 0xb5, 0xf1, 0xb9, 0xc6, - 0x38, 0x79, 0xa1, 0xec, 0x7a, 0xeb, 0xfa, 0x47, 0x03, 0xde, 0x2b, 0x10, 0x5b, 0x6a, 0x95, 0xb5, - 0x76, 0x19, 0x2b, 0x6b, 0x97, 0x7f, 0x1a, 0x50, 0x7f, 0x16, 0xb4, 0x5d, 0x72, 0x8a, 0x03, 0xda, - 0x49, 0xe3, 0x56, 0x64, 0x91, 0x06, 0x4c, 0xf1, 0x60, 0xc0, 0x4d, 0x12, 0x37, 0xd1, 0x87, 0x70, - 0xe3, 0xb8, 0xef, 0xc8, 0x31, 0x8f, 0x59, 0x26, 0x43, 0x8d, 0xf8, 0x8e, 0xf0, 0xa5, 0xcc, 0xc7, - 0x4c, 0x94, 0xa1, 0x66, 0xed, 0x38, 0x51, 0x1c, 0x67, 0x2a, 0x99, 0x38, 0xf3, 0x14, 0x96, 0x74, - 0x0a, 0x94, 0xf3, 0xa0, 0xcf, 0x0c, 0x98, 0x7d, 0xe2, 0xf5, 0x5c, 0x71, 0x32, 0xe5, 0x5b, 0xe1, - 0x36, 0x80, 0x8d, 0xcf, 0x0f, 0x31, 0x21, 0xed, 0x2e, 0xe6, 0x16, 0x90, 0x28, 0x45, 0xb1, 0xf1, - 0x6a, 0x8d, 0xad, 0x2d, 0x98, 0x93, 0x70, 0x94, 0x53, 0xe6, 0xdf, 0x91, 0x4b, 0x66, 0xfc, 0x31, - 0xea, 0xf0, 0x5c, 0x82, 0xf9, 0x09, 0x20, 0xa3, 0x30, 0x8a, 0xed, 0x9e, 0xdd, 0xfd, 0x92, 0x65, - 0xc6, 0x15, 0xcb, 0x48, 0xa1, 0x62, 0x22, 0x1b, 0x2a, 0xa2, 0xfe, 0xfd, 0xb6, 0xeb, 0xf4, 0xb1, - 0x13, 0x39, 0x3d, 0x5b, 0x4f, 0x89, 0x82, 0x2c, 0x98, 0x65, 0x2d, 0x1b, 0x93, 0x61, 0x3f, 0x6c, - 0x4c, 0xd2, 0x78, 0x91, 0xa2, 0x59, 0x27, 0xb0, 0x9a, 0xaf, 0x5a, 0x39, 0x73, 0x9d, 0xc2, 0xec, - 0xc9, 0xb0, 0x17, 0x8e, 0xb0, 0xf4, 0xd7, 0x3b, 0x18, 0xb7, 0x60, 0x4e, 0x92, 0x53, 0x0e, 0xeb, - 0x17, 0x06, 0xd4, 0xe3, 0x68, 0x9b, 0x5c, 0x82, 0x8a, 0x51, 0x5f, 0x2b, 0x94, 0x45, 0x01, 0x72, - 0xaf, 0xd7, 0x0f, 0x71, 0x40, 0x17, 0xb4, 0x62, 0xf3, 0x56, 0x24, 0xef, 0x08, 0xbf, 0x0a, 0x5b, - 0xf8, 0x9c, 0xae, 0x64, 0xc5, 0x8e, 0x9b, 0xd6, 0x5f, 0x0d, 0x58, 0xd2, 0x61, 0x2c, 0x75, 0x18, - 0xec, 0x01, 0x0c, 0x92, 0xdb, 0x21, 0x3b, 0x06, 0x3e, 0xcc, 0x0b, 0x77, 0x4c, 0xda, 0xde, 0xb0, - 0xdf, 0xa7, 0xa7, 0xa9, 0x34, 0x32, 0x92, 0xec, 0x72, 0xb8, 0x4c, 0x8f, 0xb8, 0x69, 0xfd, 0x5a, - 0x81, 0x2b, 0xae, 0x4a, 0x85, 0x41, 0x40, 0x82, 0x35, 0x46, 0xef, 0x50, 0xb2, 0xb8, 0xeb, 0x05, - 0x81, 0xdf, 0x1a, 0xb0, 0xac, 0x85, 0xf4, 0x2e, 0x4d, 0x68, 0xfd, 0xcd, 0x00, 0xf4, 0xb4, 0xd7, - 0x39, 0x93, 0xf8, 0x8a, 0x8d, 0xf4, 0x35, 0x98, 0x8f, 0xf8, 0xb1, 0xc3, 0x14, 0x97, 0x4c, 0xa5, - 0xd0, 0x23, 0xf0, 0x36, 0x6e, 0x13, 0xcf, 0xe5, 0xe6, 0xe2, 0xad, 0xac, 0xb1, 0x2a, 0xc5, 0x2e, - 0x37, 0x99, 0x71, 0xb9, 0x8f, 0xa1, 0xda, 0x74, 0x36, 0x59, 0xe8, 0xc8, 0x3d, 0xea, 0xa9, 0x68, - 0x1a, 0x70, 0x58, 0xca, 0xc2, 0x5b, 0xd6, 0xa7, 0xb0, 0xa8, 0xa8, 0x5b, 0x6a, 0x01, 0x1e, 0xc0, - 0x9c, 0x40, 0x21, 0xad, 0xc1, 0x3c, 0x77, 0x75, 0xd1, 0x67, 0xa7, 0xd9, 0xac, 0x21, 0xf5, 0xf5, - 0xe8, 0x38, 0xc0, 0x0e, 0x45, 0x11, 0xfb, 0x7a, 0x3a, 0xd0, 0x1a, 0x4a, 0xa0, 0x5d, 0x83, 0x19, - 0x4f, 0x8d, 0x53, 0xde, 0x88, 0x71, 0xea, 0x33, 0xe6, 0x10, 0x8a, 0xdc, 0x6b, 0x65, 0x2f, 0x23, - 0xdf, 0xe0, 0x13, 0x76, 0xeb, 0xef, 0x06, 0xdc, 0x6c, 0xba, 0x17, 0xbd, 0x10, 0x47, 0xc8, 0x9e, - 0x79, 0x22, 0x42, 0x5f, 0x1d, 0x87, 0xf3, 0x0f, 0xa9, 0x64, 0xa3, 0x4d, 0xa4, 0x36, 0xda, 0x47, - 0xb0, 0xc0, 0x64, 0xc9, 0xbb, 0xb5, 0x42, 0x77, 0xab, 0xda, 0x51, 0xb8, 0xe9, 0x7e, 0x6e, 0x40, - 0x5d, 0x03, 0xfb, 0x4b, 0xdd, 0x3a, 0x2e, 0xdc, 0x14, 0x97, 0xf2, 0x7e, 0x7f, 0x14, 0x67, 0xbd, - 0xde, 0x85, 0xf7, 0x37, 0xd2, 0xb9, 0x24, 0x09, 0x7c, 0xa7, 0xf1, 0xea, 0x77, 0x06, 0x4c, 0x6f, - 0x1f, 0xb6, 0x28, 0x5b, 0x3a, 0x8b, 0x36, 0x5e, 0xaf, 0x4c, 0x70, 0x0f, 0x6a, 0x4c, 0x56, 0x9b, - 0x84, 0x38, 0x38, 0x6a, 0x0f, 0xe2, 0x6b, 0x5f, 0x96, 0x8c, 0xee, 0xf2, 0x9c, 0x95, 0x91, 0x9a, - 0x0e, 0x37, 0x55, 0x9a, 0x18, 0x85, 0xf7, 0x99, 0xd8, 0x58, 0xd1, 0xa2, 0xac, 0x72, 0x6c, 0x74, - 0x66, 0xb6, 0x2c, 0x09, 0x01, 0xed, 0x00, 0xfc, 0xa0, 0xdd, 0xed, 0xb9, 0xd4, 0xd4, 0xbc, 0xc2, - 0x71, 0x57, 0x03, 0x9d, 0xdf, 0xee, 0x13, 0x5e, 0x5b, 0x1a, 0x37, 0xc2, 0x12, 0x7e, 0x61, 0xc0, - 0x6c, 0x82, 0x8a, 0xf8, 0xe8, 0x1b, 0x50, 0x8d, 0xcd, 0x47, 0x78, 0x5d, 0xa6, 0x16, 0xdf, 0x4e, - 0x38, 0xdd, 0x4e, 0x38, 0xde, 0x10, 0x4e, 0x61, 0x8b, 0xe1, 0x80, 0x50, 0x94, 0x15, 0x3b, 0x21, - 0x58, 0x17, 0x09, 0x44, 0x12, 0x59, 0x2e, 0x2d, 0xd3, 0x78, 0x33, 0xb6, 0x51, 0xc3, 0x89, 0xf5, - 0x27, 0x03, 0xe6, 0x24, 0xc1, 0xef, 0xca, 0x38, 0x26, 0x4c, 0xc7, 0xb6, 0xe0, 0xb6, 0x11, 0x6d, - 0xeb, 0x38, 0xa9, 0xba, 0x68, 0xdc, 0xdd, 0x49, 0xbb, 0xbb, 0x33, 0x82, 0xce, 0x67, 0x50, 0x67, - 0x4d, 0x56, 0xbd, 0x6a, 0x85, 0xed, 0x70, 0x48, 0x8a, 0x27, 0x5d, 0x82, 0x49, 0xc6, 0x16, 0x9f, - 0xa4, 0xac, 0x35, 0xc2, 0xe6, 0x6b, 0xc0, 0x92, 0x4e, 0x18, 0xcb, 0xcc, 0x10, 0xef, 0xa2, 0xe9, - 0xb4, 0xd7, 0xc7, 0x57, 0x82, 0xa0, 0x61, 0xcb, 0x89, 0xc3, 0x0a, 0x6b, 0xa5, 0x8b, 0x93, 0xe3, - 0x99, 0xe2, 0xe4, 0x08, 0x97, 0xb2, 0x3a, 0x2c, 0x2a, 0x38, 0x88, 0x6f, 0x1d, 0xc0, 0x8d, 0x1d, - 0xdc, 0xc7, 0x52, 0x51, 0xf3, 0x3a, 0x46, 0x5f, 0x80, 0x5a, 0x6a, 0x36, 0xe2, 0x5b, 0x87, 0x50, - 0x8b, 0x17, 0x76, 0xeb, 0xa7, 0x4d, 0xe7, 0xba, 0x12, 0x1e, 0x26, 0x25, 0x41, 0x36, 0x1d, 0xf1, - 0xd1, 0xd7, 0x93, 0x40, 0xc9, 0x9d, 0x48, 0xd9, 0xcb, 0x82, 0xc1, 0xfa, 0x87, 0x92, 0x82, 0x90, - 0xed, 0xc3, 0x56, 0x31, 0x2c, 0x13, 0xa6, 0x23, 0xa3, 0x49, 0xa1, 0x53, 0xb4, 0x33, 0xae, 0x31, - 0xfe, 0x66, 0x7c, 0x58, 0xb3, 0x7e, 0xff, 0x52, 0xef, 0xf9, 0x14, 0x37, 0xf1, 0xd1, 0xf7, 0x61, - 0x8a, 0x9d, 0x1b, 0xb1, 0x2b, 0x8f, 0x7a, 0xdc, 0xc4, 0xc3, 0xd0, 0xae, 0xc6, 0xbf, 0xbf, 0xa2, - 0x55, 0x82, 0xe5, 0xaa, 0x39, 0x5a, 0xdc, 0x06, 0x60, 0x12, 0xa4, 0xf0, 0x27, 0x51, 0xac, 0x5f, - 0x1a, 0xd0, 0xb0, 0xf1, 0xc0, 0xbb, 0xc0, 0xaf, 0x65, 0xfe, 0x06, 0x4c, 0x31, 0x27, 0x20, 0xfc, - 0xfe, 0x1d, 0x37, 0x5f, 0xab, 0x02, 0xee, 0x64, 0x2a, 0xe0, 0x8e, 0x75, 0x08, 0x2b, 0x39, 0x68, - 0xd8, 0xc1, 0x4f, 0x86, 0x9d, 0x0e, 0x26, 0x84, 0xd7, 0x98, 0xe3, 0x66, 0xe4, 0xa1, 0xa7, 0xed, - 0x5e, 0x1f, 0x3b, 0x1c, 0x0d, 0x6f, 0x59, 0x9f, 0x1b, 0x50, 0x7f, 0xe4, 0x38, 0x6f, 0x43, 0x35, - 0x47, 0x55, 0xcd, 0x29, 0x54, 0xed, 0x09, 0x2c, 0xe9, 0xa0, 0x94, 0xd2, 0xab, 0x07, 0xb5, 0x9d, - 0x1e, 0x19, 0xf4, 0x08, 0x11, 0x31, 0xc2, 0x84, 0x69, 0x2f, 0x53, 0x93, 0xf5, 0xfc, 0x91, 0x6f, - 0xef, 0x0d, 0x98, 0xea, 0xa6, 0x6f, 0xb7, 0xbc, 0x69, 0xed, 0xc2, 0x7c, 0x5a, 0x14, 0x2b, 0x33, - 0x74, 0x46, 0x29, 0x33, 0x24, 0x4c, 0xd6, 0x5f, 0x0c, 0x40, 0x87, 0xc3, 0x10, 0x67, 0x8e, 0x93, - 0xb7, 0x84, 0x3a, 0x32, 0xdc, 0x50, 0x2e, 0x1a, 0xf1, 0x16, 0xb2, 0x60, 0x76, 0x30, 0x0c, 0xb1, - 0xd3, 0xc2, 0x1d, 0xcf, 0x75, 0x08, 0xcd, 0xfe, 0xe6, 0xec, 0x14, 0xcd, 0xda, 0x87, 0x45, 0x05, - 0x69, 0x39, 0xa5, 0x7f, 0x61, 0x40, 0x63, 0xbb, 0xed, 0x76, 0x70, 0xff, 0xdd, 0xab, 0x6e, 0x1d, - 0xc1, 0x4a, 0x0e, 0x96, 0x72, 0xca, 0x9d, 0xc2, 0xac, 0x98, 0xe9, 0x6d, 0x6e, 0xc0, 0x2d, 0x98, - 0x93, 0xe4, 0x94, 0xc3, 0xda, 0x07, 0x94, 0xd1, 0xfd, 0x6d, 0x22, 0xde, 0x87, 0x45, 0x45, 0x5a, - 0x39, 0xdc, 0x7f, 0x36, 0x60, 0xa5, 0x95, 0x3a, 0x61, 0x8e, 0x7a, 0x9d, 0x33, 0xb7, 0x3d, 0x88, - 0x6f, 0x2c, 0xdd, 0x74, 0xea, 0xd5, 0x4d, 0x52, 0x2f, 0x97, 0x33, 0xc6, 0xa7, 0x63, 0xdc, 0x4e, - 0x69, 0x3d, 0x5e, 0xac, 0xf5, 0x84, 0xaa, 0x75, 0xb2, 0xbb, 0x2a, 0xa9, 0xdd, 0x75, 0x0c, 0x66, - 0x1e, 0xd0, 0x72, 0x75, 0xc9, 0x80, 0xbe, 0x40, 0xb1, 0x92, 0x41, 0x6b, 0xe8, 0xf3, 0x92, 0x7c, - 0x5c, 0xaf, 0xc8, 0x00, 0x35, 0x8a, 0x80, 0x8e, 0xa5, 0x22, 0x40, 0x81, 0xfa, 0xd1, 0x61, 0x78, - 0x2b, 0x57, 0x68, 0xa9, 0x15, 0xbc, 0x56, 0xb5, 0xe2, 0x92, 0x5e, 0x8b, 0x12, 0x1c, 0x5f, 0xda, - 0x83, 0xeb, 0xaf, 0xd8, 0xc5, 0x46, 0x91, 0x5c, 0xce, 0x04, 0x6f, 0xe2, 0xd9, 0xf5, 0x3f, 0x63, - 0x50, 0x4f, 0xef, 0x2f, 0xa9, 0xa2, 0x9a, 0xe3, 0x04, 0x25, 0x76, 0xc0, 0x08, 0x0e, 0xf0, 0x2d, - 0xc9, 0xb5, 0x2a, 0x3c, 0xeb, 0xef, 0x7a, 0x5e, 0xb7, 0x8f, 0xd9, 0x0f, 0x12, 0x2f, 0x87, 0xa7, - 0xeb, 0xad, 0x30, 0xe8, 0xb9, 0xdd, 0x1f, 0xb6, 0xfb, 0x43, 0x2c, 0x39, 0xde, 0x03, 0x98, 0x3a, - 0x6d, 0x77, 0xf0, 0x27, 0xf6, 0x01, 0x2d, 0xf0, 0x5c, 0x35, 0x30, 0x66, 0x46, 0xdf, 0x86, 0x6a, - 0x20, 0xd2, 0x8c, 0x29, 0x3a, 0xf2, 0x96, 0x32, 0xb2, 0xe9, 0x86, 0xf7, 0x37, 0xd9, 0xc0, 0x84, - 0x1b, 0x7d, 0x04, 0x63, 0xf8, 0x55, 0x63, 0x7a, 0x04, 0x69, 0x63, 0xf8, 0x95, 0xf5, 0x14, 0x96, - 0x74, 0x36, 0x2e, 0xe5, 0xbf, 0x9b, 0xff, 0x5b, 0x04, 0xf6, 0xf7, 0x09, 0xfa, 0x2e, 0xcc, 0x74, - 0x92, 0x7f, 0x16, 0x50, 0x3d, 0x1e, 0x97, 0xfa, 0x71, 0xc3, 0x5c, 0xd2, 0x91, 0x89, 0x8f, 0x1e, - 0x40, 0xf5, 0x27, 0xf1, 0xf3, 0x15, 0x5a, 0xe4, 0x4c, 0xf2, 0xc3, 0x9a, 0x79, 0x53, 0x25, 0xb2, - 0x71, 0xe7, 0xf1, 0xdb, 0x88, 0x18, 0x27, 0xbf, 0xca, 0x88, 0x71, 0xe9, 0x27, 0x94, 0x2d, 0x98, - 0xeb, 0xca, 0xff, 0x1a, 0xa0, 0xe5, 0xf8, 0xcf, 0x91, 0xcc, 0x6f, 0x0f, 0x66, 0x43, 0xdf, 0x41, - 0x7c, 0xf4, 0x10, 0x66, 0x89, 0xf4, 0x08, 0x8f, 0x62, 0xdd, 0x32, 0x3f, 0x0e, 0x98, 0xcb, 0x5a, - 0x3a, 0xf1, 0xd1, 0x8f, 0x61, 0xb9, 0xab, 0x7f, 0x01, 0x47, 0x77, 0x32, 0x52, 0xd5, 0x17, 0x68, - 0xd3, 0xba, 0x8a, 0x85, 0xf8, 0xe8, 0x14, 0x56, 0xba, 0x79, 0xcf, 0xc9, 0xe8, 0x83, 0x64, 0x82, - 0xdc, 0x77, 0x6e, 0xf3, 0xee, 0xd5, 0x4c, 0xc4, 0x47, 0x27, 0x80, 0x42, 0xe5, 0x4d, 0x15, 0xad, - 0xf2, 0xb1, 0xda, 0xf7, 0x62, 0xf3, 0xbd, 0x82, 0x5e, 0xe2, 0xa3, 0x0e, 0x34, 0xba, 0x39, 0x0f, - 0x76, 0xc8, 0x4a, 0xfd, 0xe6, 0xa3, 0x7d, 0xac, 0x34, 0x3f, 0xb8, 0x92, 0x87, 0xe1, 0xee, 0x2a, - 0x2f, 0x4e, 0x02, 0xb7, 0xf6, 0xc1, 0x4c, 0xe0, 0xce, 0x79, 0xaa, 0x7a, 0x06, 0x8b, 0x5d, 0xf5, - 0x09, 0x06, 0xe9, 0x47, 0x89, 0x5d, 0x76, 0xbb, 0xa8, 0x9b, 0xf8, 0x68, 0x1f, 0x6a, 0x67, 0xe9, - 0x37, 0x05, 0x14, 0xff, 0xeb, 0xa4, 0x3e, 0xad, 0x98, 0x66, 0x5e, 0x97, 0x50, 0x39, 0x53, 0xa4, - 0x97, 0x55, 0x56, 0xdf, 0x0d, 0x64, 0x95, 0x75, 0xd5, 0xfd, 0x23, 0x58, 0xe8, 0x65, 0xeb, 0xd6, - 0xe8, 0x56, 0x5c, 0x6a, 0xd6, 0x14, 0xe2, 0xcd, 0xd5, 0xfc, 0x4e, 0x36, 0x5f, 0x37, 0x5b, 0x13, - 0x16, 0xf3, 0xe9, 0xca, 0xd3, 0xe6, 0x6a, 0x7e, 0x27, 0x73, 0x54, 0xb9, 0x74, 0x21, 0x1c, 0x35, - 0x53, 0x1e, 0x31, 0x97, 0xb5, 0x74, 0xe2, 0xa3, 0xfb, 0x30, 0x1d, 0xd3, 0x10, 0xca, 0x30, 0x45, - 0x03, 0x17, 0x15, 0x1a, 0x0b, 0x4d, 0x22, 0x66, 0xa0, 0x2c, 0x07, 0x91, 0x43, 0x53, 0xba, 0x42, - 0x78, 0x22, 0xea, 0x56, 0x52, 0x49, 0x4b, 0x2c, 0x90, 0xb6, 0xb4, 0x26, 0x16, 0x48, 0x5f, 0x0b, - 0x8b, 0x76, 0x4f, 0xa6, 0x04, 0x25, 0x76, 0x8f, 0x5a, 0x22, 0x13, 0xbb, 0x47, 0x53, 0xb5, 0x8a, - 0xa2, 0xbc, 0x54, 0x67, 0x12, 0x51, 0x3e, 0x5d, 0xc9, 0x12, 0x51, 0x3e, 0x53, 0x92, 0x8a, 0x54, - 0x53, 0x2b, 0x29, 0x39, 0xee, 0xc6, 0x53, 0xf8, 0x1c, 0x77, 0x13, 0x59, 0xf5, 0x73, 0xa8, 0x6b, - 0x4b, 0x09, 0xe8, 0x7d, 0x3e, 0x2e, 0xaf, 0xec, 0x61, 0xae, 0x15, 0x33, 0x30, 0xb8, 0x6a, 0x2e, - 0x2f, 0xe0, 0x6a, 0x2b, 0x0e, 0x02, 0x6e, 0x4e, 0x11, 0xe0, 0x21, 0xcc, 0xca, 0x79, 0xb6, 0xd8, - 0x8a, 0x99, 0x3c, 0x5f, 0x6c, 0x45, 0x25, 0x29, 0xdf, 0x87, 0x5a, 0x26, 0xb3, 0x13, 0x4b, 0xa9, - 0x66, 0x9f, 0x62, 0x29, 0x75, 0xc9, 0xe0, 0x73, 0xa8, 0x6b, 0x33, 0x45, 0x61, 0xb9, 0xbc, 0x9c, - 0x56, 0x58, 0x2e, 0x3f, 0xd1, 0x7c, 0x00, 0x55, 0x41, 0x16, 0x7b, 0x5f, 0xce, 0xca, 0xc4, 0xde, - 0x4f, 0x27, 0x4f, 0xfb, 0x50, 0xcb, 0x4c, 0x2a, 0xb4, 0x53, 0x33, 0x3b, 0xa1, 0x9d, 0x2e, 0x0d, - 0xfb, 0x51, 0xf6, 0x96, 0x13, 0x67, 0x2a, 0x68, 0x2d, 0x73, 0x1c, 0x2b, 0x19, 0x97, 0x79, 0xe7, - 0x0a, 0x0e, 0x76, 0x74, 0xe7, 0xa4, 0x10, 0xf2, 0xd1, 0x9d, 0x93, 0xd7, 0xc8, 0x47, 0x77, 0x6e, - 0x16, 0xc2, 0x7c, 0x25, 0x73, 0x39, 0x97, 0x7d, 0x45, 0xcd, 0x18, 0x64, 0x5f, 0xd1, 0xdd, 0xea, - 0x4f, 0x00, 0xa9, 0x37, 0x3f, 0x31, 0xa5, 0xf6, 0xe2, 0x2d, 0xa6, 0xd4, 0x5f, 0x19, 0xb7, 0x6a, - 0xcf, 0xe7, 0xd6, 0xd9, 0xbf, 0xc8, 0x1f, 0xd3, 0xef, 0xcb, 0x49, 0x7a, 0xef, 0xbc, 0xff, 0xff, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x70, 0x4b, 0xcf, 0xa7, 0x2c, 0x00, 0x00, + 0x15, 0x57, 0xdb, 0x99, 0xd8, 0xf3, 0xec, 0xc9, 0xd8, 0xe5, 0x8c, 0x33, 0xee, 0x78, 0xbd, 0x4e, + 0x6d, 0x58, 0x22, 0x58, 0x6c, 0xe1, 0x48, 0x11, 0xb0, 0x88, 0x10, 0xff, 0x8b, 0x27, 0xf1, 0x1f, + 0xdc, 0x93, 0xe5, 0x10, 0x09, 0x85, 0xc9, 0x74, 0x79, 0x34, 0x78, 0xa6, 0xbb, 0xdd, 0xd5, 0x63, + 0x07, 0x2e, 0x2b, 0x2e, 0x48, 0x8b, 0x90, 0x00, 0x21, 0x71, 0x02, 0xc1, 0x9e, 0xe0, 0xc0, 0x81, + 0x03, 0x9c, 0x11, 0x77, 0xbe, 0x00, 0x57, 0xbe, 0x00, 0x9f, 0x00, 0x09, 0x75, 0x55, 0x75, 0x75, + 0x75, 0x77, 0x75, 0x7b, 0xd2, 0x4e, 0x36, 0x97, 0x96, 0xea, 0xd5, 0xab, 0xaa, 0xdf, 0x7b, 0xf5, + 0xde, 0xab, 0x7a, 0xaf, 0x1a, 0xe6, 0x7b, 0xbe, 0x3b, 0xf2, 0xd6, 0xd9, 0x77, 0xcd, 0xf3, 0xdd, + 0xc0, 0x45, 0x15, 0xd6, 0x30, 0xef, 0x1c, 0x79, 0xc4, 0x79, 0xd1, 0x3a, 0x58, 0xf7, 0x4e, 0x7b, + 0xeb, 0xac, 0x67, 0x9d, 0xda, 0xa7, 0x2f, 0x2e, 0xe8, 0xfa, 0x05, 0xe5, 0x9c, 0xe6, 0x97, 0xf3, + 0x59, 0xfc, 0x8e, 0xe7, 0x11, 0x5f, 0x30, 0xe2, 0xef, 0x00, 0x6c, 0xb9, 0xc3, 0xa1, 0xeb, 0x58, + 0x84, 0x7a, 0xa8, 0x09, 0x53, 0x3b, 0xbe, 0xbf, 0xe5, 0xda, 0xa4, 0x69, 0xac, 0x1a, 0xf7, 0x2a, + 0x56, 0xd4, 0x44, 0x8b, 0x70, 0x7d, 0xc7, 0xf7, 0x0f, 0x68, 0xaf, 0x39, 0xb1, 0x6a, 0xdc, 0xab, + 0x5a, 0xa2, 0x85, 0x9f, 0x00, 0x7a, 0x1c, 0x82, 0x7a, 0x64, 0xdb, 0x07, 0x64, 0xf8, 0x92, 0xf8, + 0x2d, 0xe7, 0xc4, 0x0d, 0xb9, 0x3f, 0xa1, 0xc4, 0x6f, 0x6d, 0xb3, 0x69, 0xaa, 0x96, 0x68, 0xa1, + 0x65, 0xa8, 0x5a, 0xee, 0x80, 0xec, 0x93, 0x73, 0x32, 0x60, 0x13, 0x55, 0xac, 0x98, 0x80, 0xff, + 0x6b, 0xc0, 0x8d, 0x2d, 0x9f, 0x74, 0x02, 0xc2, 0xa6, 0xb4, 0xc8, 0x19, 0x7a, 0x04, 0x37, 0x5a, + 0x4e, 0x3f, 0xe0, 0x53, 0xef, 0xf7, 0x69, 0xd0, 0x34, 0x56, 0x27, 0xef, 0xcd, 0x6c, 0x2c, 0xad, + 0x71, 0xbd, 0x64, 0xd7, 0xb6, 0x52, 0x03, 0xd0, 0xb7, 0xa0, 0xca, 0xb8, 0xc2, 0x4e, 0xb6, 0xe6, + 0xcc, 0xc6, 0xf2, 0x1a, 0x25, 0xfe, 0x39, 0xf1, 0x5f, 0x74, 0xbc, 0xfe, 0x0b, 0xaf, 0xe3, 0x77, + 0x86, 0x74, 0x4d, 0xf2, 0x58, 0x31, 0x3b, 0x5a, 0x85, 0x99, 0x23, 0x8f, 0xf8, 0x9d, 0xa0, 0xef, + 0x3a, 0xad, 0xed, 0xe6, 0x24, 0x13, 0x46, 0x25, 0x21, 0x13, 0xa6, 0x8f, 0x3c, 0x21, 0xeb, 0x35, + 0xd6, 0x2d, 0xdb, 0x6c, 0xf4, 0x85, 0x43, 0x7c, 0xd1, 0x5d, 0x11, 0xa3, 0x63, 0x12, 0xfe, 0x14, + 0xea, 0x09, 0x81, 0xcb, 0x6c, 0x41, 0x52, 0xc0, 0xc9, 0xd7, 0x12, 0x10, 0xfb, 0x30, 0xf7, 0x98, + 0x04, 0xac, 0x4d, 0x59, 0x1f, 0x39, 0x0b, 0x61, 0x73, 0x86, 0x6d, 0xa9, 0xf0, 0xaa, 0xa5, 0x92, + 0xd2, 0x6a, 0x99, 0x28, 0x56, 0xcb, 0x64, 0x52, 0x2d, 0xf8, 0x33, 0x03, 0xe6, 0x53, 0x8b, 0x96, + 0x92, 0x7b, 0x13, 0x6a, 0x52, 0x10, 0x86, 0x74, 0x92, 0x99, 0x46, 0xb1, 0xec, 0xc9, 0x21, 0xf8, + 0xf7, 0x06, 0xd4, 0xdb, 0x02, 0x4b, 0x24, 0xff, 0x3e, 0xd4, 0x7b, 0x51, 0x7b, 0xd7, 0xf5, 0xdb, + 0x24, 0x60, 0x88, 0x66, 0x36, 0x70, 0xd1, 0xcc, 0x9c, 0xd3, 0x4a, 0x0f, 0x4d, 0x68, 0x62, 0x42, + 0x63, 0x20, 0x85, 0xe6, 0x85, 0x77, 0x60, 0x2e, 0x09, 0x8f, 0x7a, 0xe8, 0xeb, 0xaa, 0xcb, 0x0a, + 0x68, 0xf3, 0xc2, 0x1f, 0xe2, 0x0e, 0x4b, 0x61, 0xc2, 0x3f, 0x01, 0x33, 0xd2, 0xf8, 0x23, 0xcf, + 0x1b, 0xf4, 0xbb, 0x6c, 0xfe, 0x50, 0x03, 0xa1, 0xc0, 0x2a, 0x44, 0xa3, 0x18, 0xa2, 0x66, 0xab, + 0x57, 0x00, 0x76, 0x7d, 0x77, 0x98, 0xd8, 0x6c, 0x85, 0x82, 0x7f, 0x67, 0xc0, 0xed, 0xdc, 0xc5, + 0x4b, 0x6d, 0xfc, 0x53, 0x98, 0x8b, 0x02, 0xc4, 0x88, 0xd0, 0x40, 0xd9, 0xfb, 0xf7, 0xf3, 0x76, + 0x48, 0xb0, 0x5a, 0x99, 0x81, 0x38, 0x80, 0xe5, 0xc7, 0x24, 0x08, 0xb1, 0x5a, 0xe4, 0x4c, 0xa3, + 0x9c, 0xbc, 0x50, 0x76, 0xb5, 0x7d, 0xfd, 0x83, 0x01, 0xef, 0x15, 0x2c, 0x5b, 0x6a, 0x97, 0xb5, + 0x7a, 0x99, 0x28, 0xab, 0x97, 0x7f, 0x18, 0xd0, 0x78, 0xe6, 0x77, 0x1c, 0x7a, 0x42, 0x7c, 0xd6, + 0xc9, 0xe2, 0x56, 0xa8, 0x91, 0x26, 0x4c, 0x89, 0x60, 0x20, 0x54, 0x12, 0x35, 0xd1, 0x87, 0x70, + 0xe3, 0x68, 0x60, 0xab, 0x31, 0x8f, 0x6b, 0x26, 0x45, 0x0d, 0xf9, 0x0e, 0xc9, 0x85, 0xca, 0xc7, + 0x55, 0x94, 0xa2, 0xa6, 0xf5, 0x78, 0xad, 0x38, 0xce, 0x54, 0x52, 0x71, 0xe6, 0x29, 0x2c, 0xea, + 0x04, 0x28, 0xe7, 0x41, 0xff, 0x32, 0x60, 0xf6, 0x89, 0xdb, 0x77, 0xe4, 0xc9, 0x94, 0xaf, 0x85, + 0x15, 0x00, 0x8b, 0x9c, 0x1d, 0x10, 0x4a, 0x3b, 0x3d, 0x22, 0x34, 0xa0, 0x50, 0x8a, 0x62, 0xe3, + 0x18, 0x12, 0xaf, 0x00, 0x84, 0x38, 0xda, 0xee, 0xc8, 0xef, 0x12, 0x26, 0x73, 0xc5, 0x52, 0x28, + 0xe8, 0x2e, 0xd4, 0x5a, 0xce, 0x79, 0x3f, 0x90, 0xaa, 0xbd, 0xce, 0xe6, 0x48, 0x12, 0xf1, 0x26, + 0xd4, 0x14, 0x69, 0xca, 0xa9, 0xe4, 0xdf, 0xa1, 0x63, 0xa7, 0xbc, 0x3a, 0xec, 0x70, 0x1d, 0x4a, + 0xc4, 0x39, 0xa2, 0xca, 0x62, 0x14, 0xef, 0x5e, 0xda, 0x87, 0x14, 0xfd, 0x4e, 0x66, 0xf4, 0xab, + 0x04, 0x9c, 0x6b, 0xe9, 0x80, 0x13, 0xf6, 0xef, 0x75, 0x1c, 0x7b, 0x40, 0xec, 0x30, 0x74, 0x70, + 0xab, 0x50, 0x28, 0x08, 0xc3, 0x2c, 0x6f, 0x59, 0x84, 0x8e, 0x06, 0x01, 0x53, 0x50, 0xc5, 0x4a, + 0xd0, 0xf0, 0x31, 0x2c, 0xe7, 0x8b, 0x56, 0x4e, 0x5d, 0x27, 0x30, 0x7b, 0x3c, 0xea, 0x07, 0x63, + 0x18, 0xd0, 0xd5, 0x8e, 0xd7, 0x4d, 0xa8, 0x29, 0xeb, 0x94, 0xc3, 0xfa, 0xb9, 0x01, 0x8d, 0x28, + 0x66, 0xc7, 0x57, 0xa9, 0x62, 0xd4, 0x57, 0x0a, 0x88, 0x61, 0x98, 0xdd, 0xed, 0x0f, 0x02, 0xe2, + 0xb3, 0x0d, 0xad, 0x58, 0xa2, 0x15, 0xae, 0x77, 0x48, 0x5e, 0x05, 0x6d, 0x72, 0x26, 0x6c, 0x3d, + 0x6a, 0xe2, 0xbf, 0x18, 0xb0, 0xa8, 0xc3, 0x58, 0xea, 0x48, 0xd9, 0x05, 0x18, 0xc6, 0x77, 0x4c, + 0x7e, 0x98, 0x7c, 0x98, 0x17, 0x34, 0xf9, 0x6a, 0xbb, 0xa3, 0xc1, 0x80, 0x9d, 0xc9, 0xca, 0xc8, + 0x70, 0x65, 0x47, 0xc0, 0xe5, 0x72, 0x44, 0x4d, 0xfc, 0xab, 0x0c, 0x5c, 0x79, 0xe1, 0x2a, 0x0c, + 0x25, 0x0a, 0xac, 0x09, 0x76, 0x13, 0x53, 0x97, 0xbb, 0x52, 0x28, 0xc1, 0xbf, 0x31, 0xe0, 0x96, + 0x16, 0xd2, 0xbb, 0x54, 0x21, 0xfe, 0xab, 0x01, 0xe8, 0x69, 0xbf, 0x7b, 0xaa, 0xf0, 0x15, 0x2b, + 0xe9, 0x2b, 0x30, 0x17, 0xf2, 0x13, 0x9b, 0x0b, 0xae, 0xa8, 0x2a, 0x43, 0x0f, 0xc1, 0x5b, 0xa4, + 0x43, 0x5d, 0x47, 0xa8, 0x4b, 0xb4, 0xd2, 0xca, 0xaa, 0x14, 0xbb, 0xdc, 0xf5, 0x94, 0xcb, 0x7d, + 0x0c, 0xd5, 0x96, 0xbd, 0xc1, 0x43, 0x47, 0xee, 0x85, 0x81, 0x2d, 0xcd, 0x02, 0x0e, 0x4f, 0x7c, + 0x44, 0x0b, 0x7f, 0x0a, 0x0b, 0x19, 0x71, 0x4b, 0x6d, 0xc0, 0x03, 0xa8, 0x49, 0x14, 0xca, 0x1e, + 0xcc, 0x09, 0x57, 0x97, 0x7d, 0x56, 0x92, 0x0d, 0x8f, 0x98, 0xaf, 0x87, 0xc7, 0x01, 0xb1, 0x19, + 0x8a, 0xc8, 0xd7, 0x93, 0x81, 0xd6, 0xc8, 0x04, 0xda, 0x55, 0x98, 0x71, 0xb3, 0x71, 0xca, 0x1d, + 0x33, 0x4e, 0xfd, 0x8c, 0x3b, 0x44, 0x66, 0xdd, 0x2b, 0xe5, 0x40, 0x63, 0xe7, 0x01, 0x31, 0x3b, + 0xfe, 0x9b, 0x01, 0x37, 0xf9, 0xe9, 0x18, 0x22, 0x7b, 0xe6, 0xca, 0x08, 0x7d, 0x79, 0x1c, 0xce, + 0x3f, 0xa4, 0x62, 0x43, 0xbb, 0x96, 0x30, 0xb4, 0x8f, 0x60, 0x9e, 0xaf, 0xa5, 0x5a, 0x6b, 0x85, + 0x59, 0x6b, 0xb6, 0xa3, 0xd0, 0xe8, 0x7e, 0x6a, 0x40, 0x43, 0x03, 0xfb, 0x0b, 0x35, 0x1d, 0x07, + 0x6e, 0xca, 0xab, 0xfd, 0x60, 0x30, 0x8e, 0xb3, 0x5e, 0xed, 0xda, 0xfc, 0x6b, 0xe5, 0x5c, 0x52, + 0x16, 0x7c, 0xa7, 0xf1, 0xea, 0xb7, 0x06, 0x4c, 0x6f, 0x1d, 0xb4, 0x19, 0x5b, 0x32, 0x17, 0x37, + 0x5e, 0xaf, 0xd8, 0x70, 0x0f, 0xea, 0x7c, 0xad, 0x0e, 0x0d, 0x88, 0x7f, 0xd8, 0x19, 0x46, 0x97, + 0xc7, 0x34, 0x39, 0xbc, 0xe3, 0x29, 0xa4, 0x96, 0x2d, 0x54, 0x95, 0x24, 0x86, 0xe1, 0x7d, 0x26, + 0x52, 0x56, 0xb8, 0x29, 0xcb, 0x02, 0x1b, 0x9b, 0x99, 0x6f, 0x4b, 0x4c, 0x40, 0xdb, 0x00, 0xdf, + 0xeb, 0xf4, 0xfa, 0x0e, 0x53, 0xb5, 0xa8, 0x93, 0xdc, 0xd5, 0x40, 0x17, 0x39, 0x42, 0xcc, 0x6b, + 0x29, 0xe3, 0xc6, 0xd8, 0xc2, 0xcf, 0x0d, 0x98, 0x8d, 0x51, 0x51, 0x0f, 0x7d, 0x0d, 0xaa, 0x91, + 0xfa, 0xa8, 0xa8, 0xee, 0xd4, 0xa3, 0xdb, 0x89, 0xa0, 0x5b, 0x31, 0xc7, 0x1b, 0xc2, 0x29, 0x75, + 0x31, 0x1a, 0x52, 0x86, 0xb2, 0x62, 0xc5, 0x04, 0x7c, 0x1e, 0x43, 0xa4, 0xa1, 0xe6, 0x92, 0x6b, + 0x1a, 0x6f, 0x46, 0x37, 0xd9, 0x70, 0x82, 0xff, 0x68, 0x40, 0x4d, 0x59, 0xf8, 0x5d, 0x29, 0xc7, + 0x84, 0xe9, 0x48, 0x17, 0x42, 0x37, 0xb2, 0x8d, 0x8f, 0xe2, 0xda, 0x8d, 0xc6, 0xdd, 0xed, 0xa4, + 0xbb, 0xdb, 0x63, 0xc8, 0x7c, 0x0a, 0x0d, 0xde, 0xe4, 0x35, 0xb0, 0x76, 0xd0, 0x09, 0x46, 0xb4, + 0x78, 0xd2, 0x45, 0xb8, 0xce, 0xd9, 0xa2, 0x93, 0x94, 0xb7, 0xc6, 0x30, 0xbe, 0x26, 0x2c, 0xea, + 0x16, 0xa3, 0x5e, 0x78, 0x1a, 0x21, 0xd1, 0xc5, 0x92, 0x72, 0x77, 0x40, 0x2e, 0x05, 0xc1, 0xc2, + 0x96, 0x1d, 0x85, 0x15, 0xde, 0x4a, 0x96, 0x38, 0x27, 0x53, 0x25, 0xce, 0x31, 0x2e, 0x65, 0x0d, + 0x58, 0xc8, 0xe0, 0xa0, 0x1e, 0xde, 0x87, 0x1b, 0xdb, 0x64, 0x40, 0x94, 0xd2, 0xe8, 0x55, 0x94, + 0x3e, 0x0f, 0xf5, 0xc4, 0x6c, 0xd4, 0xc3, 0x07, 0x50, 0x8f, 0x36, 0x76, 0xf3, 0xc7, 0x2d, 0xfb, + 0xaa, 0x2b, 0x3c, 0x8c, 0x0b, 0x8b, 0x7c, 0x3a, 0xea, 0xa1, 0xaf, 0xc6, 0x81, 0x52, 0x38, 0x51, + 0xc6, 0x96, 0x25, 0x03, 0xfe, 0x7b, 0x26, 0x05, 0xa1, 0x5b, 0x07, 0xed, 0x62, 0x58, 0x26, 0x4c, + 0x87, 0x4a, 0x53, 0x42, 0xa7, 0x6c, 0xa7, 0x5c, 0x63, 0xf2, 0xcd, 0xf8, 0xb0, 0x66, 0xff, 0xfe, + 0x99, 0xbd, 0xe7, 0x33, 0xdc, 0xd4, 0x43, 0xdf, 0x85, 0x29, 0x7e, 0x6e, 0x44, 0xae, 0x3c, 0xee, + 0x71, 0x13, 0x0d, 0x43, 0x3b, 0x1a, 0xff, 0xfe, 0x92, 0x56, 0x08, 0x9e, 0xab, 0xe6, 0x48, 0xb1, + 0x02, 0xc0, 0x57, 0x50, 0xc2, 0x9f, 0x42, 0xc1, 0xbf, 0x30, 0xa0, 0x69, 0x91, 0xa1, 0x7b, 0x4e, + 0x5e, 0x4b, 0xfd, 0x4d, 0x98, 0xe2, 0x4e, 0x40, 0xc5, 0xfd, 0x3b, 0x6a, 0xbe, 0x56, 0x1d, 0xdd, + 0x4e, 0xd5, 0xd1, 0x6d, 0x7c, 0x00, 0x4b, 0x39, 0x68, 0xf8, 0xc1, 0x4f, 0x47, 0xdd, 0x2e, 0xa1, + 0x54, 0x54, 0xaa, 0xa3, 0x66, 0xe8, 0xa1, 0x27, 0x9d, 0xfe, 0x80, 0xd8, 0x02, 0x8d, 0x68, 0xe1, + 0xcf, 0x0c, 0x68, 0x3c, 0xb2, 0xed, 0xb7, 0x21, 0x9a, 0x9d, 0x15, 0xcd, 0x2e, 0x14, 0xed, 0x09, + 0x2c, 0xea, 0xa0, 0x94, 0x92, 0xab, 0x0f, 0xf5, 0xed, 0x3e, 0x1d, 0xf6, 0x29, 0x95, 0x31, 0xc2, + 0x84, 0x69, 0x37, 0x55, 0xd9, 0x75, 0xbd, 0xb1, 0x6f, 0xef, 0x4d, 0x98, 0xea, 0x25, 0x6f, 0xb7, + 0xa2, 0x89, 0x77, 0x60, 0x2e, 0xb9, 0x14, 0x2f, 0x33, 0x74, 0xc7, 0x29, 0x33, 0xc4, 0x4c, 0xf8, + 0xcf, 0x06, 0xa0, 0x83, 0x51, 0x40, 0x52, 0xc7, 0xc9, 0x5b, 0x42, 0x1d, 0x2a, 0x6e, 0xa4, 0x16, + 0x8d, 0x44, 0x0b, 0x61, 0x98, 0x1d, 0x8e, 0x02, 0x62, 0xb7, 0x49, 0xd7, 0x75, 0x6c, 0xca, 0xb2, + 0xbf, 0x9a, 0x95, 0xa0, 0xe1, 0x3d, 0x58, 0xc8, 0x20, 0x2d, 0x27, 0xf4, 0xcf, 0x0d, 0x68, 0x6e, + 0x75, 0x9c, 0x2e, 0x19, 0xbc, 0x7b, 0xd1, 0xf1, 0x21, 0x2c, 0xe5, 0x60, 0x29, 0x27, 0xdc, 0x09, + 0xcc, 0xca, 0x99, 0xde, 0xa6, 0x01, 0x6e, 0x42, 0x4d, 0x59, 0xa7, 0x1c, 0xd6, 0x01, 0xa0, 0x94, + 0xec, 0x6f, 0x13, 0xf1, 0x1e, 0x2c, 0x64, 0x56, 0x2b, 0x87, 0xfb, 0x4f, 0x06, 0x2c, 0xb5, 0x13, + 0x27, 0xcc, 0x61, 0xbf, 0x7b, 0xea, 0x74, 0x86, 0xd1, 0x8d, 0xa5, 0x97, 0x4c, 0xbd, 0x7a, 0x71, + 0xea, 0xe5, 0x08, 0xc6, 0xe8, 0x74, 0x8c, 0xda, 0x09, 0xa9, 0x27, 0x8b, 0xa5, 0xbe, 0x96, 0x95, + 0x3a, 0xb6, 0xae, 0x4a, 0xc2, 0xba, 0x8e, 0xc0, 0xcc, 0x03, 0x5a, 0xae, 0x2e, 0xe9, 0xb3, 0x77, + 0x2c, 0x5e, 0x32, 0x68, 0x8f, 0x3c, 0x51, 0xd8, 0x8f, 0xea, 0x15, 0x29, 0xa0, 0x46, 0x11, 0xd0, + 0x89, 0x44, 0x04, 0x28, 0x10, 0x3f, 0x3c, 0x0c, 0x6f, 0xe7, 0x2e, 0x5a, 0x6a, 0x07, 0xaf, 0x54, + 0xad, 0xb8, 0x60, 0xd7, 0xa2, 0x18, 0xc7, 0x17, 0xf6, 0x6c, 0xfb, 0x4b, 0x7e, 0xb1, 0xc9, 0xac, + 0x5c, 0x4e, 0x05, 0x6f, 0xe2, 0xf1, 0xf6, 0x3f, 0x13, 0xd0, 0x48, 0xda, 0x97, 0x52, 0x51, 0xcd, + 0x71, 0x82, 0x12, 0x16, 0x30, 0x86, 0x03, 0x7c, 0x43, 0x71, 0xad, 0x8a, 0xc8, 0xfa, 0x7b, 0xae, + 0xdb, 0x1b, 0x10, 0xfe, 0x9b, 0xc5, 0xcb, 0xd1, 0xc9, 0x5a, 0x3b, 0xf0, 0xfb, 0x4e, 0xef, 0xfb, + 0x9d, 0xc1, 0x88, 0x28, 0x8e, 0xf7, 0x00, 0xa6, 0x4e, 0x3a, 0x5d, 0xf2, 0x89, 0xb5, 0xcf, 0x0a, + 0x3c, 0x97, 0x0d, 0x8c, 0x98, 0xd1, 0x37, 0xa1, 0xea, 0xcb, 0x34, 0x63, 0x8a, 0x8d, 0xbc, 0x9d, + 0x19, 0xd9, 0x72, 0x82, 0xfb, 0x1b, 0x7c, 0x60, 0xcc, 0x8d, 0x3e, 0x82, 0x09, 0xf2, 0xaa, 0x39, + 0x3d, 0xc6, 0x6a, 0x13, 0xe4, 0x15, 0x7e, 0x0a, 0x8b, 0x3a, 0x1d, 0x97, 0xf2, 0xdf, 0x8d, 0xff, + 0x2d, 0x00, 0xff, 0x87, 0x05, 0x7d, 0x1b, 0x66, 0xba, 0xf1, 0x9f, 0x0f, 0xa8, 0x11, 0x8d, 0x4b, + 0xfc, 0xfe, 0x61, 0x2e, 0xea, 0xc8, 0xd4, 0x43, 0x0f, 0xa0, 0xfa, 0xa3, 0xe8, 0xf9, 0x0a, 0x2d, + 0x08, 0x26, 0xf5, 0x79, 0xce, 0xbc, 0x99, 0x25, 0xf2, 0x71, 0x67, 0xd1, 0xdb, 0x88, 0x1c, 0xa7, + 0xbe, 0xca, 0xc8, 0x71, 0xc9, 0x27, 0x94, 0x4d, 0xa8, 0xf5, 0xd4, 0x3f, 0x16, 0xd0, 0xad, 0xe8, + 0xff, 0x93, 0xd4, 0xcf, 0x13, 0x66, 0x53, 0xdf, 0x41, 0x3d, 0xf4, 0x10, 0x66, 0xa9, 0xf2, 0x94, + 0x8f, 0x22, 0xd9, 0x52, 0xbf, 0x1f, 0x98, 0xb7, 0xb4, 0x74, 0xea, 0xa1, 0x1f, 0xc2, 0xad, 0x9e, + 0xfe, 0x1d, 0x1d, 0xdd, 0x49, 0xad, 0x9a, 0x7d, 0xc7, 0x36, 0xf1, 0x65, 0x2c, 0xd4, 0x43, 0x27, + 0xb0, 0xd4, 0xcb, 0x7b, 0x94, 0x46, 0x1f, 0xc4, 0x13, 0xe4, 0xbe, 0x96, 0x9b, 0x77, 0x2f, 0x67, + 0xa2, 0x1e, 0x3a, 0x06, 0x14, 0x64, 0x5e, 0x66, 0xd1, 0xb2, 0x18, 0xab, 0x7d, 0x75, 0x36, 0xdf, + 0x2b, 0xe8, 0xa5, 0x1e, 0xea, 0x42, 0xb3, 0x97, 0xf3, 0x60, 0x87, 0x70, 0xe2, 0x67, 0x21, 0xed, + 0x63, 0xa5, 0xf9, 0xc1, 0xa5, 0x3c, 0x1c, 0x77, 0x2f, 0xf3, 0xe2, 0x24, 0x71, 0x6b, 0x1f, 0xcc, + 0x24, 0xee, 0x9c, 0xa7, 0xaa, 0x67, 0xb0, 0xd0, 0xcb, 0x3e, 0xc1, 0x20, 0xfd, 0x28, 0x69, 0x65, + 0x2b, 0x45, 0xdd, 0xd4, 0x43, 0x7b, 0x50, 0x3f, 0x4d, 0xbe, 0x29, 0xa0, 0xe8, 0x8f, 0xa9, 0xec, + 0xd3, 0x8a, 0x69, 0xe6, 0x75, 0x49, 0x91, 0x53, 0x45, 0x7a, 0x55, 0xe4, 0xec, 0xbb, 0x81, 0x2a, + 0xb2, 0xae, 0xba, 0x7f, 0x08, 0xf3, 0xfd, 0x74, 0xdd, 0x1a, 0xdd, 0x8e, 0x4a, 0xcd, 0x9a, 0x42, + 0xbc, 0xb9, 0x9c, 0xdf, 0xc9, 0xe7, 0xeb, 0xa5, 0x6b, 0xc2, 0x72, 0x3e, 0x5d, 0x79, 0xda, 0x5c, + 0xce, 0xef, 0xe4, 0x8e, 0xaa, 0x96, 0x2e, 0xa4, 0xa3, 0xa6, 0xca, 0x23, 0xe6, 0x2d, 0x2d, 0x9d, + 0x7a, 0xe8, 0x3e, 0x4c, 0x47, 0x34, 0x84, 0x52, 0x4c, 0xe1, 0xc0, 0x85, 0x0c, 0x8d, 0x87, 0x26, + 0x19, 0x33, 0x50, 0x9a, 0x83, 0xaa, 0xa1, 0x29, 0x59, 0x21, 0x3c, 0x96, 0x75, 0x2b, 0xa5, 0xa4, + 0x25, 0x37, 0x48, 0x5b, 0x5a, 0x93, 0x1b, 0xa4, 0xaf, 0x85, 0x85, 0xd6, 0x93, 0x2a, 0x41, 0x49, + 0xeb, 0xc9, 0x96, 0xc8, 0xa4, 0xf5, 0x68, 0xaa, 0x56, 0x61, 0x94, 0x57, 0xea, 0x4c, 0x32, 0xca, + 0x27, 0x2b, 0x59, 0x32, 0xca, 0xa7, 0x4a, 0x52, 0xa1, 0x68, 0xd9, 0x4a, 0x4a, 0x8e, 0xbb, 0x89, + 0x14, 0x3e, 0xc7, 0xdd, 0x64, 0x56, 0xfd, 0x1c, 0x1a, 0xda, 0x52, 0x02, 0x7a, 0x5f, 0x8c, 0xcb, + 0x2b, 0x7b, 0x98, 0xab, 0xc5, 0x0c, 0x1c, 0x6e, 0x36, 0x97, 0x97, 0x70, 0xb5, 0x15, 0x07, 0x09, + 0x37, 0xa7, 0x08, 0xf0, 0x10, 0x66, 0xd5, 0x3c, 0x5b, 0x9a, 0x62, 0x2a, 0xcf, 0x97, 0xa6, 0x98, + 0x49, 0xca, 0xf7, 0xa0, 0x9e, 0xca, 0xec, 0xe4, 0x56, 0x66, 0xb3, 0x4f, 0xb9, 0x95, 0xba, 0x64, + 0xf0, 0x39, 0x34, 0xb4, 0x99, 0xa2, 0xd4, 0x5c, 0x5e, 0x4e, 0x2b, 0x35, 0x97, 0x9f, 0x68, 0x3e, + 0x80, 0xaa, 0x24, 0x4b, 0xdb, 0x57, 0xb3, 0x32, 0x69, 0xfb, 0xc9, 0xe4, 0x69, 0x0f, 0xea, 0xa9, + 0x49, 0xa5, 0x74, 0xd9, 0xcc, 0x4e, 0x4a, 0xa7, 0x4b, 0xc3, 0x7e, 0x90, 0xbe, 0xe5, 0x44, 0x99, + 0x0a, 0x5a, 0x4d, 0x1d, 0xc7, 0x99, 0x8c, 0xcb, 0xbc, 0x73, 0x09, 0x07, 0x3f, 0xba, 0x73, 0x52, + 0x08, 0xf5, 0xe8, 0xce, 0xc9, 0x6b, 0xd4, 0xa3, 0x3b, 0x37, 0x0b, 0xe1, 0xbe, 0x92, 0xba, 0x9c, + 0xab, 0xbe, 0x92, 0xcd, 0x18, 0x54, 0x5f, 0xd1, 0xdd, 0xea, 0x8f, 0x01, 0x65, 0x6f, 0x7e, 0x72, + 0x4a, 0xed, 0xc5, 0x5b, 0x4e, 0xa9, 0xbf, 0x32, 0x6e, 0xd6, 0x9f, 0xd7, 0xd6, 0xf8, 0x1f, 0xcd, + 0x1f, 0xb3, 0xef, 0xcb, 0xeb, 0xec, 0xde, 0x79, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, + 0x3c, 0xf8, 0x82, 0xed, 0x2c, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index db9d23273..3d9e9de28 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -91,6 +91,9 @@ message JoinGroupReq{ string ReqMessage = 2; string OpUserID = 3; string OperationID = 4; + int32 JoinSource = 5; + string InviterUserID = 6; + } message JoinGroupResp{ CommonResp CommonResp = 1; diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 2ae3dc2a5..2118f34b4 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -20,29 +20,33 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type GroupInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` - NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` + NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` + NotificationUpdateTime uint32 `protobuf:"varint,16,opt,name=notificationUpdateTime" json:"notificationUpdateTime,omitempty"` + NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID" json:"notificationUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{0} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -153,6 +157,34 @@ func (m *GroupInfo) GetNeedVerification() int32 { return 0 } +func (m *GroupInfo) GetLookMemberInfo() int32 { + if m != nil { + return m.LookMemberInfo + } + return 0 +} + +func (m *GroupInfo) GetApplyMemberFriend() int32 { + if m != nil { + return m.ApplyMemberFriend + } + return 0 +} + +func (m *GroupInfo) GetNotificationUpdateTime() uint32 { + if m != nil { + return m.NotificationUpdateTime + } + return 0 +} + +func (m *GroupInfo) GetNotificationUserID() string { + if m != nil { + return m.NotificationUserID + } + return "" +} + type GroupInfoForSet struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` @@ -161,6 +193,8 @@ type GroupInfoForSet struct { FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification" json:"needVerification,omitempty"` + LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo" json:"lookMemberInfo,omitempty"` + ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend" json:"applyMemberFriend,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -170,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{1} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -239,6 +273,20 @@ func (m *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value { return nil } +func (m *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value { + if m != nil { + return m.LookMemberInfo + } + return nil +} + +func (m *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value { + if m != nil { + return m.ApplyMemberFriend + } + return nil +} + type GroupMemberFullInfo struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` @@ -251,6 +299,7 @@ type GroupMemberFullInfo struct { OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"` + InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID" json:"inviterUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -260,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{2} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -357,6 +406,13 @@ func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { return 0 } +func (m *GroupMemberFullInfo) GetInviterUserID() string { + if m != nil { + return m.InviterUserID + } + return "" +} + type PublicUserInfo struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` @@ -372,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{3} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -448,7 +504,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{4} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -562,7 +618,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{5} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -647,7 +703,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{6} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -728,7 +784,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{7} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -836,7 +892,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{8} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -981,7 +1037,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{9} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1092,7 +1148,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{10} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1206,7 +1262,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{11} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1287,7 +1343,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{12} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1333,7 +1389,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{13} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1382,7 +1438,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{14} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1441,7 +1497,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{15} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1479,7 +1535,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{16} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1520,7 +1576,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{17} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1581,7 +1637,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{18} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1634,7 +1690,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{19} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1683,7 +1739,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{20} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1751,7 +1807,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{21} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1822,7 +1878,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{22} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1997,7 +2053,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{23} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2065,7 +2121,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{24} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2122,7 +2178,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{25} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2191,7 +2247,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{26} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2246,7 +2302,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{27} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2302,7 +2358,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{28} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2357,7 +2413,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{29} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2412,7 +2468,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{30} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2468,7 +2524,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{31} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2531,7 +2587,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{32} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2594,7 +2650,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{33} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2656,7 +2712,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{34} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2710,7 +2766,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{35} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2766,7 +2822,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{36} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2835,7 +2891,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{37} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2896,7 +2952,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{38} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -2950,7 +3006,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{39} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3005,7 +3061,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{40} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3065,7 +3121,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{41} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3112,7 +3168,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{42} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3165,7 +3221,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{43} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3211,7 +3267,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{44} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3251,7 +3307,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{45} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3298,7 +3354,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{46} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3346,7 +3402,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{47} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3399,7 +3455,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{48} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3437,7 +3493,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{49} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3475,7 +3531,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{50} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3513,7 +3569,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{51} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3552,7 +3608,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{52} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3591,7 +3647,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{53} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3631,7 +3687,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{54} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3686,7 +3742,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{55} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3740,7 +3796,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{56} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3786,7 +3842,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{57} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3839,7 +3895,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{58} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4106,7 +4162,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{59} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4375,7 +4431,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{60} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4478,7 +4534,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{61} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4533,7 +4589,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{62} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4594,7 +4650,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{63} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4649,7 +4705,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{64} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4710,7 +4766,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{65} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4765,7 +4821,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{66} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4823,7 +4879,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{67} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -4858,7 +4914,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{68} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -4926,7 +4982,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{69} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -4980,7 +5036,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{70} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5031,7 +5087,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{71} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5066,7 +5122,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{72} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5131,7 +5187,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{73} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5165,7 +5221,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{74} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{74} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5225,7 +5281,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a65b1a9a9ba03d6e, []int{75} + return fileDescriptor_ws_7a6f9f3abd69f213, []int{75} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5342,220 +5398,225 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a65b1a9a9ba03d6e) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_7a6f9f3abd69f213) } -var fileDescriptor_ws_a65b1a9a9ba03d6e = []byte{ - // 3387 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x6f, 0x24, 0x47, - 0xf5, 0xff, 0x76, 0x8f, 0x67, 0xec, 0x79, 0xe3, 0xb1, 0xc7, 0xbd, 0x1b, 0x67, 0xbe, 0x66, 0xb3, - 0x98, 0xce, 0x2a, 0x09, 0x0b, 0x78, 0xa3, 0x0d, 0x91, 0x20, 0x3f, 0x16, 0xf9, 0x47, 0xbc, 0xbb, - 0xc9, 0x8e, 0xed, 0xf4, 0xec, 0x26, 0x88, 0x20, 0x2d, 0xed, 0xe9, 0xf2, 0xb8, 0xe3, 0x9e, 0xae, - 0x76, 0xff, 0xf0, 0xee, 0x72, 0x41, 0x0a, 0x08, 0x71, 0xe3, 0xc4, 0x85, 0x0b, 0x82, 0x0b, 0x02, - 0x45, 0x11, 0x42, 0x20, 0x71, 0x40, 0x08, 0x21, 0x6e, 0x5c, 0x40, 0xe2, 0x82, 0xb8, 0x71, 0xe6, - 0x1f, 0x40, 0x42, 0x02, 0xd5, 0xab, 0xea, 0xee, 0xaa, 0xee, 0x1e, 0x7b, 0xd6, 0xb2, 0xb2, 0x1b, - 0x2d, 0xb7, 0x79, 0xaf, 0xeb, 0xbd, 0x7a, 0xf5, 0xde, 0xa7, 0xea, 0xbd, 0xfa, 0x31, 0x30, 0x1f, - 0x39, 0x07, 0x77, 0xef, 0x45, 0x57, 0xee, 0x45, 0x2b, 0x41, 0x48, 0x63, 0x6a, 0x2c, 0x44, 0x24, - 0x3c, 0x22, 0xe1, 0x5d, 0x3b, 0x70, 0xef, 0x06, 0x76, 0x68, 0x8f, 0xa2, 0xa5, 0xe7, 0xb7, 0x03, - 0xe2, 0xdf, 0xbd, 0xd9, 0xbb, 0x12, 0x1c, 0x0c, 0xaf, 0x60, 0xab, 0x2b, 0xa9, 0x54, 0x68, 0x07, - 0x01, 0x09, 0x85, 0xac, 0xf9, 0xe3, 0x1a, 0x34, 0xaf, 0x87, 0x34, 0x09, 0x6e, 0xfa, 0x7b, 0xd4, - 0xe8, 0xc2, 0xf4, 0x10, 0x89, 0x8d, 0xae, 0xb6, 0xac, 0xbd, 0xd0, 0xb4, 0x52, 0xd2, 0xb8, 0x00, - 0x4d, 0xfc, 0xb9, 0x65, 0x8f, 0x48, 0x57, 0xc7, 0x6f, 0x39, 0xc3, 0x30, 0x61, 0xd6, 0xa7, 0xb1, - 0xbb, 0xe7, 0x0e, 0xec, 0xd8, 0xa5, 0x7e, 0xb7, 0x86, 0x0d, 0x14, 0x1e, 0x6b, 0xe3, 0xfa, 0x71, - 0x48, 0x9d, 0x64, 0x80, 0x6d, 0xa6, 0x78, 0x1b, 0x99, 0xc7, 0xfa, 0xdf, 0xb3, 0x07, 0xe4, 0x8e, - 0x75, 0xab, 0x5b, 0xe7, 0xfd, 0x0b, 0xd2, 0x58, 0x86, 0x16, 0xbd, 0xe7, 0x93, 0xf0, 0x4e, 0x44, - 0xc2, 0x9b, 0x1b, 0xdd, 0x06, 0x7e, 0x95, 0x59, 0xc6, 0x45, 0x80, 0x41, 0x48, 0xec, 0x98, 0xdc, - 0x76, 0x47, 0xa4, 0x3b, 0xbd, 0xac, 0xbd, 0xd0, 0xb6, 0x24, 0x0e, 0xd3, 0x30, 0x22, 0xa3, 0x5d, - 0x12, 0xae, 0xd3, 0xc4, 0x8f, 0xbb, 0x33, 0xd8, 0x40, 0x66, 0x19, 0x73, 0xa0, 0x93, 0xfb, 0xdd, - 0x26, 0xaa, 0xd6, 0xc9, 0x7d, 0x63, 0x11, 0x1a, 0x51, 0x6c, 0xc7, 0x49, 0xd4, 0x85, 0x65, 0xed, - 0x85, 0xba, 0x25, 0x28, 0xe3, 0x12, 0xb4, 0x51, 0x2f, 0x4d, 0xad, 0x69, 0xa1, 0x88, 0xca, 0xcc, - 0x3c, 0x76, 0xfb, 0x41, 0x40, 0xba, 0xb3, 0xa8, 0x20, 0x67, 0x18, 0x97, 0xa1, 0xe3, 0x13, 0xe2, - 0xbc, 0x43, 0xc2, 0xdc, 0x6b, 0x6d, 0x6c, 0x54, 0xe2, 0x9b, 0xdf, 0xd1, 0x61, 0x3e, 0x8b, 0xd1, - 0x26, 0x0d, 0xfb, 0x24, 0x7e, 0x8c, 0x23, 0xc5, 0xbd, 0xd8, 0xc8, 0xbc, 0x78, 0xbd, 0x62, 0xa4, - 0x2c, 0x3a, 0xad, 0xab, 0x9f, 0x5a, 0x19, 0x52, 0x3a, 0xf4, 0x08, 0x87, 0xe2, 0x6e, 0xb2, 0xb7, - 0x72, 0xd3, 0x8f, 0x5f, 0xba, 0xfa, 0x8e, 0xed, 0x25, 0xa4, 0xc2, 0x0d, 0x7f, 0xd3, 0xe1, 0x1c, - 0xba, 0xa1, 0x87, 0x31, 0xdb, 0x4c, 0x3c, 0xef, 0x04, 0xd0, 0x2e, 0x42, 0x23, 0xe1, 0x11, 0xe2, - 0x7e, 0x10, 0x14, 0x73, 0x51, 0x48, 0x3d, 0x72, 0x8b, 0x1c, 0x11, 0x0f, 0x3d, 0x50, 0xb7, 0x72, - 0x86, 0xb1, 0x04, 0x33, 0xef, 0x53, 0xd7, 0x47, 0x18, 0x4d, 0xe1, 0xc7, 0x8c, 0x66, 0xdf, 0x7c, - 0x77, 0x70, 0xe0, 0x33, 0xdf, 0xf2, 0x71, 0x67, 0xb4, 0xec, 0x92, 0x86, 0xea, 0x92, 0xe7, 0x60, - 0xce, 0x0e, 0x82, 0x9e, 0xed, 0x0f, 0x49, 0xc8, 0x3b, 0x9d, 0x46, 0xbd, 0x05, 0x2e, 0x83, 0x30, - 0xeb, 0xa9, 0x4f, 0x93, 0x70, 0x40, 0x10, 0xa1, 0x75, 0x4b, 0xe2, 0x30, 0x3d, 0x34, 0x20, 0xa1, - 0x84, 0x3c, 0x0e, 0xd6, 0x02, 0x57, 0x84, 0x00, 0xb2, 0x10, 0x30, 0xe8, 0x27, 0x31, 0x79, 0xc3, - 0x77, 0x70, 0x50, 0x2d, 0x01, 0xfd, 0x9c, 0x65, 0x7e, 0x57, 0x83, 0xb9, 0x9d, 0x64, 0xd7, 0x73, - 0x07, 0xa8, 0x82, 0xb9, 0x35, 0x77, 0x9e, 0xa6, 0x38, 0x4f, 0x76, 0x81, 0x3e, 0xde, 0x05, 0x35, - 0xd5, 0x05, 0x8b, 0xd0, 0x18, 0x12, 0xdf, 0x21, 0xa1, 0x70, 0xa9, 0xa0, 0x84, 0xa9, 0xf5, 0xd4, - 0x54, 0xf3, 0x0f, 0x3a, 0xcc, 0x7c, 0xcc, 0x26, 0x2c, 0x43, 0x2b, 0xd8, 0xa7, 0x3e, 0xd9, 0x4a, - 0x18, 0xac, 0x84, 0x2d, 0x32, 0xcb, 0x38, 0x0f, 0xf5, 0x5d, 0x37, 0x8c, 0xf7, 0x31, 0xae, 0x6d, - 0x8b, 0x13, 0x8c, 0x4b, 0x46, 0xb6, 0xcb, 0x83, 0xd9, 0xb4, 0x38, 0x21, 0x06, 0x34, 0x93, 0xf9, - 0x5e, 0x5d, 0x96, 0x9a, 0xa5, 0x65, 0xa9, 0x8c, 0x0d, 0xa8, 0xc4, 0xc6, 0x65, 0xe8, 0x0c, 0x3d, - 0xba, 0x6b, 0x7b, 0x16, 0x19, 0x1c, 0xf5, 0xa2, 0xe1, 0x76, 0x10, 0x63, 0x20, 0xeb, 0x56, 0x89, - 0x6f, 0xfe, 0x4b, 0x03, 0xd8, 0x0c, 0x5d, 0xe2, 0x3b, 0xe8, 0xc6, 0xc2, 0xda, 0xa9, 0x95, 0xd7, - 0xce, 0x45, 0x68, 0x84, 0x64, 0x64, 0x87, 0x07, 0xe9, 0x44, 0xe1, 0x54, 0xc1, 0xf8, 0x5a, 0xc9, - 0xf8, 0x57, 0x01, 0xf6, 0xb0, 0x1f, 0xa6, 0x07, 0xdd, 0xca, 0x66, 0x75, 0x29, 0x1d, 0xad, 0xa4, - 0x11, 0xb5, 0xa4, 0xe6, 0x6c, 0x16, 0xda, 0x8e, 0x23, 0xc0, 0x5e, 0xe7, 0xb3, 0x30, 0x63, 0x54, - 0x60, 0xbd, 0x71, 0x0c, 0xd6, 0xa7, 0x33, 0x00, 0xfd, 0x53, 0x83, 0xe6, 0x9a, 0x67, 0x0f, 0x0e, - 0x26, 0x1c, 0xba, 0x3a, 0x44, 0xbd, 0x34, 0xc4, 0xeb, 0xd0, 0xde, 0x65, 0xea, 0xd2, 0x21, 0xa0, - 0x17, 0x5a, 0x57, 0x3f, 0x53, 0x31, 0x4a, 0x75, 0x02, 0x59, 0xaa, 0x9c, 0x3a, 0xdc, 0xa9, 0x93, - 0x87, 0x5b, 0x3f, 0x66, 0xb8, 0xd9, 0xea, 0x6a, 0xfe, 0x45, 0x87, 0x59, 0x5c, 0x14, 0x2d, 0x72, - 0x98, 0x90, 0x28, 0x36, 0x5e, 0x87, 0x99, 0x24, 0x35, 0x55, 0x9b, 0xd4, 0xd4, 0x4c, 0xc4, 0x78, - 0x45, 0x64, 0x0f, 0x94, 0xd7, 0x51, 0xfe, 0x42, 0x85, 0x7c, 0x96, 0x8e, 0xac, 0xbc, 0x39, 0xcb, - 0x1b, 0xfb, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x62, 0x65, 0x55, 0x78, 0x1c, 0x69, - 0x87, 0xbd, 0x68, 0x28, 0xb2, 0x8a, 0xa0, 0x98, 0x77, 0x78, 0x3b, 0xf6, 0x89, 0x0f, 0x3d, 0x67, - 0xb0, 0x49, 0x1d, 0x92, 0x43, 0x8c, 0x10, 0x9f, 0x82, 0x29, 0x99, 0xf7, 0x29, 0xbc, 0xc6, 0x81, - 0xa0, 0xf0, 0x58, 0x88, 0x39, 0x8d, 0x0a, 0x78, 0xe2, 0x97, 0x38, 0xc5, 0xbc, 0x6f, 0xfe, 0xbd, - 0x06, 0x6d, 0x3e, 0x7d, 0x52, 0xa7, 0x5e, 0x64, 0x38, 0xa7, 0x23, 0x05, 0x45, 0x12, 0x87, 0x59, - 0xc1, 0xa8, 0x2d, 0x75, 0x51, 0x52, 0x78, 0x0c, 0x8a, 0x8c, 0xde, 0x54, 0x16, 0x27, 0x99, 0x95, - 0xf6, 0x72, 0x5d, 0x5e, 0xa4, 0x24, 0x0e, 0x5b, 0xf6, 0x62, 0xaa, 0xa0, 0x23, 0xa3, 0x99, 0x6c, - 0x4c, 0xb3, 0xfe, 0x39, 0x3e, 0x24, 0x0e, 0xf3, 0x6f, 0x4c, 0xd3, 0xbe, 0xb9, 0x93, 0x72, 0x06, - 0xd7, 0x2c, 0xfa, 0xe5, 0x69, 0x27, 0xa3, 0x4b, 0x51, 0x6d, 0x1e, 0x1b, 0x55, 0x50, 0xa2, 0xaa, - 0x4e, 0xae, 0x56, 0x69, 0x72, 0x5d, 0x82, 0x36, 0xd7, 0x93, 0x82, 0x7e, 0x96, 0x57, 0x52, 0x0a, - 0x53, 0xc5, 0x46, 0xbb, 0x88, 0x0d, 0x35, 0xba, 0x73, 0x63, 0xa2, 0x3b, 0x9f, 0x45, 0xf7, 0x97, - 0x3a, 0xc0, 0x06, 0x09, 0xec, 0x30, 0x1e, 0x11, 0x3f, 0x66, 0xc3, 0x73, 0x32, 0x2a, 0x0b, 0xae, - 0xc2, 0x93, 0x73, 0x8a, 0xae, 0xe6, 0x14, 0x03, 0xa6, 0xd0, 0xe1, 0x3c, 0x9a, 0xf8, 0x9b, 0x39, - 0x33, 0xb0, 0x43, 0xae, 0x8d, 0x83, 0x3c, 0xa3, 0x59, 0xce, 0xa0, 0xa1, 0x23, 0xb2, 0x4c, 0xdd, - 0xe2, 0x04, 0x9b, 0xfc, 0x79, 0x7f, 0x58, 0x2f, 0x36, 0x78, 0x0e, 0x50, 0xb9, 0x27, 0x96, 0xb8, - 0x97, 0xa1, 0x13, 0x25, 0xbb, 0xf9, 0xe0, 0xb6, 0x92, 0x91, 0x80, 0x7b, 0x89, 0xcf, 0x9c, 0xca, - 0x6b, 0x5f, 0xd6, 0x88, 0xa7, 0xa5, 0x9c, 0x51, 0xac, 0x20, 0xcc, 0x0f, 0x75, 0xe8, 0x6c, 0x87, - 0x43, 0xdb, 0x77, 0xbf, 0x89, 0xc5, 0x18, 0x2e, 0xe0, 0xa7, 0x49, 0xcf, 0xcb, 0xd0, 0x22, 0xfe, - 0xd0, 0x73, 0xa3, 0xfd, 0xad, 0xdc, 0x6f, 0x32, 0x4b, 0x76, 0xf6, 0xd4, 0xb8, 0x04, 0x5e, 0x57, - 0x12, 0xf8, 0x22, 0x34, 0x46, 0x74, 0xd7, 0xf5, 0x52, 0xdc, 0x0b, 0x0a, 0x31, 0x4f, 0x3c, 0x82, - 0x99, 0x3c, 0xc3, 0x7c, 0xca, 0xc8, 0x93, 0xfa, 0x4c, 0x65, 0x52, 0x6f, 0xca, 0x49, 0x5d, 0x75, - 0x3c, 0x94, 0x1c, 0xcf, 0xdd, 0xd5, 0xca, 0xdc, 0xf5, 0x7b, 0x0d, 0x3a, 0xb9, 0xbb, 0x79, 0xbd, - 0x3a, 0xd6, 0x5d, 0x45, 0x04, 0xea, 0x15, 0x08, 0xcc, 0x70, 0x53, 0x93, 0x71, 0xc3, 0x90, 0x46, - 0x23, 0x57, 0x2a, 0xd2, 0x33, 0x9a, 0xf5, 0xe6, 0x11, 0x5b, 0x72, 0x16, 0xa7, 0xa4, 0x4d, 0x4d, - 0x43, 0xd9, 0xd4, 0x14, 0xf3, 0xe8, 0x6f, 0x34, 0x38, 0xcf, 0xa2, 0x5c, 0x1a, 0xc6, 0x36, 0x74, - 0x68, 0x01, 0x09, 0x22, 0xd1, 0x3c, 0x5b, 0x91, 0x28, 0x8a, 0xa0, 0xb1, 0x4a, 0xc2, 0x4c, 0xa1, - 0x53, 0xe8, 0x44, 0x64, 0x9e, 0x2a, 0x85, 0x45, 0x7b, 0xac, 0x92, 0xb0, 0xf9, 0x5b, 0x0d, 0x3a, - 0x3c, 0xb5, 0x49, 0xf3, 0xfc, 0xcc, 0xcd, 0x7e, 0x17, 0xce, 0x17, 0x7b, 0xbe, 0xe5, 0x46, 0x71, - 0x57, 0x5f, 0xae, 0x4d, 0x6a, 0x7a, 0xa5, 0x02, 0x36, 0xd7, 0x9e, 0xde, 0x49, 0x3c, 0xaf, 0x47, - 0xa2, 0xc8, 0x1e, 0x92, 0xb5, 0x07, 0x7d, 0x72, 0xc8, 0x3e, 0x58, 0xe4, 0x70, 0x2c, 0x86, 0x58, - 0x9d, 0x83, 0x85, 0x82, 0x4b, 0xfd, 0x0c, 0x42, 0x32, 0x8b, 0x4d, 0xab, 0x88, 0xeb, 0xe9, 0xd6, - 0x96, 0x6b, 0x2c, 0x85, 0x0a, 0xd2, 0xf8, 0x06, 0xcc, 0x62, 0x0e, 0x17, 0xdd, 0x74, 0xa7, 0x70, - 0x00, 0xaf, 0x55, 0x56, 0x0d, 0x95, 0x56, 0xf1, 0x6a, 0x40, 0xd0, 0x6f, 0xf8, 0x71, 0xf8, 0xc0, - 0x52, 0x34, 0x2e, 0xbd, 0x07, 0x0b, 0xa5, 0x26, 0x46, 0x07, 0x6a, 0x07, 0xe4, 0x81, 0x18, 0x07, - 0xfb, 0x69, 0xbc, 0x08, 0xf5, 0x23, 0xb6, 0xf7, 0x13, 0xd1, 0x5f, 0xaa, 0xb0, 0x40, 0xd8, 0x6c, - 0xf1, 0x86, 0xaf, 0xe8, 0x5f, 0xd2, 0xcc, 0x67, 0xb3, 0x81, 0xc9, 0x63, 0xd4, 0x94, 0x31, 0x9a, - 0x6f, 0x41, 0xab, 0x17, 0x0d, 0x37, 0xec, 0xd8, 0xc6, 0x86, 0xaf, 0x41, 0x6b, 0x94, 0x93, 0xd8, - 0xb8, 0xba, 0x3f, 0x21, 0x64, 0xc9, 0xcd, 0xcd, 0x3f, 0xeb, 0xd0, 0xad, 0x76, 0x45, 0x14, 0x30, - 0x1b, 0x48, 0x18, 0xae, 0x53, 0x87, 0xe0, 0xd0, 0xea, 0x56, 0x4a, 0xb2, 0xd8, 0x91, 0x30, 0x64, - 0x39, 0x4c, 0x14, 0xd9, 0x9c, 0x32, 0x56, 0x60, 0xca, 0x4b, 0xc3, 0x72, 0xbc, 0x15, 0xd8, 0xce, - 0x18, 0x41, 0x07, 0xbd, 0x2b, 0x0d, 0x48, 0xc4, 0x6c, 0x75, 0xe2, 0x98, 0x45, 0x01, 0x0f, 0x9a, - 0xa4, 0x83, 0x07, 0xae, 0xa4, 0x7a, 0x69, 0x00, 0x4f, 0x55, 0x36, 0xad, 0x08, 0xe0, 0x17, 0xd5, - 0x00, 0x5e, 0x1c, 0x3f, 0x94, 0x62, 0x10, 0x03, 0x30, 0xae, 0x93, 0xb8, 0x67, 0xdf, 0x5f, 0xf5, - 0x9d, 0x9e, 0xeb, 0xf7, 0xc9, 0x21, 0x43, 0xfb, 0x32, 0xb4, 0xc4, 0x56, 0x3e, 0x0b, 0x53, 0xd3, - 0x92, 0x59, 0x63, 0x77, 0xf8, 0x85, 0xf9, 0x50, 0x2b, 0xcd, 0x07, 0xf3, 0x1a, 0xcc, 0xca, 0xdd, - 0x61, 0x12, 0xb1, 0xef, 0xf7, 0xc9, 0x21, 0x0e, 0xa8, 0x6d, 0x09, 0x0a, 0xf9, 0xd8, 0x42, 0xec, - 0x0d, 0x04, 0x65, 0xfe, 0x49, 0x87, 0x73, 0x25, 0x93, 0xa3, 0xe0, 0x61, 0xf5, 0xc8, 0x78, 0xa9, - 0x8d, 0xc3, 0xcb, 0x94, 0x82, 0x97, 0x03, 0x58, 0xe0, 0x41, 0x92, 0xba, 0xee, 0xd6, 0x11, 0x00, - 0xaf, 0x57, 0x95, 0xea, 0x65, 0x23, 0x45, 0xec, 0x25, 0x2e, 0x0f, 0x7e, 0x59, 0xef, 0x12, 0x81, - 0xc5, 0xea, 0xc6, 0x15, 0xe1, 0x7f, 0x59, 0x0d, 0xff, 0xa7, 0xab, 0xc2, 0x2f, 0x5b, 0x22, 0xc5, - 0xff, 0x10, 0xe6, 0xd9, 0xa2, 0xda, 0x27, 0xbe, 0xd3, 0x8b, 0x86, 0xe8, 0xc8, 0x65, 0x68, 0x71, - 0xf9, 0x5e, 0x34, 0xcc, 0xb7, 0x6e, 0x12, 0x8b, 0xb5, 0x18, 0x78, 0x2e, 0x5b, 0x3c, 0xb1, 0x85, - 0x58, 0xf4, 0x24, 0x16, 0x4b, 0x90, 0x11, 0x11, 0xa7, 0x1e, 0xcc, 0xbb, 0x35, 0x2b, 0xa3, 0xcd, - 0x0f, 0x1a, 0x30, 0x2d, 0xd0, 0x88, 0x49, 0x91, 0xed, 0x96, 0xb3, 0x65, 0x95, 0x53, 0xbc, 0xae, - 0x1d, 0x1c, 0xe5, 0xf0, 0xe2, 0x94, 0x7c, 0xe4, 0x54, 0x53, 0x8f, 0x9c, 0x0a, 0x36, 0x4d, 0x95, - 0x6d, 0x2a, 0x8c, 0xab, 0x5e, 0x1e, 0x17, 0x2b, 0xe3, 0xb0, 0xb2, 0xd9, 0xf1, 0xec, 0x78, 0x8f, - 0x86, 0x23, 0xb1, 0xf9, 0xad, 0x5b, 0x25, 0x3e, 0x2b, 0x1d, 0x39, 0x2f, 0xab, 0xfd, 0x79, 0x0a, - 0x2f, 0x70, 0x59, 0xa5, 0xcd, 0x39, 0xe9, 0x1e, 0x80, 0x9f, 0x50, 0xa8, 0x4c, 0x6e, 0x5b, 0x14, - 0xb9, 0xd4, 0xc7, 0x2a, 0x94, 0x97, 0xfa, 0x32, 0x8b, 0x8d, 0x7c, 0x14, 0x0d, 0x37, 0x43, 0x3a, - 0x12, 0xe7, 0x14, 0x29, 0x89, 0x23, 0xa7, 0x7e, 0x9c, 0x56, 0xb0, 0xfc, 0x6c, 0x42, 0x66, 0x31, - 0x59, 0x41, 0x62, 0x9d, 0x3f, 0x6b, 0xa5, 0x24, 0xc3, 0x52, 0x44, 0x0e, 0x45, 0xf1, 0xce, 0x7e, - 0x2a, 0x91, 0x9b, 0x57, 0x23, 0x57, 0xa8, 0xc6, 0x3a, 0xf8, 0x55, 0xae, 0xc6, 0xf2, 0x12, 0x67, - 0x41, 0x29, 0x71, 0x56, 0x61, 0x9a, 0x06, 0x6c, 0xfa, 0x47, 0x5d, 0x03, 0xa7, 0xcb, 0xf3, 0xe3, - 0x17, 0xa8, 0x95, 0x6d, 0xde, 0x92, 0x4f, 0x8c, 0x54, 0xce, 0xb8, 0x05, 0xf3, 0x74, 0x6f, 0xcf, - 0x73, 0x7d, 0xb2, 0x93, 0x44, 0xfb, 0xb8, 0x49, 0x3e, 0x87, 0x60, 0x37, 0xab, 0x8a, 0x08, 0xb5, - 0xa5, 0x55, 0x14, 0x65, 0x95, 0x9f, 0x1d, 0xf3, 0x4d, 0x0e, 0x2e, 0x70, 0xe7, 0x71, 0x81, 0x53, - 0x78, 0x78, 0x76, 0x27, 0x2d, 0xf4, 0x4f, 0xa1, 0xe3, 0x64, 0xd6, 0xd2, 0x2b, 0x30, 0x2b, 0x1b, - 0x5b, 0x31, 0x31, 0xcf, 0xcb, 0x13, 0x73, 0x46, 0x9e, 0x77, 0x3f, 0xd0, 0x60, 0xbe, 0x60, 0x26, - 0x6b, 0x1d, 0xbb, 0xb1, 0x47, 0x84, 0x06, 0x4e, 0xb0, 0x9d, 0x8e, 0x43, 0xa2, 0x81, 0x98, 0x08, - 0xf8, 0x5b, 0xd4, 0x8c, 0xb5, 0xec, 0xac, 0xcb, 0x84, 0x59, 0x77, 0xbb, 0xcf, 0x14, 0xf5, 0x69, - 0xe2, 0x3b, 0xd9, 0xc1, 0xb1, 0xc4, 0x63, 0x40, 0x74, 0xb7, 0xfb, 0x6b, 0xb6, 0x33, 0x24, 0xfc, - 0x20, 0xbe, 0x8e, 0x36, 0xa9, 0x4c, 0xd3, 0x81, 0x99, 0xdb, 0x6e, 0x10, 0xad, 0xd3, 0xd1, 0x88, - 0x85, 0xd3, 0x21, 0x31, 0xab, 0xc9, 0x35, 0x1c, 0xbc, 0xa0, 0x98, 0x67, 0x1c, 0xb2, 0x67, 0x27, - 0x5e, 0xcc, 0x9a, 0xa6, 0xd3, 0x5f, 0x62, 0xe1, 0x79, 0x6a, 0x44, 0xfd, 0x0d, 0x2e, 0xcd, 0xed, - 0x94, 0x38, 0xe6, 0x1f, 0x75, 0xe8, 0xe0, 0xea, 0xb6, 0x8e, 0xe0, 0x71, 0x50, 0xe8, 0x2a, 0xd4, - 0x71, 0x32, 0x8b, 0xea, 0xf0, 0xf8, 0xd3, 0x0f, 0xde, 0xd4, 0xb8, 0x06, 0x0d, 0x1a, 0x60, 0x49, - 0xc9, 0x97, 0xbe, 0xe7, 0xc6, 0x09, 0xa9, 0x47, 0xd7, 0x96, 0x90, 0x32, 0x36, 0x01, 0x46, 0x79, - 0x05, 0xc9, 0x0b, 0x81, 0x49, 0x75, 0x48, 0x92, 0xcc, 0xb9, 0x59, 0x8e, 0xcb, 0xce, 0xaf, 0x6b, - 0x96, 0xca, 0x34, 0xb6, 0x60, 0x0e, 0xcd, 0xde, 0x4e, 0x8f, 0xc1, 0x30, 0x06, 0x93, 0xf7, 0x58, - 0x90, 0x36, 0x7f, 0xa2, 0x09, 0x37, 0xb2, 0xaf, 0x7d, 0xc2, 0x7d, 0x9f, 0xbb, 0x44, 0x3b, 0x95, - 0x4b, 0x96, 0x60, 0x66, 0x94, 0x48, 0xa7, 0x72, 0x35, 0x2b, 0xa3, 0xf3, 0x10, 0xd5, 0x26, 0x0e, - 0x91, 0xf9, 0x53, 0x0d, 0xba, 0x6f, 0x52, 0xd7, 0xc7, 0x0f, 0xab, 0x41, 0xe0, 0x89, 0x6b, 0x85, - 0x53, 0xc7, 0xfc, 0x2b, 0xd0, 0xb4, 0xb9, 0x1a, 0x3f, 0x16, 0x61, 0x9f, 0xe0, 0xa4, 0x2d, 0x97, - 0x91, 0x0e, 0x4d, 0x6a, 0xf2, 0xa1, 0x89, 0xf9, 0x91, 0x06, 0x73, 0xdc, 0x29, 0x6f, 0x27, 0x6e, - 0x7c, 0x6a, 0xfb, 0xd6, 0x60, 0xe6, 0x30, 0x71, 0xe3, 0x53, 0xa0, 0x32, 0x93, 0x2b, 0xe3, 0xa9, - 0x56, 0x81, 0x27, 0xf3, 0x17, 0x1a, 0x5c, 0x28, 0xba, 0x75, 0x75, 0x30, 0x20, 0xc1, 0xa3, 0x9c, - 0x52, 0xca, 0xa1, 0xd1, 0x54, 0xe1, 0xd0, 0xa8, 0xd2, 0x64, 0x8b, 0xbc, 0x4f, 0x06, 0x8f, 0xaf, - 0xc9, 0xdf, 0xd6, 0xe1, 0xff, 0xaf, 0x67, 0x13, 0xef, 0x76, 0x68, 0xfb, 0xd1, 0x1e, 0x09, 0xc3, - 0x47, 0x68, 0xef, 0x2d, 0x68, 0xfb, 0xe4, 0x5e, 0x6e, 0x93, 0x98, 0x8e, 0x93, 0xaa, 0x51, 0x85, - 0x27, 0x5b, 0xbb, 0xcc, 0x7f, 0x6b, 0xd0, 0xe1, 0x7a, 0xde, 0x72, 0x07, 0x07, 0x8f, 0x70, 0xf0, - 0x5b, 0x30, 0x77, 0x80, 0x16, 0x30, 0xea, 0x14, 0xcb, 0x76, 0x41, 0x7a, 0xc2, 0xe1, 0xff, 0x47, - 0x83, 0x05, 0xae, 0xe8, 0xa6, 0x7f, 0xe4, 0x3e, 0x4a, 0xb0, 0xee, 0xc0, 0xbc, 0xcb, 0x4d, 0x38, - 0xa5, 0x03, 0x8a, 0xe2, 0x13, 0x7a, 0xe0, 0xd7, 0x1a, 0xcc, 0x73, 0x4d, 0x6f, 0xf8, 0x31, 0x09, - 0x4f, 0x3d, 0xfe, 0x1b, 0xd0, 0x22, 0x7e, 0x1c, 0xda, 0xfe, 0x69, 0x56, 0x48, 0x59, 0x74, 0xc2, - 0x45, 0xf2, 0x23, 0x0d, 0x0c, 0x54, 0xb5, 0xe1, 0x46, 0x23, 0x37, 0x8a, 0x1e, 0x61, 0xe8, 0x26, - 0x33, 0xf8, 0x87, 0x3a, 0x9c, 0x97, 0xb4, 0xf4, 0x92, 0xf8, 0x71, 0x37, 0xd9, 0xd8, 0x80, 0x26, - 0xab, 0x11, 0xe4, 0xdb, 0xc8, 0x49, 0x3b, 0xca, 0x05, 0x59, 0x15, 0x8b, 0x44, 0x9f, 0x0c, 0xa8, - 0xef, 0x44, 0x58, 0x1c, 0xb5, 0x2d, 0x85, 0xc7, 0x96, 0xa1, 0x25, 0x49, 0xcd, 0xba, 0xed, 0x0f, - 0x88, 0xf7, 0xc4, 0xb8, 0xc8, 0xfc, 0xb9, 0x06, 0x73, 0xbc, 0xc9, 0xe3, 0x3f, 0x64, 0x96, 0xeb, - 0x39, 0x90, 0x3f, 0x31, 0x51, 0x62, 0xf0, 0x5a, 0x94, 0xb4, 0xc8, 0x75, 0xf5, 0xe3, 0x0b, 0xad, - 0x1b, 0xd0, 0x1a, 0xec, 0xdb, 0xfe, 0xf0, 0x54, 0xe0, 0x92, 0x45, 0xcd, 0x18, 0x9e, 0x96, 0x0f, - 0xe0, 0xd7, 0xf9, 0x27, 0x1c, 0xfe, 0x4b, 0x85, 0xa1, 0x1c, 0xfb, 0xda, 0xe0, 0xe1, 0x9c, 0x7e, - 0x00, 0x0b, 0xfc, 0xd6, 0x57, 0xaa, 0x09, 0x8d, 0x2e, 0x4c, 0xdb, 0x0e, 0x3f, 0x86, 0xd0, 0x50, - 0x28, 0x25, 0xd5, 0xfb, 0x7c, 0xf1, 0xce, 0x2a, 0xbf, 0xcf, 0xbf, 0x08, 0x60, 0x3b, 0xce, 0xbb, - 0x34, 0x74, 0x5c, 0x3f, 0x2d, 0xf0, 0x25, 0x8e, 0xf9, 0x26, 0xcc, 0x6e, 0x86, 0x74, 0x74, 0x5b, - 0xba, 0xbf, 0x3d, 0xf6, 0x86, 0x59, 0xbe, 0xfb, 0xd5, 0xd5, 0xbb, 0x5f, 0xf3, 0xeb, 0xf0, 0x54, - 0xc9, 0x70, 0x74, 0xd6, 0x3a, 0xbf, 0x96, 0x4e, 0x3b, 0x11, 0x90, 0xa9, 0x3a, 0x97, 0x93, 0x6d, - 0xb1, 0x14, 0x21, 0xf3, 0x03, 0x0d, 0x9e, 0x29, 0xa9, 0x5f, 0x0d, 0x82, 0x90, 0x1e, 0x89, 0x98, - 0x9c, 0x45, 0x37, 0x6a, 0xf1, 0xab, 0x17, 0x8b, 0xdf, 0x4a, 0x23, 0x94, 0x82, 0xfd, 0x63, 0x30, - 0xe2, 0x67, 0x1a, 0xcc, 0x0b, 0x23, 0x1c, 0x47, 0x74, 0xfb, 0x32, 0x34, 0xf8, 0x93, 0x16, 0xd1, - 0xe1, 0x33, 0x95, 0x1d, 0xa6, 0x4f, 0x71, 0x2c, 0xd1, 0xb8, 0x8c, 0x48, 0xbd, 0x6a, 0x46, 0x7d, - 0x39, 0x03, 0xfb, 0xc4, 0x8f, 0x4e, 0x84, 0x80, 0xf9, 0xd5, 0x14, 0xcc, 0x1b, 0xc4, 0x23, 0x67, - 0xe9, 0x23, 0xf3, 0x0e, 0xcc, 0xe1, 0xfb, 0x9a, 0xdc, 0x07, 0x67, 0xa2, 0xf6, 0x5d, 0xe8, 0xa0, - 0xda, 0x33, 0xb7, 0x37, 0x9b, 0x1d, 0xcc, 0x3f, 0xf2, 0x52, 0x72, 0x26, 0xda, 0xbf, 0x00, 0xe7, - 0x52, 0xdf, 0xdf, 0x09, 0x9c, 0xec, 0x10, 0x69, 0xcc, 0x3d, 0x9d, 0xf9, 0x22, 0x2c, 0xae, 0x53, - 0xff, 0x88, 0x84, 0x11, 0xbf, 0x48, 0x44, 0x91, 0x54, 0x42, 0x99, 0xfc, 0x82, 0x32, 0xdf, 0x87, - 0x25, 0x59, 0xa2, 0x4f, 0xe2, 0x9d, 0xd0, 0x3d, 0x92, 0xa4, 0xc4, 0x01, 0xb5, 0xa6, 0x1c, 0x50, - 0xe7, 0x07, 0xda, 0xba, 0x72, 0xa0, 0x7d, 0x01, 0x9a, 0x6e, 0x24, 0x14, 0x20, 0xa8, 0x66, 0xac, - 0x9c, 0x61, 0xda, 0xb0, 0xc0, 0xdd, 0x2f, 0x2e, 0x8c, 0xb0, 0x8b, 0x25, 0x98, 0xe1, 0x98, 0xca, - 0x3a, 0xc9, 0xe8, 0xb1, 0xd7, 0x2f, 0x63, 0x2f, 0x1b, 0xcd, 0x3e, 0x2c, 0x88, 0x47, 0x35, 0x3b, - 0xf6, 0xd0, 0xf5, 0xf9, 0x22, 0x7b, 0x11, 0x20, 0xb0, 0x87, 0xe9, 0x03, 0x3c, 0x7e, 0x6d, 0x26, - 0x71, 0xd8, 0xf7, 0x68, 0x9f, 0xde, 0x13, 0xdf, 0x75, 0xfe, 0x3d, 0xe7, 0x98, 0xef, 0x80, 0x61, - 0x91, 0x28, 0xa0, 0x7e, 0x44, 0x24, 0xad, 0xcb, 0xd0, 0x5a, 0x4f, 0xc2, 0x90, 0xf8, 0xac, 0xab, - 0xf4, 0x85, 0x99, 0xcc, 0x62, 0x7a, 0xfb, 0xb9, 0x5e, 0x7e, 0xc4, 0x2e, 0x71, 0xcc, 0x1f, 0xd5, - 0xa0, 0xd9, 0x77, 0x87, 0xbe, 0xed, 0x59, 0xe4, 0xd0, 0x78, 0x0d, 0x1a, 0x7c, 0xcb, 0x22, 0x90, - 0x52, 0x75, 0xe4, 0xcb, 0x5b, 0xf3, 0xbd, 0x99, 0x45, 0x0e, 0x6f, 0xfc, 0x9f, 0x25, 0x64, 0x8c, - 0xb7, 0xa1, 0xcd, 0x7f, 0xdd, 0xe4, 0x47, 0x50, 0x22, 0x7f, 0x7d, 0xf6, 0x04, 0x25, 0xa2, 0x35, - 0xd7, 0xa5, 0x6a, 0x60, 0x06, 0x0d, 0xb0, 0xa4, 0x11, 0xcb, 0xc3, 0x78, 0x83, 0x78, 0xe5, 0x23, - 0x0c, 0xe2, 0x32, 0x4c, 0xda, 0xc6, 0x43, 0x1a, 0x91, 0xa9, 0xc7, 0x4b, 0xf3, 0xb3, 0x1c, 0x21, - 0xcd, 0x65, 0x98, 0xf4, 0x7e, 0xe2, 0x0f, 0xef, 0x04, 0xe2, 0xec, 0x70, 0xbc, 0xf4, 0x0d, 0x6c, - 0x26, 0xa4, 0xb9, 0x0c, 0x93, 0x0e, 0x71, 0xf1, 0x46, 0xa7, 0x1f, 0x27, 0xcd, 0xd7, 0x78, 0x21, - 0xcd, 0x65, 0xd6, 0x9a, 0x30, 0x1d, 0xd8, 0x0f, 0x3c, 0x6a, 0x3b, 0xe6, 0x87, 0x35, 0x80, 0xb4, - 0x61, 0x84, 0x85, 0x8e, 0x12, 0xa2, 0x4b, 0x27, 0x86, 0x28, 0xf0, 0x1e, 0x48, 0x41, 0xea, 0x57, - 0x07, 0xe9, 0x73, 0x93, 0x06, 0x89, 0x6b, 0x2b, 0x84, 0xe9, 0x5a, 0x21, 0x4c, 0x97, 0x4e, 0x0c, - 0x93, 0x30, 0x4a, 0x04, 0xea, 0x5a, 0x21, 0x50, 0x97, 0x4e, 0x0c, 0x94, 0x90, 0x17, 0xa1, 0xba, - 0x56, 0x08, 0xd5, 0xa5, 0x13, 0x43, 0x25, 0xe4, 0x45, 0xb0, 0xae, 0x15, 0x82, 0x75, 0xe9, 0xc4, - 0x60, 0x09, 0xf9, 0x72, 0xb8, 0xfe, 0xaa, 0xc3, 0x1c, 0xba, 0x8c, 0xdf, 0xc2, 0xfa, 0x7b, 0x14, - 0xef, 0x03, 0xd0, 0x5d, 0xea, 0x1b, 0x4d, 0x95, 0x69, 0x7c, 0x1e, 0x16, 0x38, 0x83, 0x48, 0xd7, - 0x25, 0x3a, 0x5e, 0x97, 0x94, 0x3f, 0xe0, 0x05, 0x51, 0x12, 0xc5, 0x74, 0xb4, 0x61, 0xc7, 0x76, - 0x5a, 0x7c, 0xe5, 0x1c, 0xf9, 0xfa, 0x6e, 0xaa, 0xf4, 0x62, 0x3c, 0xa4, 0x74, 0x94, 0xdd, 0xcb, - 0x09, 0x8a, 0x49, 0xc4, 0xee, 0x88, 0xd0, 0x24, 0x16, 0xcb, 0x44, 0x4a, 0xf2, 0x77, 0x54, 0x8e, - 0x6b, 0xe3, 0xa5, 0x97, 0x78, 0x64, 0x94, 0x31, 0x70, 0x65, 0xcb, 0x2f, 0xf1, 0xc4, 0x8b, 0xee, - 0x9c, 0x33, 0xc1, 0x85, 0x1b, 0x3e, 0xc6, 0x77, 0x63, 0x57, 0x7e, 0x7c, 0x54, 0xb7, 0x14, 0x9e, - 0xf9, 0x0f, 0x0d, 0xce, 0xed, 0xd8, 0x61, 0xec, 0x0e, 0xdc, 0xc0, 0xf6, 0xe3, 0x1e, 0x89, 0x6d, - 0x1c, 0xa7, 0xf2, 0x98, 0x53, 0x7b, 0xb8, 0xc7, 0x9c, 0x3b, 0x30, 0x3f, 0x54, 0x77, 0x20, 0x0f, - 0xb9, 0x79, 0x28, 0x8a, 0x2b, 0x2f, 0x53, 0x6b, 0x0f, 0xfd, 0x32, 0xd5, 0xfc, 0x9e, 0x0e, 0xf3, - 0x85, 0xe5, 0xf5, 0xd8, 0xdc, 0xb4, 0x0a, 0xe0, 0x66, 0x50, 0x3b, 0xe6, 0x80, 0x5e, 0xc5, 0xa3, - 0x25, 0x09, 0x55, 0xdd, 0xf6, 0xd5, 0x4e, 0x7f, 0xdb, 0x77, 0x03, 0x5a, 0x41, 0x1e, 0xa4, 0x63, - 0xf6, 0x47, 0x15, 0xa1, 0xb4, 0x64, 0x51, 0xf3, 0x3d, 0x58, 0x28, 0xad, 0x62, 0x78, 0x6d, 0x47, - 0x0f, 0x88, 0x9f, 0x5d, 0xdb, 0x31, 0x42, 0x02, 0xb4, 0x5e, 0x04, 0xb4, 0xe7, 0x1e, 0xc9, 0xcf, - 0xe4, 0x05, 0x69, 0x7e, 0x5f, 0x87, 0xc5, 0xea, 0x0c, 0xf4, 0xa4, 0xba, 0x7b, 0x17, 0xba, 0xe3, - 0x56, 0xfb, 0x33, 0xf3, 0x7a, 0x8e, 0xee, 0x2c, 0x57, 0x3f, 0xa9, 0xee, 0x3e, 0x97, 0xa2, 0x5b, - 0x4a, 0x87, 0xe6, 0xaf, 0x32, 0xff, 0x64, 0xd5, 0xc8, 0x13, 0xea, 0x1f, 0xe3, 0x32, 0x74, 0xf8, - 0x30, 0xa5, 0xe7, 0x21, 0xbc, 0xb8, 0x2d, 0xf1, 0xf3, 0x95, 0x42, 0x2a, 0x0d, 0xce, 0x0c, 0xb3, - 0xbf, 0xd3, 0xd2, 0x98, 0x64, 0x35, 0xde, 0x27, 0x2a, 0x26, 0x39, 0xd2, 0xa4, 0xc2, 0x47, 0x42, - 0x5a, 0x56, 0x7b, 0xfe, 0x0f, 0x69, 0x27, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x04, 0x9a, 0xdf, 0x82, - 0xf6, 0x06, 0xf1, 0x7a, 0xd1, 0x30, 0x7d, 0xbf, 0x7a, 0xa6, 0x9b, 0xc9, 0xe2, 0x2b, 0xbf, 0xa9, - 0xf2, 0x2b, 0xbf, 0x35, 0x98, 0x93, 0x0d, 0x38, 0xcd, 0xfb, 0xcc, 0xb5, 0x0b, 0x5f, 0x5b, 0x5a, - 0x11, 0xff, 0x9e, 0x7d, 0xb5, 0xe4, 0xc4, 0xdd, 0x06, 0xfe, 0x79, 0xf1, 0xa5, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x58, 0x4b, 0xb8, 0x00, 0x96, 0x3b, 0x00, 0x00, +var fileDescriptor_ws_7a6f9f3abd69f213 = []byte{ + // 3469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x57, + 0xd5, 0xff, 0xaa, 0xda, 0xdd, 0x76, 0x9f, 0xf6, 0xa3, 0x5d, 0x33, 0x71, 0xfa, 0x33, 0x93, 0xc1, + 0x54, 0xac, 0x24, 0x0c, 0xc1, 0x13, 0x4d, 0x08, 0x82, 0x3c, 0x06, 0xf9, 0x91, 0x79, 0x24, 0xd3, + 0xb6, 0x53, 0x3d, 0x93, 0x20, 0x82, 0x34, 0x94, 0xbb, 0xae, 0xdb, 0x35, 0xae, 0xae, 0x5b, 0xae, + 0x87, 0x67, 0xcc, 0x06, 0x29, 0x48, 0x88, 0x1d, 0x1b, 0xd8, 0xb0, 0x41, 0x62, 0x83, 0x40, 0x51, + 0x84, 0x10, 0x48, 0x2c, 0x10, 0x42, 0x88, 0x1d, 0x1b, 0x90, 0xd8, 0xb1, 0x40, 0x62, 0xcd, 0x3f, + 0x80, 0x84, 0x14, 0x74, 0xef, 0xb9, 0x55, 0x75, 0x6f, 0x55, 0xb5, 0xdd, 0x63, 0x59, 0x99, 0x89, + 0x86, 0x5d, 0x9f, 0x53, 0xf7, 0x9c, 0x7b, 0xee, 0xf9, 0x9d, 0x7b, 0xcf, 0xb9, 0x8f, 0x86, 0xb9, + 0xc8, 0xd9, 0xbf, 0x7b, 0x3f, 0xba, 0x7c, 0x3f, 0x5a, 0x09, 0x42, 0x1a, 0x53, 0x63, 0x3e, 0x22, + 0xe1, 0x21, 0x09, 0xef, 0xda, 0x81, 0x7b, 0x37, 0xb0, 0x43, 0x7b, 0x18, 0x2d, 0x3e, 0xbf, 0x15, + 0x10, 0xff, 0xee, 0xcd, 0xee, 0xe5, 0x60, 0x7f, 0x70, 0x99, 0xb7, 0xba, 0x9c, 0x4a, 0x85, 0x76, + 0x10, 0x90, 0x50, 0xc8, 0x9a, 0xff, 0x98, 0x80, 0xe6, 0xf5, 0x90, 0x26, 0xc1, 0x4d, 0x7f, 0x97, + 0x1a, 0x1d, 0x98, 0x1c, 0x70, 0x62, 0xa3, 0xa3, 0x2d, 0x69, 0x2f, 0x34, 0xad, 0x94, 0x34, 0x2e, + 0x40, 0x93, 0xff, 0xdc, 0xb4, 0x87, 0xa4, 0xa3, 0xf3, 0x6f, 0x39, 0xc3, 0x30, 0x61, 0xda, 0xa7, + 0xb1, 0xbb, 0xeb, 0xf6, 0xed, 0xd8, 0xa5, 0x7e, 0xa7, 0xc6, 0x1b, 0x28, 0x3c, 0xd6, 0xc6, 0xf5, + 0xe3, 0x90, 0x3a, 0x49, 0x9f, 0xb7, 0x99, 0xc0, 0x36, 0x32, 0x8f, 0xf5, 0xbf, 0x6b, 0xf7, 0xc9, + 0x1d, 0xeb, 0x56, 0xa7, 0x8e, 0xfd, 0x0b, 0xd2, 0x58, 0x82, 0x16, 0xbd, 0xef, 0x93, 0xf0, 0x4e, + 0x44, 0xc2, 0x9b, 0x1b, 0x9d, 0x06, 0xff, 0x2a, 0xb3, 0x8c, 0x8b, 0x00, 0xfd, 0x90, 0xd8, 0x31, + 0xb9, 0xed, 0x0e, 0x49, 0x67, 0x72, 0x49, 0x7b, 0x61, 0xc6, 0x92, 0x38, 0x4c, 0xc3, 0x90, 0x0c, + 0x77, 0x48, 0xb8, 0x4e, 0x13, 0x3f, 0xee, 0x4c, 0xf1, 0x06, 0x32, 0xcb, 0x98, 0x05, 0x9d, 0x3c, + 0xe8, 0x34, 0xb9, 0x6a, 0x9d, 0x3c, 0x30, 0x16, 0xa0, 0x11, 0xc5, 0x76, 0x9c, 0x44, 0x1d, 0x58, + 0xd2, 0x5e, 0xa8, 0x5b, 0x82, 0x32, 0x96, 0x61, 0x86, 0xeb, 0xa5, 0xa9, 0x35, 0x2d, 0x2e, 0xa2, + 0x32, 0x33, 0x8f, 0xdd, 0x3e, 0x0a, 0x48, 0x67, 0x9a, 0x2b, 0xc8, 0x19, 0xc6, 0x25, 0x68, 0xfb, + 0x84, 0x38, 0xef, 0x92, 0x30, 0xf7, 0xda, 0x0c, 0x6f, 0x54, 0xe2, 0x1b, 0xcf, 0xc1, 0xac, 0x47, + 0xe9, 0x7e, 0x97, 0x9b, 0xca, 0x70, 0xea, 0xcc, 0xf2, 0x96, 0x05, 0xae, 0xf1, 0x22, 0xcc, 0xdb, + 0x41, 0xe0, 0x1d, 0x21, 0xeb, 0x5a, 0xe8, 0x12, 0xdf, 0xe9, 0xcc, 0xf1, 0xa6, 0xe5, 0x0f, 0xc6, + 0x97, 0x61, 0x41, 0xc6, 0xe7, 0x4e, 0xe0, 0xa4, 0xbe, 0x6b, 0x73, 0xd7, 0x8c, 0xf8, 0x6a, 0xac, + 0x80, 0xa1, 0x7c, 0x41, 0x17, 0xcc, 0x73, 0x17, 0x54, 0x7c, 0x31, 0x7f, 0x58, 0x83, 0xb9, 0x2c, + 0xc2, 0xae, 0xd1, 0xb0, 0x47, 0xe2, 0xc7, 0x38, 0xce, 0x30, 0x06, 0x1a, 0x59, 0x0c, 0x5c, 0xaf, + 0xc0, 0x89, 0xc5, 0x56, 0xeb, 0xca, 0x67, 0x56, 0x06, 0x94, 0x0e, 0x3c, 0x82, 0x13, 0x69, 0x27, + 0xd9, 0x5d, 0xb9, 0xe9, 0xc7, 0x2f, 0x5f, 0x79, 0xd7, 0xf6, 0x12, 0x52, 0x01, 0xe2, 0x7a, 0x09, + 0xc4, 0xa9, 0x93, 0xd5, 0x14, 0x11, 0xbe, 0x59, 0x85, 0x70, 0xf3, 0x64, 0x3d, 0x65, 0x29, 0xf3, + 0x63, 0x1d, 0xce, 0x71, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x13, 0x96, 0x80, 0x05, 0x68, 0x24, 0x08, + 0x36, 0xe2, 0x22, 0x28, 0x06, 0x59, 0x48, 0x3d, 0x72, 0x8b, 0x1c, 0x12, 0x8f, 0x23, 0x52, 0xb7, + 0x72, 0x86, 0xb1, 0x08, 0x53, 0xf7, 0xa8, 0xeb, 0xf3, 0xc0, 0x9a, 0xe0, 0x1f, 0x33, 0x9a, 0x7d, + 0xf3, 0xdd, 0xfe, 0xbe, 0xcf, 0xb0, 0x46, 0x1c, 0x32, 0x5a, 0x86, 0xa8, 0xa1, 0x42, 0xf4, 0x1c, + 0xcc, 0xda, 0x41, 0xd0, 0xb5, 0xfd, 0x01, 0x09, 0xb1, 0xd3, 0x49, 0x9c, 0x0e, 0x2a, 0x97, 0x2d, + 0x08, 0xac, 0xa7, 0x1e, 0x4d, 0xc2, 0x3e, 0xe1, 0xde, 0xae, 0x5b, 0x12, 0x87, 0xe9, 0xa1, 0x01, + 0x09, 0xa5, 0x79, 0x8c, 0x53, 0xbf, 0xc0, 0x15, 0x21, 0x01, 0x59, 0x48, 0xb0, 0x85, 0x24, 0x89, + 0xc9, 0x9b, 0xbe, 0xc3, 0x07, 0xd5, 0x12, 0x0b, 0x49, 0xce, 0x62, 0x0b, 0x84, 0xeb, 0x1f, 0xba, + 0x71, 0xb6, 0x5c, 0x4d, 0xe3, 0x02, 0xa1, 0x30, 0xcd, 0xef, 0x69, 0x30, 0xbb, 0x9d, 0xec, 0x78, + 0x6e, 0x9f, 0x33, 0x98, 0xf3, 0x73, 0x17, 0x6b, 0x8a, 0x8b, 0x65, 0x47, 0xe9, 0xa3, 0x1d, 0x55, + 0x53, 0x1d, 0xb5, 0x00, 0x8d, 0x01, 0xf1, 0x1d, 0x12, 0x0a, 0xc7, 0x0b, 0x4a, 0x0c, 0xa8, 0x9e, + 0x0e, 0xc8, 0xfc, 0xa3, 0x0e, 0x53, 0x9f, 0xb0, 0x09, 0x4b, 0xd0, 0x0a, 0xf6, 0xa8, 0x4f, 0x36, + 0x13, 0x16, 0x7c, 0xc2, 0x16, 0x99, 0x65, 0x9c, 0x87, 0xfa, 0x8e, 0x1b, 0xc6, 0x7b, 0x1c, 0xfd, + 0x19, 0x0b, 0x09, 0xc6, 0x25, 0x43, 0xdb, 0x45, 0xc8, 0x9b, 0x16, 0x12, 0x62, 0x40, 0x53, 0x19, + 0x42, 0x6a, 0x2a, 0x68, 0x96, 0x52, 0x41, 0x39, 0x82, 0xa0, 0x32, 0x82, 0x2e, 0x41, 0x7b, 0xe0, + 0xd1, 0x1d, 0xdb, 0xb3, 0x48, 0xff, 0xb0, 0x1b, 0x0d, 0xb6, 0x82, 0x98, 0xc3, 0x5d, 0xb7, 0x4a, + 0x7c, 0xf3, 0xdf, 0x1a, 0x00, 0x4e, 0x2d, 0xee, 0xc6, 0x42, 0xbe, 0xd2, 0xca, 0xf9, 0x6a, 0x01, + 0x1a, 0x21, 0x19, 0xda, 0xe1, 0x7e, 0x3a, 0x9d, 0x90, 0x2a, 0x18, 0x5f, 0x2b, 0x19, 0xff, 0x1a, + 0xc0, 0x2e, 0xef, 0x87, 0xe9, 0xe1, 0x6e, 0x65, 0x93, 0xbf, 0x54, 0x02, 0xac, 0xa4, 0x88, 0x5a, + 0x52, 0x73, 0x36, 0x57, 0x6d, 0xc7, 0x11, 0x53, 0xa2, 0x8e, 0x73, 0x35, 0x63, 0x54, 0xcc, 0x88, + 0xc6, 0x31, 0x33, 0x62, 0x32, 0x0b, 0xa0, 0x7f, 0x69, 0xd0, 0x5c, 0xf3, 0xec, 0xfe, 0xfe, 0x98, + 0x43, 0x57, 0x87, 0xa8, 0x97, 0x86, 0x78, 0x1d, 0x66, 0x76, 0x98, 0xba, 0x74, 0x08, 0xdc, 0x0b, + 0xad, 0x2b, 0x9f, 0xab, 0x18, 0xa5, 0x3a, 0x81, 0x2c, 0x55, 0x4e, 0x1d, 0xee, 0xc4, 0xc9, 0xc3, + 0xad, 0x1f, 0x33, 0xdc, 0x2c, 0x27, 0x98, 0x7f, 0xd5, 0x61, 0x9a, 0x2f, 0x9d, 0x16, 0x39, 0x48, + 0x48, 0x14, 0x1b, 0x6f, 0xc0, 0x54, 0x92, 0x9a, 0xaa, 0x8d, 0x6b, 0x6a, 0x26, 0x62, 0xbc, 0x2a, + 0x72, 0x1e, 0x97, 0xd7, 0xb9, 0xfc, 0x85, 0x0a, 0xf9, 0x2c, 0x89, 0x5a, 0x79, 0x73, 0x96, 0xed, + 0xf6, 0x6c, 0xdf, 0xf1, 0x88, 0x45, 0xa2, 0xc4, 0x8b, 0xc5, 0xfa, 0xab, 0xf0, 0x30, 0xd2, 0x0e, + 0xba, 0xd1, 0x40, 0xe4, 0x42, 0x41, 0x31, 0xef, 0x60, 0x3b, 0xf6, 0x09, 0x87, 0x9e, 0x33, 0xd8, + 0xa4, 0x0e, 0xc9, 0x01, 0x47, 0x08, 0xa7, 0x60, 0x4a, 0xe6, 0x7d, 0x0a, 0xaf, 0x61, 0x20, 0x28, + 0x3c, 0x06, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x5b, 0x12, 0xa7, 0x58, 0x6b, 0x99, 0x7f, 0xaf, 0xc1, + 0x0c, 0x4e, 0x9f, 0xd4, 0xa9, 0x17, 0x59, 0x9c, 0xd3, 0xa1, 0x12, 0x45, 0x12, 0x87, 0x59, 0xc1, + 0xa8, 0x4d, 0x75, 0x51, 0x52, 0x78, 0x2c, 0x14, 0x19, 0x7d, 0x4d, 0x59, 0x9c, 0x64, 0x56, 0xda, + 0xcb, 0x75, 0x79, 0x91, 0x92, 0x38, 0x6c, 0xd9, 0x8b, 0xa9, 0x12, 0x1d, 0x19, 0xcd, 0x64, 0x63, + 0x9a, 0xf5, 0x8f, 0xf1, 0x21, 0x71, 0x98, 0x7f, 0x63, 0x9a, 0xf6, 0x8d, 0x4e, 0xca, 0x19, 0xa8, + 0x59, 0xf4, 0x8b, 0xc9, 0x29, 0xa3, 0x4b, 0xa8, 0x36, 0x8f, 0x45, 0x15, 0x14, 0x54, 0xd5, 0xc9, + 0xd5, 0x2a, 0x4d, 0xae, 0x65, 0x98, 0x41, 0x3d, 0x85, 0xe4, 0xa4, 0x30, 0xd5, 0xd8, 0x98, 0x29, + 0xc6, 0x86, 0x8a, 0xee, 0xec, 0x08, 0x74, 0xe7, 0x32, 0x74, 0x7f, 0xa5, 0x03, 0x6c, 0x90, 0xc0, + 0x0e, 0xe3, 0x21, 0xf1, 0x63, 0x36, 0x3c, 0x27, 0xa3, 0x32, 0x70, 0x15, 0x9e, 0x9c, 0x53, 0x74, + 0x35, 0xa7, 0x18, 0x30, 0xc1, 0x1d, 0x8e, 0x68, 0xf2, 0xdf, 0xcc, 0x99, 0x81, 0x1d, 0xa2, 0x36, + 0x0c, 0xf2, 0x8c, 0x66, 0x39, 0x83, 0x86, 0x8e, 0xc8, 0x32, 0x75, 0x0b, 0x09, 0x36, 0xf9, 0xf3, + 0xfe, 0x78, 0x8d, 0xde, 0xc0, 0x1c, 0xa0, 0x72, 0x4f, 0xdc, 0x56, 0x5c, 0x82, 0x76, 0x94, 0xec, + 0xe4, 0x83, 0xdb, 0x4c, 0x86, 0x22, 0xdc, 0x4b, 0x7c, 0xe6, 0x54, 0xdc, 0x6f, 0xb0, 0x46, 0x98, + 0x96, 0x72, 0x46, 0xb1, 0xce, 0x30, 0x3f, 0xd4, 0xa1, 0xbd, 0x15, 0x0e, 0x6c, 0xdf, 0xfd, 0x76, + 0x56, 0x4f, 0x9f, 0x2a, 0x3d, 0x2f, 0x41, 0x8b, 0xf8, 0x03, 0xcf, 0x8d, 0xf6, 0x36, 0x73, 0xbf, + 0xc9, 0x2c, 0xd9, 0xd9, 0x13, 0xa3, 0x12, 0x78, 0x5d, 0x49, 0xe0, 0x0b, 0xd0, 0x18, 0xd2, 0x1d, + 0xd7, 0x4b, 0xe3, 0x5e, 0x50, 0x3c, 0xe6, 0x89, 0x47, 0x78, 0x26, 0xcf, 0x62, 0x3e, 0x65, 0xe4, + 0x49, 0x7d, 0xaa, 0x32, 0xa9, 0x37, 0xe5, 0xa4, 0xae, 0x3a, 0x1e, 0x4a, 0x8e, 0x47, 0x77, 0xb5, + 0x32, 0x77, 0xfd, 0x41, 0x83, 0x76, 0xee, 0x6e, 0xac, 0x6a, 0x47, 0xba, 0xab, 0x18, 0x81, 0x7a, + 0x45, 0x04, 0x66, 0x71, 0x53, 0x93, 0xe3, 0x86, 0x45, 0x1a, 0x8d, 0x5c, 0x69, 0x6b, 0x91, 0xd1, + 0xac, 0x37, 0x8f, 0xd8, 0x92, 0xb3, 0x90, 0x92, 0x36, 0x92, 0x0d, 0x65, 0x23, 0x59, 0xcc, 0xa3, + 0xbf, 0xd5, 0xe0, 0x3c, 0x43, 0xb9, 0x34, 0x8c, 0x2d, 0x68, 0xd3, 0x42, 0x24, 0x88, 0x44, 0xf3, + 0x6c, 0x45, 0xa2, 0x28, 0x06, 0x8d, 0x55, 0x12, 0x66, 0x0a, 0x9d, 0x42, 0x27, 0x22, 0xf3, 0x54, + 0x29, 0x2c, 0xda, 0x63, 0x95, 0x84, 0xcd, 0xdf, 0x69, 0xd0, 0xc6, 0xd4, 0x26, 0xcd, 0xf3, 0x33, + 0x37, 0xfb, 0x3d, 0x38, 0x5f, 0xec, 0xf9, 0x96, 0x1b, 0xc5, 0x1d, 0x7d, 0xa9, 0x36, 0xae, 0xe9, + 0x95, 0x0a, 0xd8, 0x5c, 0x7b, 0x7a, 0x3b, 0xf1, 0xbc, 0x2e, 0x89, 0x22, 0x7b, 0x40, 0xd6, 0x8e, + 0x7a, 0xe4, 0x80, 0x7d, 0xb0, 0xc8, 0xc1, 0xc8, 0x18, 0x62, 0x75, 0x0e, 0x2f, 0x14, 0x5c, 0xea, + 0x67, 0x21, 0x24, 0xb3, 0xd8, 0xb4, 0x8a, 0x50, 0x4f, 0xa7, 0xb6, 0x54, 0x63, 0x29, 0x54, 0x90, + 0xc6, 0xb7, 0x60, 0x9a, 0xe7, 0x70, 0xd1, 0x4d, 0x67, 0x82, 0x0f, 0xe0, 0xf5, 0xca, 0xaa, 0xa1, + 0xd2, 0x2a, 0xac, 0x06, 0x04, 0xfd, 0xa6, 0x1f, 0x87, 0x47, 0x96, 0xa2, 0x71, 0xf1, 0x7d, 0x98, + 0x2f, 0x35, 0x31, 0xda, 0x50, 0xdb, 0x27, 0x47, 0x62, 0x1c, 0xec, 0xa7, 0xf1, 0x12, 0xd4, 0x0f, + 0xd9, 0x16, 0x51, 0xa0, 0xbf, 0x58, 0x61, 0x81, 0xb0, 0xd9, 0xc2, 0x86, 0xaf, 0xea, 0x5f, 0xd1, + 0xcc, 0x67, 0xb3, 0x81, 0xc9, 0x63, 0xd4, 0x94, 0x31, 0x9a, 0x6f, 0x43, 0xab, 0x1b, 0x0d, 0x36, + 0xec, 0xd8, 0xe6, 0x0d, 0x5f, 0x87, 0xd6, 0x30, 0x27, 0x79, 0xe3, 0xea, 0xfe, 0x84, 0x90, 0x25, + 0x37, 0x37, 0xff, 0xa2, 0x43, 0xa7, 0xda, 0x15, 0x51, 0xc0, 0x6c, 0x20, 0x61, 0xb8, 0x4e, 0x1d, + 0xc2, 0x87, 0x56, 0xb7, 0x52, 0x92, 0x61, 0x47, 0xc2, 0x90, 0xe5, 0x30, 0x51, 0x64, 0x23, 0x65, + 0xac, 0xc0, 0x84, 0x97, 0xc2, 0x72, 0xbc, 0x15, 0xbc, 0x9d, 0x31, 0x84, 0x36, 0xf7, 0xae, 0x34, + 0x20, 0x81, 0xd9, 0xea, 0xd8, 0x98, 0x45, 0x01, 0x82, 0x26, 0xe9, 0x40, 0xe0, 0x4a, 0xaa, 0x17, + 0xfb, 0xf0, 0x54, 0x65, 0xd3, 0x0a, 0x00, 0xbf, 0xa4, 0x02, 0x78, 0x71, 0xf4, 0x50, 0x8a, 0x20, + 0x06, 0x60, 0x5c, 0x27, 0x71, 0xd7, 0x7e, 0xb0, 0xea, 0x3b, 0x5d, 0xd7, 0xef, 0x91, 0x03, 0x16, + 0xed, 0x4b, 0xd0, 0x12, 0x1b, 0xfe, 0x0c, 0xa6, 0xa6, 0x25, 0xb3, 0x46, 0x9e, 0x03, 0x14, 0xe6, + 0x43, 0xad, 0x34, 0x1f, 0xcc, 0xab, 0x30, 0x2d, 0x77, 0xc7, 0x93, 0x88, 0xfd, 0xa0, 0x47, 0x0e, + 0xf8, 0x80, 0x66, 0x2c, 0x41, 0x71, 0x3e, 0x6f, 0x21, 0xf6, 0x06, 0x82, 0x32, 0xff, 0xac, 0xc3, + 0xb9, 0x92, 0xc9, 0x51, 0xf0, 0xb0, 0x7a, 0xe4, 0x78, 0xa9, 0x8d, 0x8a, 0x97, 0x09, 0x25, 0x5e, + 0xf6, 0x61, 0x1e, 0x41, 0x92, 0xba, 0xee, 0xd4, 0x79, 0x00, 0xbc, 0x51, 0x55, 0xaa, 0x97, 0x8d, + 0x14, 0xd8, 0x4b, 0x5c, 0x04, 0xbf, 0xac, 0x77, 0x91, 0xc0, 0x42, 0x75, 0xe3, 0x0a, 0xf8, 0x5f, + 0x51, 0xe1, 0xff, 0x6c, 0x15, 0xfc, 0xb2, 0x25, 0x12, 0xfe, 0x07, 0x30, 0xc7, 0x16, 0xd5, 0x1e, + 0xf1, 0x9d, 0x6e, 0x34, 0xe0, 0x8e, 0x5c, 0x82, 0x16, 0xca, 0x77, 0xa3, 0x41, 0xbe, 0x75, 0x93, + 0x58, 0xac, 0x45, 0xdf, 0x73, 0xd9, 0xe2, 0xc9, 0x5b, 0x88, 0x45, 0x4f, 0x62, 0xb1, 0x04, 0x19, + 0x11, 0x71, 0x36, 0xc2, 0xbc, 0x5b, 0xb3, 0x32, 0xda, 0xfc, 0xa0, 0x01, 0x93, 0x22, 0x1a, 0x79, + 0x52, 0x64, 0xbb, 0xe5, 0x6c, 0x59, 0x45, 0x0a, 0xeb, 0xda, 0xfe, 0x61, 0x1e, 0x5e, 0x48, 0xc9, + 0x07, 0x53, 0x35, 0xf5, 0x60, 0xaa, 0x60, 0xd3, 0x44, 0xd9, 0xa6, 0xc2, 0xb8, 0xea, 0xe5, 0x71, + 0xb1, 0x32, 0x8e, 0x57, 0x36, 0xdb, 0x9e, 0x1d, 0xef, 0xd2, 0x70, 0x28, 0x36, 0xbf, 0x75, 0xab, + 0xc4, 0x67, 0xa5, 0x23, 0xf2, 0xb2, 0xda, 0x1f, 0x53, 0x78, 0x81, 0xcb, 0x2a, 0x6d, 0xe4, 0xa4, + 0x7b, 0x00, 0x3c, 0xa1, 0x50, 0x99, 0x68, 0x5b, 0x14, 0xb9, 0xd4, 0xe7, 0x55, 0x28, 0x96, 0xfa, + 0x32, 0x8b, 0x8d, 0x7c, 0x18, 0x0d, 0xae, 0x85, 0x74, 0x28, 0xce, 0x29, 0x52, 0x92, 0x8f, 0x9c, + 0xfa, 0x71, 0x5a, 0xc1, 0xe2, 0xd9, 0x84, 0xcc, 0x62, 0xb2, 0x82, 0xe4, 0x75, 0xfe, 0xb4, 0x95, + 0x92, 0x2c, 0x96, 0x22, 0x72, 0x20, 0x8a, 0x77, 0xf6, 0x53, 0x41, 0x6e, 0x4e, 0x45, 0xae, 0x50, + 0x8d, 0xb5, 0xf9, 0x57, 0xb9, 0x1a, 0xcb, 0x4b, 0x9c, 0x79, 0xa5, 0xc4, 0x59, 0x85, 0x49, 0x1a, + 0xb0, 0xe9, 0x1f, 0x75, 0x0c, 0x3e, 0x5d, 0x9e, 0x1f, 0xbd, 0x40, 0xad, 0x6c, 0x61, 0x4b, 0x9c, + 0x18, 0xa9, 0x9c, 0x71, 0x0b, 0xe6, 0xe8, 0xee, 0xae, 0xe7, 0xfa, 0x64, 0x3b, 0x89, 0xf6, 0xf8, + 0x26, 0xf9, 0x1c, 0x0f, 0x76, 0xb3, 0xaa, 0x88, 0x50, 0x5b, 0x5a, 0x45, 0x51, 0x56, 0xf9, 0xd9, + 0x31, 0x6e, 0x72, 0xf8, 0x02, 0x77, 0x9e, 0x2f, 0x70, 0x0a, 0x8f, 0x9f, 0xf0, 0x49, 0x0b, 0xfd, + 0x53, 0xdc, 0x71, 0x32, 0x6b, 0xf1, 0x55, 0x98, 0x96, 0x8d, 0xad, 0x98, 0x98, 0xe7, 0xe5, 0x89, + 0x39, 0x25, 0xcf, 0xbb, 0x1f, 0x69, 0x30, 0x57, 0x30, 0x93, 0xb5, 0x8e, 0xdd, 0xd8, 0x23, 0x42, + 0x03, 0x12, 0x6c, 0xa7, 0xe3, 0x90, 0xa8, 0x2f, 0x26, 0x02, 0xff, 0x2d, 0x6a, 0xc6, 0x5a, 0x76, + 0xd6, 0x65, 0xc2, 0xb4, 0xbb, 0xd5, 0x63, 0x8a, 0x7a, 0x34, 0xf1, 0x9d, 0xec, 0xb8, 0x5b, 0xe2, + 0xf1, 0xf3, 0xc8, 0xad, 0xde, 0x9a, 0xed, 0x0c, 0x08, 0x5e, 0x7e, 0xd4, 0xb9, 0x4d, 0x2a, 0xd3, + 0x74, 0x60, 0xea, 0xb6, 0x1b, 0x44, 0xeb, 0x74, 0x38, 0x64, 0x70, 0x3a, 0x24, 0x66, 0x35, 0xb9, + 0xc6, 0x07, 0x2f, 0x28, 0xe6, 0x19, 0x87, 0xec, 0xda, 0x89, 0x17, 0xb3, 0xa6, 0xe9, 0xf4, 0x97, + 0x58, 0xfc, 0xd4, 0x35, 0xa2, 0xfe, 0x06, 0x4a, 0xa3, 0x9d, 0x12, 0xc7, 0xfc, 0x93, 0x0e, 0x6d, + 0xbe, 0xba, 0xad, 0xf3, 0xe0, 0x71, 0xb8, 0xd0, 0x15, 0xa8, 0xf3, 0xc9, 0x2c, 0xaa, 0xc3, 0xe3, + 0x4f, 0x3f, 0xb0, 0xa9, 0x71, 0x15, 0x1a, 0x34, 0xe0, 0x25, 0x25, 0x2e, 0x7d, 0xcf, 0x8d, 0x12, + 0x52, 0x0f, 0xb8, 0x2d, 0x21, 0x65, 0x5c, 0x03, 0x18, 0xe6, 0x15, 0x24, 0x16, 0x02, 0xe3, 0xea, + 0x90, 0x24, 0x99, 0x73, 0xb3, 0x1c, 0x97, 0x9d, 0x72, 0xd7, 0x2c, 0x95, 0x69, 0x6c, 0xc2, 0x2c, + 0x37, 0x7b, 0x2b, 0x3d, 0x06, 0xe3, 0x18, 0x8c, 0xdf, 0x63, 0x41, 0xda, 0xfc, 0xa9, 0x26, 0xdc, + 0xc8, 0xbe, 0xf6, 0x08, 0xfa, 0x3e, 0x77, 0x89, 0x76, 0x2a, 0x97, 0x2c, 0xc2, 0xd4, 0x30, 0x91, + 0x4e, 0xe5, 0x6a, 0x56, 0x46, 0xe7, 0x10, 0xd5, 0xc6, 0x86, 0xc8, 0xfc, 0x99, 0x06, 0x9d, 0xb7, + 0xa8, 0xeb, 0xf3, 0x0f, 0xab, 0x41, 0xe0, 0x89, 0xcb, 0x90, 0x53, 0x63, 0xfe, 0x35, 0x68, 0xda, + 0xa8, 0xc6, 0x8f, 0x05, 0xec, 0x63, 0x9c, 0xb4, 0xe5, 0x32, 0xd2, 0xa1, 0x49, 0x4d, 0x3e, 0x34, + 0x31, 0x3f, 0xd2, 0x60, 0x16, 0x9d, 0xf2, 0x4e, 0xe2, 0xc6, 0xa7, 0xb6, 0x6f, 0x0d, 0xa6, 0x0e, + 0x12, 0x37, 0x3e, 0x45, 0x54, 0x66, 0x72, 0xe5, 0x78, 0xaa, 0x55, 0xc4, 0x93, 0xf9, 0x4b, 0x0d, + 0x2e, 0x14, 0xdd, 0xba, 0xda, 0xef, 0x93, 0xe0, 0x51, 0x4e, 0x29, 0xe5, 0xd0, 0x68, 0xa2, 0x70, + 0x68, 0x54, 0x69, 0xb2, 0x45, 0xee, 0x91, 0xfe, 0xe3, 0x6b, 0xf2, 0x77, 0x75, 0xf8, 0xff, 0xeb, + 0xd9, 0xc4, 0xbb, 0x1d, 0xda, 0x7e, 0xb4, 0x4b, 0xc2, 0xf0, 0x11, 0xda, 0x7b, 0x0b, 0x66, 0x7c, + 0x72, 0x3f, 0xb7, 0x49, 0x4c, 0xc7, 0x71, 0xd5, 0xa8, 0xc2, 0xe3, 0xad, 0x5d, 0xe6, 0x7f, 0x34, + 0x68, 0xa3, 0x9e, 0xb7, 0xdd, 0xfe, 0xfe, 0x23, 0x1c, 0xfc, 0x26, 0xcc, 0xee, 0x73, 0x0b, 0x18, + 0x75, 0x8a, 0x65, 0xbb, 0x20, 0x3d, 0xe6, 0xf0, 0x3f, 0xd6, 0x60, 0x3e, 0xbd, 0x83, 0x3d, 0x74, + 0x1f, 0x65, 0xb0, 0x6e, 0xc3, 0x1c, 0x5e, 0x21, 0x9e, 0xd6, 0x01, 0x45, 0xf1, 0x31, 0x3d, 0xf0, + 0x1b, 0x0d, 0xe6, 0x50, 0xd3, 0x9b, 0x7e, 0x4c, 0xc2, 0x53, 0x8f, 0xff, 0x06, 0xb4, 0x88, 0x1f, + 0x87, 0xb6, 0x7f, 0x9a, 0x15, 0x52, 0x16, 0x1d, 0x73, 0x91, 0xfc, 0x48, 0x03, 0x83, 0xab, 0xda, + 0x70, 0xa3, 0xa1, 0x1b, 0x45, 0x8f, 0x10, 0xba, 0xf1, 0x0c, 0xfe, 0xb1, 0x0e, 0xe7, 0x25, 0x2d, + 0xdd, 0x24, 0x7e, 0xdc, 0x4d, 0x36, 0x36, 0xa0, 0xc9, 0x6a, 0x04, 0xf9, 0x36, 0x72, 0xdc, 0x8e, + 0x72, 0x41, 0x56, 0xc5, 0x72, 0xa2, 0x47, 0xfa, 0xd4, 0x77, 0x22, 0x5e, 0x1c, 0xcd, 0x58, 0x0a, + 0x8f, 0x2d, 0x43, 0x8b, 0x92, 0x9a, 0x75, 0xdb, 0xef, 0x13, 0xef, 0x89, 0x71, 0x91, 0xf9, 0x0b, + 0x0d, 0x66, 0xb1, 0xc9, 0xe3, 0x3f, 0x64, 0x96, 0xeb, 0x31, 0x90, 0x3f, 0x35, 0x28, 0xb1, 0xf0, + 0x5a, 0x90, 0xb4, 0xc8, 0x75, 0xf5, 0xe3, 0x1b, 0x5a, 0x37, 0xa0, 0xd5, 0xdf, 0xb3, 0xfd, 0xc1, + 0xa9, 0x82, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x5a, 0x3e, 0x80, 0x5f, 0xc7, 0x4f, 0x7c, 0xf8, 0x2f, + 0x17, 0x86, 0x72, 0xec, 0x6b, 0x83, 0x87, 0x73, 0xfa, 0x3e, 0xcc, 0xe3, 0xad, 0xaf, 0x54, 0x13, + 0x1a, 0x1d, 0x98, 0xb4, 0x1d, 0x3c, 0x86, 0xd0, 0xb8, 0x50, 0x4a, 0xaa, 0xf7, 0xf9, 0xe2, 0x75, + 0x58, 0x7e, 0x9f, 0x7f, 0x11, 0xc0, 0x76, 0x9c, 0xf7, 0x68, 0xe8, 0xb8, 0x7e, 0x5a, 0xe0, 0x4b, + 0x1c, 0xf3, 0x2d, 0x98, 0xbe, 0x16, 0xd2, 0xe1, 0x6d, 0xe9, 0xfe, 0xf6, 0xd8, 0x1b, 0x66, 0xf9, + 0xee, 0x57, 0x57, 0xef, 0x7e, 0xcd, 0x6f, 0xc2, 0x53, 0x25, 0xc3, 0xb9, 0xb3, 0xd6, 0xf1, 0x5a, + 0x3a, 0xed, 0x44, 0x84, 0x4c, 0xd5, 0xb9, 0x9c, 0x6c, 0x8b, 0xa5, 0x08, 0x99, 0x1f, 0x68, 0xf0, + 0x4c, 0x49, 0xfd, 0x6a, 0x10, 0x84, 0xf4, 0x50, 0x60, 0x72, 0x16, 0xdd, 0xa8, 0xc5, 0xaf, 0x5e, + 0x2c, 0x7e, 0x2b, 0x8d, 0x50, 0x0a, 0xf6, 0x4f, 0xc0, 0x88, 0x9f, 0x6b, 0x30, 0x27, 0x8c, 0x70, + 0x1c, 0xd1, 0xed, 0x2b, 0xd0, 0xc0, 0x27, 0x2d, 0xa2, 0xc3, 0x67, 0x2a, 0x3b, 0x4c, 0x9f, 0xe2, + 0x58, 0xa2, 0x71, 0x39, 0x22, 0xf5, 0xaa, 0x19, 0xf5, 0xd5, 0x2c, 0xd8, 0xc7, 0x7e, 0x74, 0x22, + 0x04, 0xcc, 0xaf, 0xa7, 0xc1, 0xbc, 0x41, 0x3c, 0x72, 0x96, 0x3e, 0x32, 0xef, 0xc0, 0x2c, 0x7f, + 0x5f, 0x93, 0xfb, 0xe0, 0x4c, 0xd4, 0xbe, 0x07, 0x6d, 0xae, 0xf6, 0xcc, 0xed, 0xcd, 0x66, 0x07, + 0xf3, 0x8f, 0xbc, 0x94, 0x9c, 0x89, 0xf6, 0x2f, 0xc2, 0xb9, 0xd4, 0xf7, 0xf8, 0x2e, 0x15, 0x75, + 0x8f, 0xb8, 0xa7, 0x33, 0x5f, 0x82, 0x85, 0x75, 0xea, 0x1f, 0x92, 0x30, 0x52, 0x9e, 0xb2, 0xa2, + 0x84, 0x32, 0xf9, 0x05, 0x65, 0xde, 0x83, 0x45, 0x59, 0xa2, 0x47, 0xe2, 0xed, 0xd0, 0x3d, 0x94, + 0xa4, 0xc4, 0x01, 0xb5, 0xa6, 0x1c, 0x50, 0xe7, 0x07, 0xda, 0xba, 0x72, 0xa0, 0x7d, 0x01, 0x9a, + 0x6e, 0x24, 0x14, 0xf0, 0xa0, 0x9a, 0xb2, 0x72, 0x86, 0x69, 0xc3, 0x3c, 0xba, 0x5f, 0x5c, 0x18, + 0xf1, 0x2e, 0x16, 0x61, 0x0a, 0x63, 0x2a, 0xeb, 0x24, 0xa3, 0x47, 0x5e, 0xbf, 0x8c, 0xbc, 0x6c, + 0x34, 0x7b, 0x30, 0x2f, 0x1e, 0xd5, 0x6c, 0xdb, 0x03, 0xd7, 0xc7, 0x45, 0xf6, 0x22, 0x40, 0x60, + 0x0f, 0xd2, 0x07, 0x78, 0x78, 0x6d, 0x26, 0x71, 0xd8, 0xf7, 0x68, 0x8f, 0xde, 0x17, 0xdf, 0x75, + 0xfc, 0x9e, 0x73, 0xcc, 0x77, 0xc1, 0xb0, 0x48, 0x14, 0x50, 0x3f, 0x22, 0x92, 0xd6, 0x25, 0x68, + 0xad, 0x27, 0x61, 0x48, 0x7c, 0xd6, 0x55, 0xfa, 0xc2, 0x4c, 0x66, 0x31, 0xbd, 0xbd, 0x5c, 0x2f, + 0x1e, 0xb1, 0x4b, 0x1c, 0xf3, 0x27, 0x35, 0x68, 0xf6, 0xdc, 0x81, 0x6f, 0x7b, 0x16, 0x39, 0x30, + 0x5e, 0x87, 0x06, 0x6e, 0x59, 0x44, 0xa4, 0x54, 0x1d, 0xf9, 0x62, 0x6b, 0xdc, 0x9b, 0x59, 0xe4, + 0xe0, 0xc6, 0xff, 0x59, 0x42, 0xc6, 0x78, 0x27, 0x7d, 0x87, 0x79, 0x13, 0x8f, 0xa0, 0x44, 0xfe, + 0xfa, 0xfc, 0x09, 0x4a, 0x44, 0x6b, 0xd4, 0xa5, 0x6a, 0x60, 0x06, 0xf5, 0x79, 0x49, 0x23, 0x96, + 0x87, 0xd1, 0x06, 0x61, 0xe5, 0x23, 0x0c, 0x42, 0x19, 0x26, 0x6d, 0xf3, 0x43, 0x1a, 0x91, 0xa9, + 0x47, 0x4b, 0xe3, 0x59, 0x8e, 0x90, 0x46, 0x19, 0x26, 0xbd, 0x97, 0xf8, 0x83, 0x3b, 0x81, 0x38, + 0x3b, 0x1c, 0x2d, 0x7d, 0x83, 0x37, 0x13, 0xd2, 0x28, 0xc3, 0xa4, 0x43, 0xbe, 0x78, 0x73, 0xa7, + 0x1f, 0x27, 0x8d, 0x6b, 0xbc, 0x90, 0x46, 0x99, 0xb5, 0x26, 0x4c, 0x06, 0xf6, 0x91, 0x47, 0x6d, + 0xc7, 0xfc, 0xb0, 0x06, 0x90, 0x36, 0x8c, 0x78, 0xa1, 0xa3, 0x40, 0xb4, 0x7c, 0x22, 0x44, 0x81, + 0x77, 0x24, 0x81, 0xd4, 0xab, 0x06, 0xe9, 0x0b, 0xe3, 0x82, 0x84, 0xda, 0x0a, 0x30, 0x5d, 0x2d, + 0xc0, 0xb4, 0x7c, 0x22, 0x4c, 0xc2, 0x28, 0x01, 0xd4, 0xd5, 0x02, 0x50, 0xcb, 0x27, 0x02, 0x25, + 0xe4, 0x05, 0x54, 0x57, 0x0b, 0x50, 0x2d, 0x9f, 0x08, 0x95, 0x90, 0x17, 0x60, 0x5d, 0x2d, 0x80, + 0xb5, 0x7c, 0x22, 0x58, 0x42, 0xbe, 0x0c, 0xd7, 0xdf, 0x74, 0x98, 0xe5, 0x2e, 0xc3, 0x5b, 0x58, + 0x7f, 0x97, 0x96, 0xdf, 0x27, 0x6b, 0x15, 0xef, 0x93, 0x8d, 0x17, 0x61, 0x1e, 0x19, 0x44, 0xba, + 0x2e, 0xd1, 0xf9, 0x75, 0x49, 0xf9, 0x03, 0xbf, 0x20, 0x4a, 0xa2, 0x98, 0x0e, 0x37, 0xec, 0xd8, + 0x4e, 0x8b, 0xaf, 0x9c, 0x23, 0x5f, 0xdf, 0x4d, 0x94, 0xde, 0x95, 0x87, 0x94, 0x0e, 0xb3, 0x7b, + 0x39, 0x41, 0x31, 0x89, 0xd8, 0x1d, 0x12, 0x9a, 0xc4, 0x62, 0x99, 0x48, 0x49, 0x7c, 0x47, 0xe5, + 0xb8, 0x36, 0xbf, 0xf4, 0x12, 0x8f, 0x8c, 0x32, 0x06, 0x5f, 0xd9, 0xf2, 0x4b, 0x3c, 0xf1, 0xee, + 0x3b, 0xe7, 0x8c, 0x71, 0xe1, 0xc6, 0xff, 0x42, 0xe0, 0xc6, 0xae, 0xfc, 0xf8, 0xa8, 0x6e, 0x29, + 0x3c, 0xf3, 0x9f, 0x1a, 0x9c, 0xdb, 0xb6, 0xc3, 0xd8, 0xed, 0xbb, 0x81, 0xed, 0xc7, 0x5d, 0x12, + 0xdb, 0x7c, 0x9c, 0xca, 0x63, 0x4e, 0xed, 0xe1, 0x1e, 0x73, 0x6e, 0xc3, 0xdc, 0x40, 0xdd, 0x81, + 0x3c, 0xe4, 0xe6, 0xa1, 0x28, 0xae, 0xbc, 0x4c, 0xad, 0x3d, 0xf4, 0xcb, 0x54, 0xf3, 0xfb, 0x3a, + 0xcc, 0x15, 0x96, 0xd7, 0x63, 0x73, 0xd3, 0x2a, 0x80, 0x9b, 0x85, 0xda, 0x31, 0x07, 0xf4, 0x6a, + 0x3c, 0x5a, 0x92, 0x50, 0xd5, 0x6d, 0x5f, 0xed, 0xf4, 0xb7, 0x7d, 0x37, 0xa0, 0x15, 0xe4, 0x20, + 0x1d, 0xb3, 0x3f, 0xaa, 0x80, 0xd2, 0x92, 0x45, 0xcd, 0xf7, 0x61, 0xbe, 0xb4, 0x8a, 0xf1, 0x6b, + 0x3b, 0xba, 0x4f, 0xfc, 0xec, 0xda, 0x8e, 0x11, 0x52, 0x40, 0xeb, 0xc5, 0x80, 0xf6, 0xdc, 0x43, + 0xf9, 0x99, 0xbc, 0x20, 0xcd, 0x1f, 0xe8, 0xb0, 0x50, 0x9d, 0x81, 0x9e, 0x54, 0x77, 0xef, 0x40, + 0x67, 0xd4, 0x6a, 0x7f, 0x66, 0x5e, 0xcf, 0xa3, 0x3b, 0xcb, 0xd5, 0x4f, 0xaa, 0xbb, 0xcf, 0xa5, + 0xd1, 0x2d, 0xa5, 0x43, 0xf3, 0xd7, 0x99, 0x7f, 0xb2, 0x6a, 0xe4, 0x09, 0xf5, 0x8f, 0x71, 0x09, + 0xda, 0x38, 0x4c, 0xe9, 0x79, 0x08, 0x16, 0xb7, 0x25, 0x7e, 0xbe, 0x52, 0x48, 0xa5, 0xc1, 0x99, + 0xc5, 0xec, 0xef, 0xb5, 0x14, 0x93, 0xac, 0xc6, 0xfb, 0x54, 0x61, 0x92, 0x47, 0x9a, 0x54, 0xf8, + 0x48, 0x91, 0x96, 0xd5, 0x9e, 0xff, 0x8b, 0xb4, 0x93, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x04, 0x9a, + 0xdf, 0x81, 0x99, 0x0d, 0xe2, 0x75, 0xa3, 0x41, 0xfa, 0x7e, 0xf5, 0x4c, 0x37, 0x93, 0xc5, 0x57, + 0x7e, 0x13, 0xe5, 0x57, 0x7e, 0x6b, 0x30, 0x2b, 0x1b, 0x70, 0x9a, 0xf7, 0x99, 0x6b, 0x17, 0xbe, + 0xb1, 0xb8, 0x22, 0xfe, 0xb1, 0xfc, 0x5a, 0xc9, 0x89, 0x3b, 0x0d, 0xfe, 0x1f, 0xc7, 0x97, 0xff, + 0x1b, 0x00, 0x00, 0xff, 0xff, 0x58, 0x71, 0xf4, 0x85, 0x0a, 0x3d, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5bb67e7f0..a2db28fea 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -21,6 +21,10 @@ message GroupInfo{ string creatorUserID = 11; int32 groupType = 12; int32 needVerification = 13; + int32 lookMemberInfo =14; + int32 applyMemberFriend = 15; + uint32 notificationUpdateTime = 16; + string notificationUserID = 17; } message GroupInfoForSet{ @@ -31,6 +35,8 @@ message GroupInfoForSet{ string faceURL = 5; string ex = 6; google.protobuf.Int32Value needVerification = 7; + google.protobuf.Int32Value lookMemberInfo = 8; + google.protobuf.Int32Value applyMemberFriend = 9; } @@ -46,6 +52,7 @@ message GroupMemberFullInfo { string operatorUserID = 9; string ex = 10; uint32 muteEndTime = 11; + string inviterUserID = 12; } message PublicUserInfo{ diff --git a/script/check_all.sh b/script/check_all.sh index ccd62684b..14bca6c81 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -27,7 +27,7 @@ service_port_name=( switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do if [ ${switch} != "true" ]; then - if [ ${i} == "openImDemoPort"]; then + if [ ${i} == "openImDemoPort" ]; then continue fi fi