Merge branch 'superGroup' of github.com:OpenIMSDK/Open-IM-Server into superGroup

# Conflicts:
#	internal/api/group/group.go
pull/241/head
wangchuxiao 3 years ago
commit 4eeef63724

@ -1 +1 @@
Subproject commit 6fc6be9eb996aec24781a3905aeb2c9550a5a041
Subproject commit 588c9bb77b9bd89a9261964006568b8655233cb6

@ -32,6 +32,14 @@ func main() {
authRouterGroup.POST("/login", register.Login)
authRouterGroup.POST("/reset_password", register.ResetPassword)
}
demoRouterGroup := r.Group("/auth")
{
demoRouterGroup.POST("/code", register.SendVerificationCode)
demoRouterGroup.POST("/verify", register.Verify)
demoRouterGroup.POST("/password", register.SetPassword)
demoRouterGroup.POST("/login", register.Login)
demoRouterGroup.POST("/reset_password", register.ResetPassword)
}
defaultPorts := config.Config.Demo.Port
ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 42233 as port")
flag.Parse()

@ -16,7 +16,7 @@ services:
restart: always
mongodb:
image: mongo:4.0
image: mongo:latest
ports:
- 37017:27017
container_name: mongo

@ -523,8 +523,8 @@ func GetUserReqGroupApplicationList(c *gin.Context) {
}
log.NewInfo(req.OperationID, RpcResp)
resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, GroupRequestList: RpcResp.GroupRequestList}
log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp)
resp.Data = jsonData.JsonDataList(resp.GroupRequestList)
log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp)
c.JSON(http.StatusOK, resp)
}
@ -582,6 +582,21 @@ func GetGroupsInfo(c *gin.Context) {
c.JSON(http.StatusOK, resp)
}
//func transferGroupInfo(input []*open_im_sdk.GroupInfo) []*api.GroupInfoAlias {
// var result []*api.GroupInfoAlias
// for _, v := range input {
// t := &api.GroupInfoAlias{}
// utils.CopyStructFields(t, &v)
// if v.NeedVerification != nil {
// t.NeedVerification = v.NeedVerification.Value
// }
// result = append(result, t)
// }
// return result
//}
//process application
// @Summary 处理加群消息
// @Description 处理加群消息
// @Tags 群组相关
@ -761,12 +776,13 @@ func SetGroupInfo(c *gin.Context) {
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
return
}
req := &rpc.SetGroupInfoReq{GroupInfo: &open_im_sdk.GroupInfo{}}
utils.CopyStructFields(req.GroupInfo, &params)
req := &rpc.SetGroupInfoReq{GroupInfoForSet: &open_im_sdk.GroupInfoForSet{}}
utils.CopyStructFields(req.GroupInfoForSet, &params)
req.OperationID = params.OperationID
if params.NeedVerification != nil {
req.GroupInfo.NeedVerification = &wrappers.Int32Value{Value: *params.NeedVerification}
req.GroupInfoForSet.NeedVerification = &wrappers.Int32Value{Value: *params.NeedVerification}
log.NewInfo(req.OperationID, "NeedVerification ", req.GroupInfoForSet.NeedVerification)
}
var ok bool

@ -81,6 +81,7 @@ func GetSuperGroupsInfo(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
return
}
resp := api.GetSuperGroupsInfoResp{GetGroupInfoResp: api.GetGroupInfoResp{CommResp: api.CommResp{ErrCode: rpcResp.CommonResp.ErrCode, ErrMsg: rpcResp.CommonResp.ErrMsg}, GroupInfoList: rpcResp.GroupInfoList}}
resp.Data = jsonData.JsonDataList(resp.GroupInfoList)
log.NewInfo(req.OperationID, "GetGroupsInfo api return ", resp)

@ -553,13 +553,13 @@ func AlterGroupInfo(c *gin.Context) {
return
}
reqPb.OpUserID = c.MustGet("userID").(string)
reqPb.GroupInfo = &commonPb.GroupInfo{
reqPb.GroupInfoForSet = &commonPb.GroupInfoForSet{
GroupID: req.GroupID,
GroupName: req.GroupName,
Introduction: req.Introduction,
Notification: req.Notification,
FaceURL: req.ProfilePhoto,
GroupType: int32(req.GroupType),
// GroupType: int32(req.GroupType),
}
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID)
if etcdConn == nil {

@ -737,11 +737,14 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI
}
var groupInfo open_im_sdk.GroupInfo
cp.GroupDBCopyOpenIM(&groupInfo, groupInfoFromMysql)
//groupInfo.NeedVerification
groupInfo.NeedVerification = groupInfoFromMysql.NeedVerification
groupsInfoList = append(groupsInfoList, &groupInfo)
}
resp := pbGroup.GetGroupsInfoResp{GroupInfoList: groupsInfoList}
log.NewInfo(req.OperationID, "GetGroupsInfo rpc return ", resp.String())
log.NewInfo(req.OperationID, "GetGroupsInfo rpc return ", resp.String())
return &resp, nil
}
@ -1027,9 +1030,9 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool {
if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) {
return true
}
groupUserInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupInfo.GroupID, req.OpUserID)
groupUserInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupInfoForSet.GroupID, req.OpUserID)
if err != nil {
log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed, ", err.Error(), req.GroupInfo.GroupID, req.OpUserID)
log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed, ", err.Error(), req.GroupInfoForSet.GroupID, req.OpUserID)
return false
}
@ -1046,9 +1049,9 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
}
group, err := imdb.GetGroupInfoByGroupID(req.GroupInfo.GroupID)
group, err := imdb.GetGroupInfoByGroupID(req.GroupInfoForSet.GroupID)
if err != nil {
log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), req.GroupInfo.GroupID)
log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), req.GroupInfoForSet.GroupID)
return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, http.WrapError(constant.ErrDB)
}
@ -1063,28 +1066,28 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
notification := ""
introduction := ""
faceURL := ""
if group.GroupName != req.GroupInfo.GroupName && req.GroupInfo.GroupName != "" {
if group.GroupName != req.GroupInfoForSet.GroupName && req.GroupInfoForSet.GroupName != "" {
changedType = 1
groupName = req.GroupInfo.GroupName
groupName = req.GroupInfoForSet.GroupName
}
if group.Notification != req.GroupInfo.Notification && req.GroupInfo.Notification != "" {
if group.Notification != req.GroupInfoForSet.Notification && req.GroupInfoForSet.Notification != "" {
changedType = changedType | (1 << 1)
notification = req.GroupInfo.Notification
notification = req.GroupInfoForSet.Notification
}
if group.Introduction != req.GroupInfo.Introduction && req.GroupInfo.Introduction != "" {
if group.Introduction != req.GroupInfoForSet.Introduction && req.GroupInfoForSet.Introduction != "" {
changedType = changedType | (1 << 2)
introduction = req.GroupInfo.Introduction
introduction = req.GroupInfoForSet.Introduction
}
if group.FaceURL != req.GroupInfo.FaceURL && req.GroupInfo.FaceURL != "" {
if group.FaceURL != req.GroupInfoForSet.FaceURL && req.GroupInfoForSet.FaceURL != "" {
changedType = changedType | (1 << 3)
faceURL = req.GroupInfo.FaceURL
faceURL = req.GroupInfoForSet.FaceURL
}
if req.GroupInfo.NeedVerification != nil {
if req.GroupInfoForSet.NeedVerification != nil {
changedType = changedType | (1 << 4)
m := make(map[string]interface{})
m["need_verification"] = req.GroupInfo.NeedVerification.Value
if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfo.GroupID, m); err != nil {
m["need_verification"] = req.GroupInfoForSet.NeedVerification.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)
}
@ -1096,7 +1099,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
//}
//only administrators can set group information
var groupInfo db.Group
utils.CopyStructFields(&groupInfo, req.GroupInfo)
utils.CopyStructFields(&groupInfo, req.GroupInfoForSet)
err = imdb.SetGroupInfo(groupInfo)
if err != nil {
log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo)
@ -1104,11 +1107,11 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
}
log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}})
if changedType != 0 {
chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, groupName, notification, introduction, faceURL, req.GroupInfo.NeedVerification)
chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupInfoForSet.GroupID, groupName, notification, introduction, faceURL, req.GroupInfoForSet.NeedVerification)
}
if req.GroupInfo.Notification != "" {
if req.GroupInfoForSet.Notification != "" {
//get group member user id
getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: req.OperationID, GroupID: req.GroupInfo.GroupID}
getGroupMemberIDListFromCacheReq := &pbCache.GetGroupMemberIDListFromCacheReq{OperationID: req.OperationID, GroupID: req.GroupInfoForSet.GroupID}
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID)
if etcdConn == nil {
errMsg := req.OperationID + "getcdv3.GetConn == nil"
@ -1129,9 +1132,9 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf
conversation := pbConversation.Conversation{
OwnerUserID: req.OpUserID,
ConversationID: utils.GetConversationIDBySessionType(req.GroupInfo.GroupID, constant.GroupChatType),
ConversationID: utils.GetConversationIDBySessionType(req.GroupInfoForSet.GroupID, constant.GroupChatType),
ConversationType: constant.GroupChatType,
GroupID: req.GroupInfo.GroupID,
GroupID: req.GroupInfoForSet.GroupID,
}
conversationReq.Conversation = &conversation
conversationReq.OperationID = req.OperationID

@ -242,7 +242,9 @@ func GroupInfoSetNotification(operationID, opUserID, groupID string, groupName,
GroupInfoChangedTips.Group.Notification = notification
GroupInfoChangedTips.Group.Introduction = introduction
GroupInfoChangedTips.Group.FaceURL = faceURL
GroupInfoChangedTips.Group.NeedVerification = needVerification
if needVerification != nil {
GroupInfoChangedTips.Group.NeedVerification = needVerification.Value
}
if err := setOpUserInfo(opUserID, groupID, GroupInfoChangedTips.OpUser); err != nil {
log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID)

@ -128,6 +128,27 @@ type GetGroupInfoResp struct {
Data []map[string]interface{} `json:"data"`
}
//type GroupInfoAlias struct {
// open_im_sdk.GroupInfo
// NeedVerification int32 `protobuf:"bytes,13,opt,name=needVerification" json:"needVerification,omitempty"`
//}
//type GroupInfoAlias 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:"bytes,13,opt,name=needVerification" json:"needVerification,omitempty"`
//}
type ApplicationGroupResponseReq struct {
OperationID string `json:"operationID" binding:"required"`
GroupID string `json:"groupID" binding:"required"`

@ -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_f05abf5eae29d157, []int{0}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{1}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{2}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{3}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{4}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{5}
return fileDescriptor_group_40c147a29abb4e60, []int{5}
}
func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b)
@ -350,19 +350,19 @@ func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo {
}
type SetGroupInfoReq struct {
GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"`
OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
GroupInfoForSet *sdk_ws.GroupInfoForSet `protobuf:"bytes,1,opt,name=groupInfoForSet" json:"groupInfoForSet,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"`
OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
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_f05abf5eae29d157, []int{6}
return fileDescriptor_group_40c147a29abb4e60, []int{6}
}
func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b)
@ -382,9 +382,9 @@ func (m *SetGroupInfoReq) XXX_DiscardUnknown() {
var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo
func (m *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo {
func (m *SetGroupInfoReq) GetGroupInfoForSet() *sdk_ws.GroupInfoForSet {
if m != nil {
return m.GroupInfo
return m.GroupInfoForSet
}
return nil
}
@ -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_f05abf5eae29d157, []int{7}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{8}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{9}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{10}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{11}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{12}
return fileDescriptor_group_40c147a29abb4e60, []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_f05abf5eae29d157, []int{13}
return fileDescriptor_group_40c147a29abb4e60, []int{13}
}
func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b)
@ -771,7 +771,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_f05abf5eae29d157, []int{14}
return fileDescriptor_group_40c147a29abb4e60, []int{14}
}
func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b)
@ -830,7 +830,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_f05abf5eae29d157, []int{15}
return fileDescriptor_group_40c147a29abb4e60, []int{15}
}
func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b)
@ -873,7 +873,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_f05abf5eae29d157, []int{16}
return fileDescriptor_group_40c147a29abb4e60, []int{16}
}
func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b)
@ -946,7 +946,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_f05abf5eae29d157, []int{17}
return fileDescriptor_group_40c147a29abb4e60, []int{17}
}
func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b)
@ -986,7 +986,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_f05abf5eae29d157, []int{18}
return fileDescriptor_group_40c147a29abb4e60, []int{18}
}
func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b)
@ -1038,7 +1038,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_f05abf5eae29d157, []int{19}
return fileDescriptor_group_40c147a29abb4e60, []int{19}
}
func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b)
@ -1080,7 +1080,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_f05abf5eae29d157, []int{20}
return fileDescriptor_group_40c147a29abb4e60, []int{20}
}
func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b)
@ -1149,7 +1149,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_f05abf5eae29d157, []int{21}
return fileDescriptor_group_40c147a29abb4e60, []int{21}
}
func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b)
@ -1211,7 +1211,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_f05abf5eae29d157, []int{22}
return fileDescriptor_group_40c147a29abb4e60, []int{22}
}
func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b)
@ -1272,7 +1272,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_f05abf5eae29d157, []int{23}
return fileDescriptor_group_40c147a29abb4e60, []int{23}
}
func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b)
@ -1328,7 +1328,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_f05abf5eae29d157, []int{24}
return fileDescriptor_group_40c147a29abb4e60, []int{24}
}
func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b)
@ -1395,7 +1395,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_f05abf5eae29d157, []int{25}
return fileDescriptor_group_40c147a29abb4e60, []int{25}
}
func (m *Id2Result) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Id2Result.Unmarshal(m, b)
@ -1442,7 +1442,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_f05abf5eae29d157, []int{26}
return fileDescriptor_group_40c147a29abb4e60, []int{26}
}
func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b)
@ -1496,7 +1496,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_f05abf5eae29d157, []int{27}
return fileDescriptor_group_40c147a29abb4e60, []int{27}
}
func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b)
@ -1550,7 +1550,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_f05abf5eae29d157, []int{28}
return fileDescriptor_group_40c147a29abb4e60, []int{28}
}
func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b)
@ -1606,7 +1606,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_f05abf5eae29d157, []int{29}
return fileDescriptor_group_40c147a29abb4e60, []int{29}
}
func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b)
@ -1674,7 +1674,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_f05abf5eae29d157, []int{30}
return fileDescriptor_group_40c147a29abb4e60, []int{30}
}
func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b)
@ -1728,7 +1728,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_f05abf5eae29d157, []int{31}
return fileDescriptor_group_40c147a29abb4e60, []int{31}
}
func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b)
@ -1782,7 +1782,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_f05abf5eae29d157, []int{32}
return fileDescriptor_group_40c147a29abb4e60, []int{32}
}
func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b)
@ -1836,7 +1836,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_f05abf5eae29d157, []int{33}
return fileDescriptor_group_40c147a29abb4e60, []int{33}
}
func (m *CMSGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CMSGroup.Unmarshal(m, b)
@ -1890,7 +1890,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_f05abf5eae29d157, []int{34}
return fileDescriptor_group_40c147a29abb4e60, []int{34}
}
func (m *GetGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupReq.Unmarshal(m, b)
@ -1944,7 +1944,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_f05abf5eae29d157, []int{35}
return fileDescriptor_group_40c147a29abb4e60, []int{35}
}
func (m *GetGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupResp.Unmarshal(m, b)
@ -1997,7 +1997,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_f05abf5eae29d157, []int{36}
return fileDescriptor_group_40c147a29abb4e60, []int{36}
}
func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b)
@ -2044,7 +2044,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_f05abf5eae29d157, []int{37}
return fileDescriptor_group_40c147a29abb4e60, []int{37}
}
func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b)
@ -2097,7 +2097,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_f05abf5eae29d157, []int{38}
return fileDescriptor_group_40c147a29abb4e60, []int{38}
}
func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b)
@ -2144,7 +2144,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_f05abf5eae29d157, []int{39}
return fileDescriptor_group_40c147a29abb4e60, []int{39}
}
func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b)
@ -2195,7 +2195,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_f05abf5eae29d157, []int{40}
return fileDescriptor_group_40c147a29abb4e60, []int{40}
}
func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b)
@ -2229,7 +2229,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_f05abf5eae29d157, []int{41}
return fileDescriptor_group_40c147a29abb4e60, []int{41}
}
func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b)
@ -2287,7 +2287,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_f05abf5eae29d157, []int{42}
return fileDescriptor_group_40c147a29abb4e60, []int{42}
}
func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b)
@ -2319,7 +2319,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_f05abf5eae29d157, []int{43}
return fileDescriptor_group_40c147a29abb4e60, []int{43}
}
func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b)
@ -2363,7 +2363,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_f05abf5eae29d157, []int{44}
return fileDescriptor_group_40c147a29abb4e60, []int{44}
}
func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b)
@ -2395,7 +2395,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_f05abf5eae29d157, []int{45}
return fileDescriptor_group_40c147a29abb4e60, []int{45}
}
func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b)
@ -2440,7 +2440,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_f05abf5eae29d157, []int{46}
return fileDescriptor_group_40c147a29abb4e60, []int{46}
}
func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b)
@ -2481,7 +2481,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_f05abf5eae29d157, []int{47}
return fileDescriptor_group_40c147a29abb4e60, []int{47}
}
func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b)
@ -2542,7 +2542,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_f05abf5eae29d157, []int{48}
return fileDescriptor_group_40c147a29abb4e60, []int{48}
}
func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b)
@ -2597,7 +2597,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_f05abf5eae29d157, []int{49}
return fileDescriptor_group_40c147a29abb4e60, []int{49}
}
func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b)
@ -2657,7 +2657,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_f05abf5eae29d157, []int{50}
return fileDescriptor_group_40c147a29abb4e60, []int{50}
}
func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b)
@ -2705,7 +2705,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_f05abf5eae29d157, []int{51}
return fileDescriptor_group_40c147a29abb4e60, []int{51}
}
func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b)
@ -2765,7 +2765,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_f05abf5eae29d157, []int{52}
return fileDescriptor_group_40c147a29abb4e60, []int{52}
}
func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b)
@ -2812,7 +2812,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_f05abf5eae29d157, []int{53}
return fileDescriptor_group_40c147a29abb4e60, []int{53}
}
func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b)
@ -2864,7 +2864,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_f05abf5eae29d157, []int{54}
return fileDescriptor_group_40c147a29abb4e60, []int{54}
}
func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b)
@ -2906,7 +2906,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_f05abf5eae29d157, []int{55}
return fileDescriptor_group_40c147a29abb4e60, []int{55}
}
func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b)
@ -2972,7 +2972,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_f05abf5eae29d157, []int{56}
return fileDescriptor_group_40c147a29abb4e60, []int{56}
}
func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b)
@ -3013,7 +3013,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_f05abf5eae29d157, []int{57}
return fileDescriptor_group_40c147a29abb4e60, []int{57}
}
func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b)
@ -3072,7 +3072,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_f05abf5eae29d157, []int{58}
return fileDescriptor_group_40c147a29abb4e60, []int{58}
}
func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b)
@ -3112,7 +3112,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_f05abf5eae29d157, []int{59}
return fileDescriptor_group_40c147a29abb4e60, []int{59}
}
func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b)
@ -3164,7 +3164,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_f05abf5eae29d157, []int{60}
return fileDescriptor_group_40c147a29abb4e60, []int{60}
}
func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b)
@ -3204,7 +3204,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_f05abf5eae29d157, []int{61}
return fileDescriptor_group_40c147a29abb4e60, []int{61}
}
func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b)
@ -3256,7 +3256,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_f05abf5eae29d157, []int{62}
return fileDescriptor_group_40c147a29abb4e60, []int{62}
}
func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b)
@ -3298,7 +3298,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_f05abf5eae29d157, []int{63}
return fileDescriptor_group_40c147a29abb4e60, []int{63}
}
func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b)
@ -3364,7 +3364,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_f05abf5eae29d157, []int{64}
return fileDescriptor_group_40c147a29abb4e60, []int{64}
}
func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b)
@ -3404,7 +3404,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_f05abf5eae29d157, []int{65}
return fileDescriptor_group_40c147a29abb4e60, []int{65}
}
func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b)
@ -3457,7 +3457,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_f05abf5eae29d157, []int{66}
return fileDescriptor_group_40c147a29abb4e60, []int{66}
}
func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b)
@ -3504,7 +3504,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_f05abf5eae29d157, []int{67}
return fileDescriptor_group_40c147a29abb4e60, []int{67}
}
func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b)
@ -3557,7 +3557,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_f05abf5eae29d157, []int{68}
return fileDescriptor_group_40c147a29abb4e60, []int{68}
}
func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b)
@ -3609,7 +3609,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_f05abf5eae29d157, []int{69}
return fileDescriptor_group_40c147a29abb4e60, []int{69}
}
func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b)
@ -3696,7 +3696,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_f05abf5eae29d157, []int{70}
return fileDescriptor_group_40c147a29abb4e60, []int{70}
}
func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b)
@ -4925,156 +4925,157 @@ var _Group_serviceDesc = grpc.ServiceDesc{
Metadata: "group/group.proto",
}
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_f05abf5eae29d157) }
func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_40c147a29abb4e60) }
var fileDescriptor_group_f05abf5eae29d157 = []byte{
// 2362 bytes of a gzipped FileDescriptorProto
var fileDescriptor_group_40c147a29abb4e60 = []byte{
// 2381 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0x1c, 0x49,
0x15, 0x57, 0xdb, 0x99, 0xd8, 0xf3, 0x6c, 0x67, 0xec, 0x72, 0xc6, 0x1e, 0x77, 0xbc, 0x59, 0xa7,
0x37, 0x2c, 0x11, 0x2c, 0xb6, 0x70, 0xa4, 0x08, 0x58, 0x44, 0x88, 0xff, 0x24, 0x9e, 0x24, 0xb6,
0x71, 0x3b, 0xcb, 0x21, 0x12, 0x0a, 0x9d, 0xe9, 0xf2, 0x68, 0xf0, 0x4c, 0x77, 0xbb, 0xab, 0xc7,
0x0e, 0x5c, 0x56, 0x5c, 0x56, 0x5a, 0x40, 0x02, 0x84, 0xc4, 0x09, 0x09, 0xf6, 0x04, 0x07, 0x0e,
0x1c, 0xe0, 0x8c, 0xf8, 0x18, 0x5c, 0xf9, 0x02, 0x7c, 0x02, 0x24, 0xd4, 0x55, 0xd5, 0xd5, 0xd5,
0x5d, 0xd5, 0xed, 0x49, 0x4f, 0xb2, 0xb9, 0xb4, 0x54, 0x55, 0xaf, 0xea, 0xfd, 0xde, 0xab, 0xf7,
0x5e, 0xd5, 0x7b, 0xd5, 0xb0, 0xd0, 0x0d, 0xfd, 0x61, 0xb0, 0x41, 0xbf, 0xeb, 0x41, 0xe8, 0x47,
0x3e, 0xaa, 0xd1, 0x86, 0x79, 0xeb, 0x30, 0xc0, 0xde, 0x8b, 0xf6, 0xfe, 0x46, 0x70, 0xda, 0xdd,
0xa0, 0x23, 0x1b, 0xc4, 0x3d, 0x7d, 0x71, 0x41, 0x36, 0x2e, 0x08, 0xa3, 0x34, 0xbf, 0x5a, 0x4c,
0x12, 0x3a, 0x41, 0x80, 0x43, 0x4e, 0x68, 0x7d, 0x0f, 0x60, 0xdb, 0x1f, 0x0c, 0x7c, 0xcf, 0xc6,
0x24, 0x40, 0x2d, 0x98, 0xda, 0x0d, 0xc3, 0x6d, 0xdf, 0xc5, 0x2d, 0x63, 0xcd, 0xb8, 0x53, 0xb3,
0x93, 0x26, 0x5a, 0x82, 0xab, 0xbb, 0x61, 0xb8, 0x4f, 0xba, 0xad, 0x89, 0x35, 0xe3, 0x4e, 0xdd,
0xe6, 0x2d, 0xeb, 0x31, 0xa0, 0x47, 0x31, 0xa8, 0x07, 0xae, 0xbb, 0x8f, 0x07, 0x2f, 0x71, 0xd8,
0xf6, 0x4e, 0xfc, 0x98, 0xfa, 0x13, 0x82, 0xc3, 0xf6, 0x0e, 0x5d, 0xa6, 0x6e, 0xf3, 0x16, 0x5a,
0x85, 0xba, 0xed, 0xf7, 0xf1, 0x53, 0x7c, 0x8e, 0xfb, 0x74, 0xa1, 0x9a, 0x9d, 0x76, 0x58, 0xff,
0x35, 0xe0, 0xda, 0x76, 0x88, 0x9d, 0x08, 0xd3, 0x25, 0x6d, 0x7c, 0x86, 0x1e, 0xc0, 0xb5, 0xb6,
0xd7, 0x8b, 0xd8, 0xd2, 0x4f, 0x7b, 0x24, 0x6a, 0x19, 0x6b, 0x93, 0x77, 0x66, 0x36, 0x57, 0xd6,
0x99, 0x5e, 0x54, 0xde, 0x76, 0x6e, 0x02, 0xfa, 0x0e, 0xd4, 0x29, 0x55, 0x3c, 0x48, 0x79, 0xce,
0x6c, 0xae, 0xae, 0x13, 0x1c, 0x9e, 0xe3, 0xf0, 0x85, 0x13, 0xf4, 0x5e, 0x04, 0x4e, 0xe8, 0x0c,
0xc8, 0xba, 0xa0, 0xb1, 0x53, 0x72, 0xb4, 0x06, 0x33, 0x87, 0x01, 0x0e, 0x9d, 0xa8, 0xe7, 0x7b,
0xed, 0x9d, 0xd6, 0x24, 0x15, 0x46, 0xee, 0x42, 0x26, 0x4c, 0x1f, 0x06, 0x5c, 0xd6, 0x2b, 0x74,
0x58, 0xb4, 0xe9, 0xec, 0x0b, 0x0f, 0x87, 0x7c, 0xb8, 0xc6, 0x67, 0xa7, 0x5d, 0xd6, 0xa7, 0xd0,
0xc8, 0x08, 0x5c, 0x65, 0x0b, 0xb2, 0x02, 0x4e, 0xbe, 0x96, 0x80, 0x56, 0x08, 0xf3, 0x8f, 0x70,
0x44, 0xdb, 0x84, 0x8e, 0xe1, 0xb3, 0x18, 0x36, 0x23, 0xd8, 0x11, 0x0a, 0xaf, 0xdb, 0x72, 0x57,
0x5e, 0x2d, 0x13, 0xe5, 0x6a, 0x99, 0xcc, 0xaa, 0xc5, 0xfa, 0xdc, 0x80, 0x85, 0x1c, 0xd3, 0x4a,
0x72, 0x6f, 0xc1, 0x9c, 0x10, 0x84, 0x22, 0x9d, 0xa4, 0xa6, 0x51, 0x2e, 0x7b, 0x76, 0x8a, 0xf5,
0x4b, 0x03, 0x1a, 0xc7, 0x1c, 0x4b, 0x22, 0x7f, 0x46, 0x9f, 0xc6, 0xeb, 0x19, 0x8c, 0x2c, 0xf7,
0x84, 0xc6, 0x1c, 0x4a, 0x8d, 0xc9, 0xda, 0x85, 0xf9, 0x2c, 0x18, 0x12, 0xa0, 0x6f, 0xca, 0x0e,
0xca, 0xe1, 0x2c, 0x70, 0xeb, 0x4f, 0x07, 0x6c, 0x89, 0xc8, 0xfa, 0x19, 0x98, 0x89, 0x7e, 0x1f,
0x04, 0x41, 0xbf, 0xd7, 0xa1, 0xeb, 0xc7, 0xf2, 0xc6, 0xe2, 0xc9, 0x10, 0x8d, 0x72, 0x88, 0x9a,
0x8d, 0xbd, 0x09, 0xf0, 0x30, 0xf4, 0x07, 0x99, 0xad, 0x95, 0x7a, 0xac, 0x3f, 0x18, 0x70, 0xa3,
0x90, 0x79, 0xa5, 0x6d, 0x7e, 0x02, 0xf3, 0x49, 0x38, 0x18, 0x62, 0x12, 0x49, 0x3b, 0xfd, 0x7e,
0xd1, 0xae, 0x70, 0x52, 0x5b, 0x99, 0x68, 0x45, 0xb0, 0xfa, 0x08, 0x47, 0x31, 0x56, 0x1b, 0x9f,
0x69, 0x94, 0x53, 0x14, 0xb8, 0xc6, 0xdb, 0xd7, 0x3f, 0x1a, 0xf0, 0x5e, 0x09, 0xdb, 0x4a, 0xbb,
0xac, 0xd5, 0xcb, 0x44, 0x55, 0xbd, 0xfc, 0xd3, 0x80, 0xe6, 0xb3, 0xd0, 0xf1, 0xc8, 0x09, 0x0e,
0xe9, 0x20, 0x8d, 0x52, 0xb1, 0x46, 0x5a, 0x30, 0xc5, 0x5d, 0x9f, 0xab, 0x24, 0x69, 0xa2, 0x0f,
0xe1, 0xda, 0x61, 0xdf, 0x95, 0x23, 0x1c, 0xd3, 0x4c, 0xae, 0x37, 0xa6, 0x3b, 0xc0, 0x17, 0x32,
0x1d, 0x53, 0x51, 0xae, 0x37, 0xaf, 0xc7, 0x2b, 0xe5, 0x51, 0xa5, 0x96, 0x8b, 0x2a, 0x4f, 0x60,
0x49, 0x27, 0x40, 0x35, 0x0f, 0xfa, 0xcc, 0x80, 0xd9, 0xc7, 0x7e, 0xcf, 0x13, 0xe7, 0x50, 0xb1,
0x16, 0x6e, 0x02, 0xd8, 0xf8, 0x6c, 0x1f, 0x13, 0xe2, 0x74, 0x31, 0xd7, 0x80, 0xd4, 0x53, 0x16,
0x09, 0x2f, 0x97, 0xd8, 0xda, 0x82, 0x39, 0x09, 0x47, 0x35, 0x61, 0xfe, 0x1d, 0xbb, 0x64, 0xce,
0x1f, 0xe3, 0x01, 0xdf, 0x23, 0x98, 0xc7, 0x7b, 0x19, 0x85, 0x51, 0xae, 0xf7, 0xbc, 0xf5, 0x4b,
0x9a, 0x99, 0x54, 0x34, 0x23, 0x85, 0x8a, 0x2b, 0xf9, 0x50, 0x11, 0x8f, 0xef, 0x39, 0x9e, 0xdb,
0xc7, 0x6e, 0xec, 0xf4, 0x6c, 0x3f, 0xa5, 0x1e, 0x64, 0xc1, 0x2c, 0x6b, 0xd9, 0x98, 0x0c, 0xfb,
0x51, 0xeb, 0x2a, 0x8d, 0x17, 0x99, 0x3e, 0xeb, 0x08, 0x56, 0x8b, 0x45, 0xab, 0xa6, 0xae, 0x13,
0x98, 0x3d, 0x1a, 0xf6, 0xa2, 0x11, 0xb6, 0x7e, 0xbc, 0x63, 0x70, 0x0b, 0xe6, 0x24, 0x3e, 0xd5,
0xb0, 0x7e, 0x61, 0x40, 0x33, 0x89, 0xb6, 0xe9, 0x95, 0xa7, 0x1c, 0xf5, 0x58, 0xa1, 0x2c, 0x0e,
0x90, 0x0f, 0x7b, 0xfd, 0x08, 0x87, 0x74, 0x43, 0x6b, 0x36, 0x6f, 0xc5, 0xfc, 0x0e, 0xf0, 0xab,
0xe8, 0x18, 0x9f, 0xd1, 0x9d, 0xac, 0xd9, 0x49, 0xd3, 0xfa, 0xab, 0x01, 0x4b, 0x3a, 0x8c, 0x95,
0x0e, 0x83, 0x87, 0x00, 0x83, 0xf4, 0x2e, 0xc8, 0x8e, 0x81, 0x0f, 0x8b, 0xc2, 0x1d, 0xe3, 0xf6,
0x70, 0xd8, 0xef, 0xd3, 0xd3, 0x54, 0x9a, 0x19, 0x73, 0xf6, 0x38, 0x5c, 0x26, 0x47, 0xd2, 0xb4,
0x7e, 0xa3, 0xc0, 0x15, 0x17, 0xa3, 0xd2, 0x20, 0x20, 0xc1, 0x9a, 0xa0, 0x37, 0x26, 0x99, 0xdd,
0x78, 0x41, 0xe0, 0x77, 0x06, 0x2c, 0x6b, 0x21, 0xbd, 0x4b, 0x15, 0x5a, 0x7f, 0x33, 0x00, 0x3d,
0xe9, 0x75, 0x4e, 0x25, 0xba, 0x72, 0x25, 0x7d, 0x0d, 0xe6, 0x63, 0x7a, 0xec, 0x32, 0xc1, 0x25,
0x55, 0x29, 0xfd, 0x31, 0x78, 0x1b, 0x3b, 0xc4, 0xf7, 0xb8, 0xba, 0x78, 0x2b, 0xaf, 0xac, 0x5a,
0xb9, 0xcb, 0x5d, 0xcd, 0xb9, 0xdc, 0xc7, 0x50, 0x6f, 0xbb, 0x9b, 0x2c, 0x74, 0x14, 0x1e, 0xf5,
0x94, 0x35, 0x0d, 0x38, 0x2c, 0x41, 0xe1, 0x2d, 0xeb, 0x53, 0x58, 0x54, 0xc4, 0xad, 0xb4, 0x01,
0xf7, 0x60, 0x4e, 0xa0, 0x90, 0xf6, 0x60, 0x9e, 0xbb, 0xba, 0x18, 0xb3, 0xb3, 0x64, 0xd6, 0x90,
0xfa, 0x7a, 0x7c, 0x1c, 0x60, 0x97, 0xa2, 0x48, 0x7c, 0x3d, 0x1b, 0x68, 0x0d, 0x25, 0xd0, 0xae,
0xc1, 0x8c, 0xaf, 0xc6, 0x29, 0x7f, 0xc4, 0x38, 0xf5, 0x19, 0x73, 0x08, 0x85, 0xef, 0x58, 0xb9,
0xca, 0xc8, 0xf7, 0xf5, 0x94, 0xdc, 0xfa, 0xbb, 0x01, 0xd7, 0xdb, 0xde, 0x79, 0x2f, 0xc2, 0x31,
0xb2, 0x67, 0xbe, 0x88, 0xd0, 0x97, 0xc7, 0xe1, 0xe2, 0x43, 0x2a, 0x35, 0xb4, 0x2b, 0x19, 0x43,
0xfb, 0x08, 0x16, 0x18, 0x2f, 0xd9, 0x5a, 0x6b, 0xd4, 0x5a, 0xd5, 0x81, 0x52, 0xa3, 0xfb, 0xb9,
0x01, 0x4d, 0x0d, 0xec, 0x2f, 0xd5, 0x74, 0x3c, 0xb8, 0x2e, 0x2e, 0xe5, 0xfd, 0xfe, 0x28, 0xce,
0x3a, 0xde, 0x85, 0xf7, 0xb7, 0xd2, 0xb9, 0x24, 0x31, 0x7c, 0xa7, 0xf1, 0xea, 0xf7, 0x06, 0x4c,
0x6f, 0xef, 0x1f, 0x53, 0xb2, 0xb1, 0x72, 0xbc, 0x3b, 0xd0, 0x60, 0xbc, 0x1c, 0x12, 0xe1, 0xf0,
0xc0, 0x19, 0x24, 0xd7, 0xbe, 0x7c, 0x37, 0xba, 0xcd, 0x33, 0x54, 0xd6, 0xd5, 0x76, 0xb9, 0xaa,
0xb2, 0x9d, 0x71, 0x78, 0x9f, 0x49, 0x94, 0x15, 0x6f, 0xca, 0x2a, 0xc7, 0x46, 0x57, 0x66, 0xdb,
0x92, 0x76, 0xa0, 0x1d, 0x80, 0x1f, 0x38, 0xdd, 0x9e, 0x47, 0x55, 0xcd, 0xeb, 0x19, 0xb7, 0x35,
0xd0, 0xf9, 0xed, 0x3e, 0xa5, 0xb5, 0xa5, 0x79, 0x23, 0x6c, 0xe1, 0x17, 0x06, 0xcc, 0xa6, 0xa8,
0x48, 0x80, 0xbe, 0x01, 0xf5, 0x44, 0x7d, 0x84, 0x57, 0x61, 0x1a, 0xc9, 0xed, 0x84, 0xf7, 0xdb,
0x29, 0xc5, 0x1b, 0xc2, 0x29, 0x74, 0x31, 0x1c, 0x10, 0x8a, 0xb2, 0x66, 0xa7, 0x1d, 0xd6, 0x79,
0x0a, 0x91, 0xc4, 0x9a, 0xcb, 0xf2, 0x34, 0xde, 0x8c, 0x6e, 0xd4, 0x70, 0x62, 0xfd, 0xc9, 0x80,
0x39, 0x89, 0xf1, 0xbb, 0x52, 0x8e, 0x09, 0xd3, 0x89, 0x2e, 0xb8, 0x6e, 0x44, 0xdb, 0x3a, 0x4c,
0x6b, 0x2c, 0x1a, 0x77, 0x77, 0xb3, 0xee, 0xee, 0x8e, 0x20, 0xf3, 0x29, 0x34, 0x59, 0x93, 0xd5,
0xaa, 0x8e, 0x23, 0x27, 0x1a, 0x92, 0xf2, 0x45, 0x97, 0xe0, 0x2a, 0x23, 0x4b, 0x4e, 0x52, 0xd6,
0x1a, 0xc1, 0xf8, 0x5a, 0xb0, 0xa4, 0x63, 0xc6, 0x32, 0x33, 0xc4, 0x87, 0x68, 0x3a, 0xed, 0xf7,
0xf1, 0xa5, 0x20, 0x68, 0xd8, 0x72, 0x93, 0xb0, 0xc2, 0x5a, 0xd9, 0x52, 0xe4, 0x64, 0xae, 0x14,
0x39, 0xc2, 0xa5, 0xac, 0x09, 0x8b, 0x0a, 0x0e, 0x12, 0x58, 0x4f, 0xe1, 0xda, 0x0e, 0xee, 0x63,
0xa9, 0x84, 0x39, 0x8e, 0xd2, 0x17, 0xa0, 0x91, 0x59, 0x8d, 0x04, 0xd6, 0x3e, 0x34, 0x92, 0x8d,
0xdd, 0xfa, 0x69, 0xdb, 0x1d, 0x97, 0xc3, 0xfd, 0xb4, 0x00, 0xc8, 0x96, 0x23, 0x01, 0xfa, 0x7a,
0x1a, 0x28, 0xb9, 0x13, 0x29, 0xb6, 0x2c, 0x08, 0xac, 0x7f, 0x28, 0x29, 0x08, 0xd9, 0xde, 0x3f,
0x2e, 0x87, 0x65, 0xc2, 0x74, 0xac, 0x34, 0x29, 0x74, 0x8a, 0x76, 0xce, 0x35, 0x26, 0xdf, 0x8c,
0x0f, 0x6b, 0xf6, 0xef, 0x5f, 0xea, 0x3d, 0x9f, 0xe2, 0x26, 0x01, 0xfa, 0x3e, 0x4c, 0xb1, 0x73,
0x23, 0x71, 0xe5, 0x51, 0x8f, 0x9b, 0x64, 0x1a, 0xda, 0xd5, 0xf8, 0xf7, 0x57, 0xb4, 0x42, 0xb0,
0x5c, 0xb5, 0x40, 0x8a, 0x9b, 0x00, 0x8c, 0x83, 0x14, 0xfe, 0xa4, 0x1e, 0xeb, 0x57, 0x06, 0xb4,
0x6c, 0x3c, 0xf0, 0xcf, 0xf1, 0x6b, 0xa9, 0xbf, 0x05, 0x53, 0xcc, 0x09, 0x08, 0xbf, 0x7f, 0x27,
0xcd, 0xd7, 0xaa, 0x77, 0xbb, 0xb9, 0x7a, 0xb7, 0x6b, 0xed, 0xc3, 0x4a, 0x01, 0x1a, 0x76, 0xf0,
0x93, 0x61, 0xa7, 0x83, 0x09, 0xe1, 0x15, 0xe5, 0xa4, 0x19, 0x7b, 0xe8, 0x89, 0xd3, 0xeb, 0x63,
0x97, 0xa3, 0xe1, 0x2d, 0xeb, 0x73, 0x03, 0x9a, 0x0f, 0x5c, 0xf7, 0x6d, 0x88, 0xe6, 0xaa, 0xa2,
0xb9, 0xa5, 0xa2, 0x3d, 0x86, 0x25, 0x1d, 0x94, 0x4a, 0x72, 0xf5, 0xa0, 0xb1, 0xd3, 0x23, 0x83,
0x1e, 0x21, 0x22, 0x46, 0x98, 0x30, 0xed, 0xe7, 0x6a, 0xb2, 0x7e, 0x30, 0xf2, 0xed, 0xbd, 0x05,
0x53, 0xdd, 0xec, 0xed, 0x96, 0x37, 0xad, 0x5d, 0x98, 0xcf, 0xb2, 0x62, 0x65, 0x86, 0xce, 0x28,
0x65, 0x86, 0x94, 0xc8, 0xfa, 0x8b, 0x01, 0x68, 0x7f, 0x18, 0xe1, 0xdc, 0x71, 0xf2, 0x96, 0x50,
0xc7, 0x8a, 0x1b, 0xca, 0x45, 0x23, 0xde, 0x42, 0x16, 0xcc, 0x0e, 0x86, 0x11, 0x76, 0x8f, 0x71,
0xc7, 0xf7, 0x5c, 0x42, 0xb3, 0xbf, 0x39, 0x3b, 0xd3, 0x67, 0xed, 0xc1, 0xa2, 0x82, 0xb4, 0x9a,
0xd0, 0xbf, 0x30, 0xa0, 0xb5, 0xed, 0x78, 0x1d, 0xdc, 0x7f, 0xf7, 0xa2, 0x5b, 0x07, 0xb0, 0x52,
0x80, 0xa5, 0x9a, 0x70, 0x27, 0x30, 0x2b, 0x56, 0x7a, 0x9b, 0x06, 0xb8, 0x05, 0x73, 0x12, 0x9f,
0x6a, 0x58, 0xfb, 0x80, 0x72, 0xb2, 0xbf, 0x4d, 0xc4, 0x7b, 0xb0, 0xa8, 0x70, 0xab, 0x86, 0xfb,
0xcf, 0x06, 0xac, 0x1c, 0x67, 0x4e, 0x98, 0x83, 0x5e, 0xe7, 0xd4, 0x73, 0x06, 0xc9, 0x8d, 0xa5,
0x9b, 0x4d, 0xbd, 0xba, 0x69, 0xea, 0xe5, 0x71, 0xc2, 0xe4, 0x74, 0x4c, 0xda, 0x19, 0xa9, 0x27,
0xcb, 0xa5, 0xbe, 0xa2, 0x4a, 0x9d, 0x5a, 0x57, 0x2d, 0x63, 0x5d, 0x87, 0x60, 0x16, 0x01, 0xad,
0x56, 0x97, 0x0c, 0xe9, 0x0b, 0x14, 0x2b, 0x19, 0x1c, 0x0f, 0x03, 0x5e, 0x92, 0x4f, 0xea, 0x15,
0x39, 0xa0, 0x46, 0x19, 0xd0, 0x89, 0x4c, 0x04, 0x28, 0x11, 0x3f, 0x3e, 0x0c, 0x6f, 0x14, 0x32,
0xad, 0xb4, 0x83, 0x63, 0x55, 0x2b, 0x2e, 0xe8, 0xb5, 0x28, 0xc5, 0xf1, 0xa5, 0x3d, 0xaf, 0xfe,
0x9a, 0x5d, 0x6c, 0x14, 0xce, 0xd5, 0x54, 0xf0, 0x26, 0x1e, 0x59, 0xff, 0x33, 0x01, 0xcd, 0xac,
0x7d, 0x49, 0x15, 0xd5, 0x02, 0x27, 0xa8, 0x60, 0x01, 0x23, 0x38, 0xc0, 0xb7, 0x24, 0xd7, 0xaa,
0xf1, 0xac, 0xbf, 0xeb, 0xfb, 0xdd, 0x3e, 0x66, 0xbf, 0x43, 0xbc, 0x1c, 0x9e, 0xac, 0x1f, 0x47,
0x61, 0xcf, 0xeb, 0xfe, 0xd0, 0xe9, 0x0f, 0xb1, 0xe4, 0x78, 0xf7, 0x60, 0xea, 0xc4, 0xe9, 0xe0,
0x4f, 0xec, 0xa7, 0xb4, 0xc0, 0x73, 0xd9, 0xc4, 0x84, 0x18, 0x7d, 0x1b, 0xea, 0xa1, 0x48, 0x33,
0xa6, 0xe8, 0xcc, 0x1b, 0xca, 0xcc, 0xb6, 0x17, 0xdd, 0xdd, 0x64, 0x13, 0x53, 0x6a, 0xf4, 0x11,
0x4c, 0xe0, 0x57, 0xad, 0xe9, 0x11, 0xb8, 0x4d, 0xe0, 0x57, 0xd6, 0x13, 0x58, 0xd2, 0xe9, 0xb8,
0x92, 0xff, 0x6e, 0xfe, 0x6f, 0x11, 0xd8, 0xbf, 0x26, 0xe8, 0xbb, 0x30, 0xd3, 0x49, 0xff, 0x50,
0x40, 0xcd, 0x64, 0x5e, 0xe6, 0x37, 0x0d, 0x73, 0x49, 0xd7, 0x4d, 0x02, 0x74, 0x0f, 0xea, 0x3f,
0x49, 0x9e, 0xaf, 0xd0, 0x22, 0x27, 0x92, 0x1f, 0xd6, 0xcc, 0xeb, 0x6a, 0x27, 0x9b, 0x77, 0x96,
0xbc, 0x8d, 0x88, 0x79, 0xf2, 0xab, 0x8c, 0x98, 0x97, 0x7d, 0x42, 0xd9, 0x82, 0xb9, 0xae, 0xfc,
0x67, 0x01, 0x5a, 0x4e, 0xfe, 0x13, 0xc9, 0xfd, 0xe4, 0x60, 0xb6, 0xf4, 0x03, 0x24, 0x40, 0xf7,
0x61, 0x96, 0x48, 0x8f, 0xf0, 0x28, 0x91, 0x2d, 0xf7, 0x9b, 0x80, 0xb9, 0xac, 0xed, 0x27, 0x01,
0xfa, 0x31, 0x2c, 0x77, 0xf5, 0x2f, 0xe0, 0xe8, 0x56, 0x8e, 0xab, 0xfa, 0x02, 0x6d, 0x5a, 0x97,
0x91, 0x90, 0x00, 0x9d, 0xc0, 0x4a, 0xb7, 0xe8, 0x39, 0x19, 0x7d, 0x90, 0x2e, 0x50, 0xf8, 0xce,
0x6d, 0xde, 0xbe, 0x9c, 0x88, 0x04, 0xe8, 0x08, 0x50, 0xa4, 0xbc, 0xa9, 0xa2, 0x55, 0x3e, 0x57,
0xfb, 0x5e, 0x6c, 0xbe, 0x57, 0x32, 0x4a, 0x02, 0xd4, 0x81, 0x56, 0xb7, 0xe0, 0xc1, 0x0e, 0x59,
0x99, 0x9f, 0x7a, 0xb4, 0x8f, 0x95, 0xe6, 0x07, 0x97, 0xd2, 0x30, 0xdc, 0x5d, 0xe5, 0xc5, 0x49,
0xe0, 0xd6, 0x3e, 0x98, 0x09, 0xdc, 0x05, 0x4f, 0x55, 0xcf, 0x60, 0xb1, 0xab, 0x3e, 0xc1, 0x20,
0xfd, 0x2c, 0x61, 0x65, 0x37, 0xcb, 0x86, 0x49, 0x80, 0xf6, 0xa0, 0x71, 0x9a, 0x7d, 0x53, 0x40,
0xc9, 0x9f, 0x4d, 0xea, 0xd3, 0x8a, 0x69, 0x16, 0x0d, 0x09, 0x91, 0x73, 0x45, 0x7a, 0x59, 0x64,
0xf5, 0xdd, 0x40, 0x16, 0x59, 0x57, 0xdd, 0x3f, 0x80, 0x85, 0x5e, 0xbe, 0x6e, 0x8d, 0x6e, 0x24,
0xa5, 0x66, 0x4d, 0x21, 0xde, 0x5c, 0x2d, 0x1e, 0x64, 0xeb, 0x75, 0xf3, 0x35, 0x61, 0xb1, 0x9e,
0xae, 0x3c, 0x6d, 0xae, 0x16, 0x0f, 0x32, 0x47, 0x95, 0x4b, 0x17, 0xc2, 0x51, 0x73, 0xe5, 0x11,
0x73, 0x59, 0xdb, 0x4f, 0x02, 0x74, 0x17, 0xa6, 0x93, 0x3e, 0x84, 0x72, 0x44, 0xf1, 0xc4, 0x45,
0xa5, 0x8f, 0x85, 0x26, 0x11, 0x33, 0x50, 0x9e, 0x82, 0xc8, 0xa1, 0x29, 0x5b, 0x21, 0x3c, 0x12,
0x75, 0x2b, 0xa9, 0xa4, 0x25, 0x36, 0x48, 0x5b, 0x5a, 0x13, 0x1b, 0xa4, 0xaf, 0x85, 0xc5, 0xd6,
0x93, 0x2b, 0x41, 0x09, 0xeb, 0x51, 0x4b, 0x64, 0xc2, 0x7a, 0x34, 0x55, 0xab, 0x38, 0xca, 0x4b,
0x75, 0x26, 0x11, 0xe5, 0xb3, 0x95, 0x2c, 0x11, 0xe5, 0x73, 0x25, 0xa9, 0x58, 0x34, 0xb5, 0x92,
0x52, 0xe0, 0x6e, 0x3c, 0x85, 0x2f, 0x70, 0x37, 0x91, 0x55, 0x3f, 0x87, 0xa6, 0xb6, 0x94, 0x80,
0xde, 0xe7, 0xf3, 0x8a, 0xca, 0x1e, 0xe6, 0x5a, 0x39, 0x01, 0x83, 0xab, 0xe6, 0xf2, 0x02, 0xae,
0xb6, 0xe2, 0x20, 0xe0, 0x16, 0x14, 0x01, 0xee, 0xc3, 0xac, 0x9c, 0x67, 0x0b, 0x53, 0xcc, 0xe5,
0xf9, 0xc2, 0x14, 0x95, 0xa4, 0x7c, 0x0f, 0x1a, 0xb9, 0xcc, 0x4e, 0x6c, 0xa5, 0x9a, 0x7d, 0x8a,
0xad, 0xd4, 0x25, 0x83, 0xcf, 0xa1, 0xa9, 0xcd, 0x14, 0x85, 0xe6, 0x8a, 0x72, 0x5a, 0xa1, 0xb9,
0xe2, 0x44, 0xf3, 0x1e, 0xd4, 0x45, 0xb7, 0xb0, 0x7d, 0x39, 0x2b, 0x13, 0xb6, 0x9f, 0x4d, 0x9e,
0xf6, 0xa0, 0x91, 0x5b, 0x54, 0x48, 0xa7, 0x66, 0x76, 0x42, 0x3a, 0x5d, 0x1a, 0xf6, 0xa3, 0xfc,
0x2d, 0x27, 0xc9, 0x54, 0xd0, 0x5a, 0xee, 0x38, 0x56, 0x32, 0x2e, 0xf3, 0xd6, 0x25, 0x14, 0xec,
0xe8, 0x2e, 0x48, 0x21, 0xe4, 0xa3, 0xbb, 0x20, 0xaf, 0x91, 0x8f, 0xee, 0xc2, 0x2c, 0x84, 0xf9,
0x4a, 0xee, 0x72, 0x2e, 0xfb, 0x8a, 0x9a, 0x31, 0xc8, 0xbe, 0xa2, 0xbb, 0xd5, 0x1f, 0x01, 0x52,
0x6f, 0x7e, 0x62, 0x49, 0xed, 0xc5, 0x5b, 0x2c, 0xa9, 0xbf, 0x32, 0x6e, 0x35, 0x9e, 0xcf, 0xad,
0xb3, 0x3f, 0x8f, 0x3f, 0xa6, 0xdf, 0x97, 0x57, 0xe9, 0xbd, 0xf3, 0xee, 0xff, 0x03, 0x00, 0x00,
0xff, 0xff, 0xce, 0xc7, 0x31, 0xb6, 0x95, 0x2c, 0x00, 0x00,
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,
}

@ -43,7 +43,7 @@ message GetGroupsInfoResp{
message SetGroupInfoReq{
server_api_params.GroupInfo GroupInfo = 1;
server_api_params.GroupInfoForSet groupInfoForSet = 1;
string OpUserID = 2; //app manager or group owner
string OperationID = 3;
}

File diff suppressed because it is too large Load Diff

@ -20,7 +20,17 @@ message GroupInfo{
int32 status = 10;
string creatorUserID = 11;
int32 groupType = 12;
google.protobuf.Int32Value needVerification = 13;
int32 needVerification = 13;
}
message GroupInfoForSet{
string groupID = 1;
string groupName = 2;
string notification = 3;
string introduction = 4;
string faceURL = 5;
string ex = 6;
google.protobuf.Int32Value needVerification = 7;
}

Loading…
Cancel
Save