message add ex field to return

test-v2.3.0release
Gordon 3 years ago
parent baece7eb3a
commit 7aefb7fa2b

@ -269,6 +269,7 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) {
mReplyData.ClientMsgID = pb.GetClientMsgID() mReplyData.ClientMsgID = pb.GetClientMsgID()
mReplyData.ServerMsgID = pb.GetServerMsgID() mReplyData.ServerMsgID = pb.GetServerMsgID()
mReplyData.SendTime = pb.GetSendTime() mReplyData.SendTime = pb.GetSendTime()
mReplyData.Ex = pb.GetEx()
b, _ := proto.Marshal(&mReplyData) b, _ := proto.Marshal(&mReplyData)
mReply := Resp{ mReply := Resp{
ReqIdentifier: m.ReqIdentifier, ReqIdentifier: m.ReqIdentifier,

@ -115,12 +115,12 @@ func (s MsgFormats) Len() int {
return len(s) return len(s)
} }
//Implement the sort.Interface interface comparison element method // Implement the sort.Interface interface comparison element method
func (s MsgFormats) Less(i, j int) bool { func (s MsgFormats) Less(i, j int) bool {
return s[i].SendTime < s[j].SendTime return s[i].SendTime < s[j].SendTime
} }
//Implement the sort.Interface interface exchange element method // Implement the sort.Interface interface exchange element method
func (s MsgFormats) Swap(i, j int) { func (s MsgFormats) Swap(i, j int) {
s[i], s[j] = s[j], s[i] s[i], s[j] = s[j], s[i]
} }

@ -30,7 +30,7 @@ import (
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
) )
//When the number of group members is greater than this valueOnline users will be sent firstGuaranteed service availability // When the number of group members is greater than this valueOnline users will be sent firstGuaranteed service availability
const GroupMemberNum = 500 const GroupMemberNum = 500
var ( var (
@ -348,7 +348,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
log.Info(pb.OperationID, "rpc sendMsg come here ", pb.String()) log.Info(pb.OperationID, "rpc sendMsg come here ", pb.String())
flag, errCode, errMsg := isMessageHasReadEnabled(pb) flag, errCode, errMsg := isMessageHasReadEnabled(pb)
if !flag { if !flag {
return returnMsg(&replay, pb, errCode, errMsg, "", 0) return returnMsg(&replay, pb, errCode, errMsg, "", 0, "")
} }
t1 := time.Now() t1 := time.Now()
rpc.encapsulateMsgData(pb.MsgData) rpc.encapsulateMsgData(pb.MsgData)
@ -367,7 +367,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
callbackResp.ErrCode = 201 callbackResp.ErrCode = 201
} }
log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackMsgModify result", "end rpc and return", pb.MsgData) log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackMsgModify result", "end rpc and return", pb.MsgData)
return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0) return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0, "")
} }
switch pb.MsgData.SessionType { switch pb.MsgData.SessionType {
case constant.SingleChatType: case constant.SingleChatType:
@ -385,13 +385,13 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
} }
log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg result", "end rpc and return", callbackResp) log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg result", "end rpc and return", callbackResp)
promePkg.PromeInc(promePkg.SingleChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.SingleChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0) return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0, "")
} }
t1 = time.Now() t1 = time.Now()
flag, errCode, errMsg, _ = rpc.messageVerification(pb) flag, errCode, errMsg, _ = rpc.messageVerification(pb)
log.Debug(pb.OperationID, "messageVerification ", flag, " cost time: ", time.Since(t1)) log.Debug(pb.OperationID, "messageVerification ", flag, " cost time: ", time.Since(t1))
if !flag { if !flag {
return returnMsg(&replay, pb, errCode, errMsg, "", 0) return returnMsg(&replay, pb, errCode, errMsg, "", 0, "")
} }
t1 = time.Now() t1 = time.Now()
isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb) isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb)
@ -405,7 +405,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
if err1 != nil { if err1 != nil {
log.NewError(msgToMQSingle.OperationID, "kafka send msg err :RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String(), err1.Error()) log.NewError(msgToMQSingle.OperationID, "kafka send msg err :RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String(), err1.Error())
promePkg.PromeInc(promePkg.SingleChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.SingleChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0, "")
} }
} }
if msgToMQSingle.MsgData.SendID != msgToMQSingle.MsgData.RecvID { //Filter messages sent to yourself if msgToMQSingle.MsgData.SendID != msgToMQSingle.MsgData.RecvID { //Filter messages sent to yourself
@ -415,7 +415,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
if err2 != nil { if err2 != nil {
log.NewError(msgToMQSingle.OperationID, "kafka send msg err:SendID", msgToMQSingle.MsgData.SendID, msgToMQSingle.String()) log.NewError(msgToMQSingle.OperationID, "kafka send msg err:SendID", msgToMQSingle.MsgData.SendID, msgToMQSingle.String())
promePkg.PromeInc(promePkg.SingleChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.SingleChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0, "")
} }
} }
// callback // callback
@ -426,7 +426,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSingleMsg resp: ", callbackResp) log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSingleMsg resp: ", callbackResp)
} }
promePkg.PromeInc(promePkg.SingleChatMsgProcessSuccessCounter) promePkg.PromeInc(promePkg.SingleChatMsgProcessSuccessCounter)
return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime, msgToMQSingle.MsgData.Ex)
case constant.GroupChatType: case constant.GroupChatType:
// callback // callback
promePkg.PromeInc(promePkg.GroupChatMsgRecvSuccessCounter) promePkg.PromeInc(promePkg.GroupChatMsgRecvSuccessCounter)
@ -440,12 +440,12 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
} }
log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg result", "end rpc and return", callbackResp) log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg result", "end rpc and return", callbackResp)
promePkg.PromeInc(promePkg.GroupChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.GroupChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0) return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0, "")
} }
var memberUserIDList []string var memberUserIDList []string
if flag, errCode, errMsg, memberUserIDList = rpc.messageVerification(pb); !flag { if flag, errCode, errMsg, memberUserIDList = rpc.messageVerification(pb); !flag {
promePkg.PromeInc(promePkg.GroupChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.GroupChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, errCode, errMsg, "", 0) return returnMsg(&replay, pb, errCode, errMsg, "", 0, "")
} }
log.Debug(pb.OperationID, "GetGroupAllMember userID list", memberUserIDList, "len: ", len(memberUserIDList)) log.Debug(pb.OperationID, "GetGroupAllMember userID list", memberUserIDList, "len: ", len(memberUserIDList))
var addUidList []string var addUidList []string
@ -509,7 +509,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
if !sendTag { if !sendTag {
log.NewWarn(pb.OperationID, "send tag is ", sendTag) log.NewWarn(pb.OperationID, "send tag is ", sendTag)
promePkg.PromeInc(promePkg.GroupChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.GroupChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0, "")
} else { } else {
if pb.MsgData.ContentType == constant.AtText { if pb.MsgData.ContentType == constant.AtText {
go func() { go func() {
@ -574,7 +574,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
} }
log.Debug(pb.OperationID, "send msg cost time3 ", time.Since(t1), pb.MsgData.ClientMsgID) log.Debug(pb.OperationID, "send msg cost time3 ", time.Since(t1), pb.MsgData.ClientMsgID)
promePkg.PromeInc(promePkg.GroupChatMsgProcessSuccessCounter) promePkg.PromeInc(promePkg.GroupChatMsgProcessSuccessCounter)
return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime, msgToMQSingle.MsgData.Ex)
} }
case constant.NotificationChatType: case constant.NotificationChatType:
t1 = time.Now() t1 = time.Now()
@ -583,19 +583,19 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
err1 := rpc.sendMsgToWriter(&msgToMQSingle, msgToMQSingle.MsgData.RecvID, constant.OnlineStatus) err1 := rpc.sendMsgToWriter(&msgToMQSingle, msgToMQSingle.MsgData.RecvID, constant.OnlineStatus)
if err1 != nil { if err1 != nil {
log.NewError(msgToMQSingle.OperationID, "kafka send msg err:RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String()) log.NewError(msgToMQSingle.OperationID, "kafka send msg err:RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String())
return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0, "")
} }
if msgToMQSingle.MsgData.SendID != msgToMQSingle.MsgData.RecvID { //Filter messages sent to yourself if msgToMQSingle.MsgData.SendID != msgToMQSingle.MsgData.RecvID { //Filter messages sent to yourself
err2 := rpc.sendMsgToWriter(&msgToMQSingle, msgToMQSingle.MsgData.SendID, constant.OnlineStatus) err2 := rpc.sendMsgToWriter(&msgToMQSingle, msgToMQSingle.MsgData.SendID, constant.OnlineStatus)
if err2 != nil { if err2 != nil {
log.NewError(msgToMQSingle.OperationID, "kafka send msg err:SendID", msgToMQSingle.MsgData.SendID, msgToMQSingle.String()) log.NewError(msgToMQSingle.OperationID, "kafka send msg err:SendID", msgToMQSingle.MsgData.SendID, msgToMQSingle.String())
return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0, "")
} }
} }
log.Debug(pb.OperationID, "send msg cost time ", time.Since(t1), pb.MsgData.ClientMsgID) log.Debug(pb.OperationID, "send msg cost time ", time.Since(t1), pb.MsgData.ClientMsgID)
return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime, msgToMQSingle.MsgData.Ex)
case constant.SuperGroupChatType: case constant.SuperGroupChatType:
promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgRecvSuccessCounter) promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgRecvSuccessCounter)
// callback // callback
@ -609,11 +609,11 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
} }
promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessFailedCounter)
log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSuperGroupMsg result", "end rpc and return", callbackResp) log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSuperGroupMsg result", "end rpc and return", callbackResp)
return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0) return returnMsg(&replay, pb, int32(callbackResp.ErrCode), callbackResp.ErrMsg, "", 0, "")
} }
if flag, errCode, errMsg, _ = rpc.messageVerification(pb); !flag { if flag, errCode, errMsg, _ = rpc.messageVerification(pb); !flag {
promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, errCode, errMsg, "", 0) return returnMsg(&replay, pb, errCode, errMsg, "", 0, "")
} }
msgToMQSingle.MsgData = pb.MsgData msgToMQSingle.MsgData = pb.MsgData
log.NewInfo(msgToMQSingle.OperationID, msgToMQSingle) log.NewInfo(msgToMQSingle.OperationID, msgToMQSingle)
@ -621,7 +621,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
if err1 != nil { if err1 != nil {
log.NewError(msgToMQSingle.OperationID, "kafka send msg err:RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String()) log.NewError(msgToMQSingle.OperationID, "kafka send msg err:RecvID", msgToMQSingle.MsgData.RecvID, msgToMQSingle.String())
promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessFailedCounter) promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessFailedCounter)
return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0, "")
} }
// callback // callback
callbackResp = callbackAfterSendGroupMsg(pb) callbackResp = callbackAfterSendGroupMsg(pb)
@ -629,10 +629,10 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S
log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSuperGroupMsg resp: ", callbackResp) log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSuperGroupMsg resp: ", callbackResp)
} }
promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessSuccessCounter) promePkg.PromeInc(promePkg.WorkSuperGroupChatMsgProcessSuccessCounter)
return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime) return returnMsg(&replay, pb, 0, "", msgToMQSingle.MsgData.ServerMsgID, msgToMQSingle.MsgData.SendTime, msgToMQSingle.MsgData.Ex)
default: default:
return returnMsg(&replay, pb, 203, "unknown sessionType", "", 0) return returnMsg(&replay, pb, 203, "unknown sessionType", "", 0, "")
} }
} }
@ -676,12 +676,13 @@ func GetMsgID(sendID string) string {
return utils.Md5(t + "-" + sendID + "-" + strconv.Itoa(rand.Int())) return utils.Md5(t + "-" + sendID + "-" + strconv.Itoa(rand.Int()))
} }
func returnMsg(replay *pbChat.SendMsgResp, pb *pbChat.SendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64) (*pbChat.SendMsgResp, error) { func returnMsg(replay *pbChat.SendMsgResp, pb *pbChat.SendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64, ex string) (*pbChat.SendMsgResp, error) {
replay.ErrCode = errCode replay.ErrCode = errCode
replay.ErrMsg = errMsg replay.ErrMsg = errMsg
replay.ServerMsgID = serverMsgID replay.ServerMsgID = serverMsgID
replay.ClientMsgID = pb.MsgData.ClientMsgID replay.ClientMsgID = pb.MsgData.ClientMsgID
replay.SendTime = sendTime replay.SendTime = sendTime
replay.Ex = ex
return replay, nil return replay, nil
} }

@ -20,17 +20,16 @@ type Invitation struct {
Status int32 `gorm:"column:status"` Status int32 `gorm:"column:status"`
} }
// // message FriendInfo{
//message FriendInfo{ // string OwnerUserID = 1;
//string OwnerUserID = 1; // string Remark = 2;
//string Remark = 2; // int64 CreateTime = 3;
//int64 CreateTime = 3; // UserInfo FriendUser = 4;
//UserInfo FriendUser = 4; // int32 AddSource = 5;
//int32 AddSource = 5; // string OperatorUserID = 6;
//string OperatorUserID = 6; // string Ex = 7;
//string Ex = 7; // }
//} // open_im_sdk.FriendInfo(FriendUser) != imdb.Friend(FriendUserID)
//open_im_sdk.FriendInfo(FriendUser) != imdb.Friend(FriendUserID)
type Friend struct { type Friend struct {
OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"` OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"`
FriendUserID string `gorm:"column:friend_user_id;primary_key;size:64"` FriendUserID string `gorm:"column:friend_user_id;primary_key;size:64"`
@ -41,18 +40,18 @@ type Friend struct {
Ex string `gorm:"column:ex;size:1024"` Ex string `gorm:"column:ex;size:1024"`
} }
//message FriendRequest{ // message FriendRequest{
//string FromUserID = 1; // string FromUserID = 1;
//string ToUserID = 2; // string ToUserID = 2;
//int32 HandleResult = 3; // int32 HandleResult = 3;
//string ReqMsg = 4; // string ReqMsg = 4;
//int64 CreateTime = 5; // int64 CreateTime = 5;
//string HandlerUserID = 6; // string HandlerUserID = 6;
//string HandleMsg = 7; // string HandleMsg = 7;
//int64 HandleTime = 8; // int64 HandleTime = 8;
//string Ex = 9; // string Ex = 9;
//} // }
//open_im_sdk.FriendRequest(nickname, farce url ...) != imdb.FriendRequest // open_im_sdk.FriendRequest(nickname, farce url ...) != imdb.FriendRequest
type FriendRequest struct { type FriendRequest struct {
FromUserID string `gorm:"column:from_user_id;primary_key;size:64"` FromUserID string `gorm:"column:from_user_id;primary_key;size:64"`
ToUserID string `gorm:"column:to_user_id;primary_key;size:64"` ToUserID string `gorm:"column:to_user_id;primary_key;size:64"`
@ -69,7 +68,7 @@ func (FriendRequest) TableName() string {
return "friend_requests" return "friend_requests"
} }
//message GroupInfo{ // message GroupInfo{
// string GroupID = 1; // string GroupID = 1;
// string GroupName = 2; // string GroupName = 2;
// string Notification = 3; // string Notification = 3;
@ -82,7 +81,8 @@ func (FriendRequest) TableName() string {
// int32 Status = 10; // int32 Status = 10;
// string CreatorUserID = 11; // string CreatorUserID = 11;
// int32 GroupType = 12; // int32 GroupType = 12;
//} // }
//
// open_im_sdk.GroupInfo (OwnerUserID , MemberCount )> imdb.Group // open_im_sdk.GroupInfo (OwnerUserID , MemberCount )> imdb.Group
type Group struct { type Group struct {
//`json:"operationID" binding:"required"` //`json:"operationID" binding:"required"`
@ -104,18 +104,18 @@ type Group struct {
NotificationUserID string `gorm:"column:notification_user_id;size:64"` NotificationUserID string `gorm:"column:notification_user_id;size:64"`
} }
//message GroupMemberFullInfo { // message GroupMemberFullInfo {
//string GroupID = 1 ; // string GroupID = 1 ;
//string UserID = 2 ; // string UserID = 2 ;
//int32 roleLevel = 3; // int32 roleLevel = 3;
//int64 JoinTime = 4; // int64 JoinTime = 4;
//string NickName = 5; // string NickName = 5;
//string FaceUrl = 6; // string FaceUrl = 6;
//int32 JoinSource = 8; // int32 JoinSource = 8;
//string OperatorUserID = 9; // string OperatorUserID = 9;
//string Ex = 10; // string Ex = 10;
//int32 AppMangerLevel = 7; //if >0 // int32 AppMangerLevel = 7; //if >0
//} open_im_sdk.GroupMemberFullInfo(AppMangerLevel) > imdb.GroupMember // } open_im_sdk.GroupMemberFullInfo(AppMangerLevel) > imdb.GroupMember
type GroupMember struct { type GroupMember struct {
GroupID string `gorm:"column:group_id;primary_key;size:64"` GroupID string `gorm:"column:group_id;primary_key;size:64"`
UserID string `gorm:"column:user_id;primary_key;size:64"` UserID string `gorm:"column:user_id;primary_key;size:64"`
@ -130,17 +130,17 @@ type GroupMember struct {
Ex string `gorm:"column:ex;size:1024"` Ex string `gorm:"column:ex;size:1024"`
} }
//message GroupRequest{ // message GroupRequest{
//string UserID = 1; // string UserID = 1;
//string GroupID = 2; // string GroupID = 2;
//string HandleResult = 3; // string HandleResult = 3;
//string ReqMsg = 4; // string ReqMsg = 4;
//string HandleMsg = 5; // string HandleMsg = 5;
//int64 ReqTime = 6; // int64 ReqTime = 6;
//string HandleUserID = 7; // string HandleUserID = 7;
//int64 HandleTime = 8; // int64 HandleTime = 8;
//string Ex = 9; // string Ex = 9;
//}open_im_sdk.GroupRequest == imdb.GroupRequest // }open_im_sdk.GroupRequest == imdb.GroupRequest
type GroupRequest struct { type GroupRequest struct {
UserID string `gorm:"column:user_id;primary_key;size:64"` UserID string `gorm:"column:user_id;primary_key;size:64"`
GroupID string `gorm:"column:group_id;primary_key;size:64"` GroupID string `gorm:"column:group_id;primary_key;size:64"`
@ -155,18 +155,18 @@ type GroupRequest struct {
Ex string `gorm:"column:ex;size:1024"` Ex string `gorm:"column:ex;size:1024"`
} }
//string UserID = 1; // string UserID = 1;
//string Nickname = 2; // string Nickname = 2;
//string FaceUrl = 3; // string FaceUrl = 3;
//int32 Gender = 4; // int32 Gender = 4;
//string PhoneNumber = 5; // string PhoneNumber = 5;
//string Birth = 6; // string Birth = 6;
//string Email = 7; // string Email = 7;
//string Ex = 8; // string Ex = 8;
//string CreateIp = 9; // string CreateIp = 9;
//int64 CreateTime = 10; // int64 CreateTime = 10;
//int32 AppMangerLevel = 11; // int32 AppMangerLevel = 11;
//open_im_sdk.User == imdb.User // open_im_sdk.User == imdb.User
type User struct { type User struct {
UserID string `gorm:"column:user_id;primary_key;size:64"` UserID string `gorm:"column:user_id;primary_key;size:64"`
Nickname string `gorm:"column:name;size:255"` Nickname string `gorm:"column:name;size:255"`
@ -207,14 +207,14 @@ type UserIpLimit struct {
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`
} }
//message BlackInfo{ // message BlackInfo{
//string OwnerUserID = 1; // string OwnerUserID = 1;
//int64 CreateTime = 2; // int64 CreateTime = 2;
//PublicUserInfo BlackUserInfo = 4; // PublicUserInfo BlackUserInfo = 4;
//int32 AddSource = 5; // int32 AddSource = 5;
//string OperatorUserID = 6; // string OperatorUserID = 6;
//string Ex = 7; // string Ex = 7;
//} // }
// open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID) // open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID)
type Black struct { type Black struct {
OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"` OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"`

@ -38,7 +38,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} }
func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) ProtoMessage() {}
func (*MsgDataToMQ) Descriptor() ([]byte, []int) { func (*MsgDataToMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{0} return fileDescriptor_msg_53ecdffb017d9c40, []int{0}
} }
func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b)
@ -91,7 +91,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} }
func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) }
func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) ProtoMessage() {}
func (*MsgDataToDB) Descriptor() ([]byte, []int) { func (*MsgDataToDB) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{1} return fileDescriptor_msg_53ecdffb017d9c40, []int{1}
} }
func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b)
@ -138,7 +138,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} }
func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) }
func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) ProtoMessage() {}
func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{2} return fileDescriptor_msg_53ecdffb017d9c40, []int{2}
} }
func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b)
@ -193,7 +193,7 @@ func (m *MsgDataToMongoByMQ) Reset() { *m = MsgDataToMongoByMQ{} }
func (m *MsgDataToMongoByMQ) String() string { return proto.CompactTextString(m) } func (m *MsgDataToMongoByMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToMongoByMQ) ProtoMessage() {} func (*MsgDataToMongoByMQ) ProtoMessage() {}
func (*MsgDataToMongoByMQ) Descriptor() ([]byte, []int) { func (*MsgDataToMongoByMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{3} return fileDescriptor_msg_53ecdffb017d9c40, []int{3}
} }
func (m *MsgDataToMongoByMQ) XXX_Unmarshal(b []byte) error { func (m *MsgDataToMongoByMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToMongoByMQ.Unmarshal(m, b) return xxx_messageInfo_MsgDataToMongoByMQ.Unmarshal(m, b)
@ -256,7 +256,6 @@ func (m *MsgDataToMongoByMQ) GetTriggerID() string {
// repeated GatherFormat SingleUserMsg = 5; // repeated GatherFormat SingleUserMsg = 5;
// repeated GatherFormat GroupUserMsg = 6; // repeated GatherFormat GroupUserMsg = 6;
// } // }
//
// message PullMessageBySeqListReq{ // message PullMessageBySeqListReq{
// string UserID = 1; // string UserID = 1;
// string OperationID = 2; // string OperationID = 2;
@ -274,7 +273,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{4} return fileDescriptor_msg_53ecdffb017d9c40, []int{4}
} }
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@ -322,7 +321,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{5} return fileDescriptor_msg_53ecdffb017d9c40, []int{5}
} }
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@ -383,7 +382,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} }
func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) }
func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) ProtoMessage() {}
func (*SendMsgReq) Descriptor() ([]byte, []int) { func (*SendMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{6} return fileDescriptor_msg_53ecdffb017d9c40, []int{6}
} }
func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { func (m *SendMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) return xxx_messageInfo_SendMsgReq.Unmarshal(m, b)
@ -430,6 +429,7 @@ type SendMsgResp struct {
ServerMsgID string `protobuf:"bytes,4,opt,name=serverMsgID" json:"serverMsgID,omitempty"` ServerMsgID string `protobuf:"bytes,4,opt,name=serverMsgID" json:"serverMsgID,omitempty"`
ClientMsgID string `protobuf:"bytes,5,opt,name=clientMsgID" json:"clientMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,5,opt,name=clientMsgID" json:"clientMsgID,omitempty"`
SendTime int64 `protobuf:"varint,6,opt,name=sendTime" json:"sendTime,omitempty"` SendTime int64 `protobuf:"varint,6,opt,name=sendTime" json:"sendTime,omitempty"`
Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -439,7 +439,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} }
func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) }
func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) ProtoMessage() {}
func (*SendMsgResp) Descriptor() ([]byte, []int) { func (*SendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{7} return fileDescriptor_msg_53ecdffb017d9c40, []int{7}
} }
func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { func (m *SendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) return xxx_messageInfo_SendMsgResp.Unmarshal(m, b)
@ -494,6 +494,13 @@ func (m *SendMsgResp) GetSendTime() int64 {
return 0 return 0
} }
func (m *SendMsgResp) GetEx() string {
if m != nil {
return m.Ex
}
return ""
}
type ClearMsgReq struct { type ClearMsgReq struct {
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"`
@ -507,7 +514,7 @@ func (m *ClearMsgReq) Reset() { *m = ClearMsgReq{} }
func (m *ClearMsgReq) String() string { return proto.CompactTextString(m) } func (m *ClearMsgReq) String() string { return proto.CompactTextString(m) }
func (*ClearMsgReq) ProtoMessage() {} func (*ClearMsgReq) ProtoMessage() {}
func (*ClearMsgReq) Descriptor() ([]byte, []int) { func (*ClearMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{8} return fileDescriptor_msg_53ecdffb017d9c40, []int{8}
} }
func (m *ClearMsgReq) XXX_Unmarshal(b []byte) error { func (m *ClearMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClearMsgReq.Unmarshal(m, b) return xxx_messageInfo_ClearMsgReq.Unmarshal(m, b)
@ -560,7 +567,7 @@ func (m *ClearMsgResp) Reset() { *m = ClearMsgResp{} }
func (m *ClearMsgResp) String() string { return proto.CompactTextString(m) } func (m *ClearMsgResp) String() string { return proto.CompactTextString(m) }
func (*ClearMsgResp) ProtoMessage() {} func (*ClearMsgResp) ProtoMessage() {}
func (*ClearMsgResp) Descriptor() ([]byte, []int) { func (*ClearMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{9} return fileDescriptor_msg_53ecdffb017d9c40, []int{9}
} }
func (m *ClearMsgResp) XXX_Unmarshal(b []byte) error { func (m *ClearMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClearMsgResp.Unmarshal(m, b) return xxx_messageInfo_ClearMsgResp.Unmarshal(m, b)
@ -609,7 +616,7 @@ func (m *SetMsgMinSeqReq) Reset() { *m = SetMsgMinSeqReq{} }
func (m *SetMsgMinSeqReq) String() string { return proto.CompactTextString(m) } func (m *SetMsgMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*SetMsgMinSeqReq) ProtoMessage() {} func (*SetMsgMinSeqReq) ProtoMessage() {}
func (*SetMsgMinSeqReq) Descriptor() ([]byte, []int) { func (*SetMsgMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{10} return fileDescriptor_msg_53ecdffb017d9c40, []int{10}
} }
func (m *SetMsgMinSeqReq) XXX_Unmarshal(b []byte) error { func (m *SetMsgMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMsgMinSeqReq.Unmarshal(m, b) return xxx_messageInfo_SetMsgMinSeqReq.Unmarshal(m, b)
@ -676,7 +683,7 @@ func (m *SetMsgMinSeqResp) Reset() { *m = SetMsgMinSeqResp{} }
func (m *SetMsgMinSeqResp) String() string { return proto.CompactTextString(m) } func (m *SetMsgMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*SetMsgMinSeqResp) ProtoMessage() {} func (*SetMsgMinSeqResp) ProtoMessage() {}
func (*SetMsgMinSeqResp) Descriptor() ([]byte, []int) { func (*SetMsgMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{11} return fileDescriptor_msg_53ecdffb017d9c40, []int{11}
} }
func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error { func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b) return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b)
@ -722,7 +729,7 @@ func (m *SetSendMsgStatusReq) Reset() { *m = SetSendMsgStatusReq{} }
func (m *SetSendMsgStatusReq) String() string { return proto.CompactTextString(m) } func (m *SetSendMsgStatusReq) String() string { return proto.CompactTextString(m) }
func (*SetSendMsgStatusReq) ProtoMessage() {} func (*SetSendMsgStatusReq) ProtoMessage() {}
func (*SetSendMsgStatusReq) Descriptor() ([]byte, []int) { func (*SetSendMsgStatusReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{12} return fileDescriptor_msg_53ecdffb017d9c40, []int{12}
} }
func (m *SetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { func (m *SetSendMsgStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetSendMsgStatusReq.Unmarshal(m, b) return xxx_messageInfo_SetSendMsgStatusReq.Unmarshal(m, b)
@ -768,7 +775,7 @@ func (m *SetSendMsgStatusResp) Reset() { *m = SetSendMsgStatusResp{} }
func (m *SetSendMsgStatusResp) String() string { return proto.CompactTextString(m) } func (m *SetSendMsgStatusResp) String() string { return proto.CompactTextString(m) }
func (*SetSendMsgStatusResp) ProtoMessage() {} func (*SetSendMsgStatusResp) ProtoMessage() {}
func (*SetSendMsgStatusResp) Descriptor() ([]byte, []int) { func (*SetSendMsgStatusResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{13} return fileDescriptor_msg_53ecdffb017d9c40, []int{13}
} }
func (m *SetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { func (m *SetSendMsgStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetSendMsgStatusResp.Unmarshal(m, b) return xxx_messageInfo_SetSendMsgStatusResp.Unmarshal(m, b)
@ -813,7 +820,7 @@ func (m *GetSendMsgStatusReq) Reset() { *m = GetSendMsgStatusReq{} }
func (m *GetSendMsgStatusReq) String() string { return proto.CompactTextString(m) } func (m *GetSendMsgStatusReq) String() string { return proto.CompactTextString(m) }
func (*GetSendMsgStatusReq) ProtoMessage() {} func (*GetSendMsgStatusReq) ProtoMessage() {}
func (*GetSendMsgStatusReq) Descriptor() ([]byte, []int) { func (*GetSendMsgStatusReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{14} return fileDescriptor_msg_53ecdffb017d9c40, []int{14}
} }
func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b) return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b)
@ -853,7 +860,7 @@ func (m *GetSendMsgStatusResp) Reset() { *m = GetSendMsgStatusResp{} }
func (m *GetSendMsgStatusResp) String() string { return proto.CompactTextString(m) } func (m *GetSendMsgStatusResp) String() string { return proto.CompactTextString(m) }
func (*GetSendMsgStatusResp) ProtoMessage() {} func (*GetSendMsgStatusResp) ProtoMessage() {}
func (*GetSendMsgStatusResp) Descriptor() ([]byte, []int) { func (*GetSendMsgStatusResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{15} return fileDescriptor_msg_53ecdffb017d9c40, []int{15}
} }
func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b) return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b)
@ -908,7 +915,7 @@ func (m *DelSuperGroupMsgReq) Reset() { *m = DelSuperGroupMsgReq{} }
func (m *DelSuperGroupMsgReq) String() string { return proto.CompactTextString(m) } func (m *DelSuperGroupMsgReq) String() string { return proto.CompactTextString(m) }
func (*DelSuperGroupMsgReq) ProtoMessage() {} func (*DelSuperGroupMsgReq) ProtoMessage() {}
func (*DelSuperGroupMsgReq) Descriptor() ([]byte, []int) { func (*DelSuperGroupMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{16} return fileDescriptor_msg_53ecdffb017d9c40, []int{16}
} }
func (m *DelSuperGroupMsgReq) XXX_Unmarshal(b []byte) error { func (m *DelSuperGroupMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelSuperGroupMsgReq.Unmarshal(m, b) return xxx_messageInfo_DelSuperGroupMsgReq.Unmarshal(m, b)
@ -968,7 +975,7 @@ func (m *DelSuperGroupMsgResp) Reset() { *m = DelSuperGroupMsgResp{} }
func (m *DelSuperGroupMsgResp) String() string { return proto.CompactTextString(m) } func (m *DelSuperGroupMsgResp) String() string { return proto.CompactTextString(m) }
func (*DelSuperGroupMsgResp) ProtoMessage() {} func (*DelSuperGroupMsgResp) ProtoMessage() {}
func (*DelSuperGroupMsgResp) Descriptor() ([]byte, []int) { func (*DelSuperGroupMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{17} return fileDescriptor_msg_53ecdffb017d9c40, []int{17}
} }
func (m *DelSuperGroupMsgResp) XXX_Unmarshal(b []byte) error { func (m *DelSuperGroupMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelSuperGroupMsgResp.Unmarshal(m, b) return xxx_messageInfo_DelSuperGroupMsgResp.Unmarshal(m, b)
@ -1015,7 +1022,7 @@ func (m *GetSuperGroupMsgReq) Reset() { *m = GetSuperGroupMsgReq{} }
func (m *GetSuperGroupMsgReq) String() string { return proto.CompactTextString(m) } func (m *GetSuperGroupMsgReq) String() string { return proto.CompactTextString(m) }
func (*GetSuperGroupMsgReq) ProtoMessage() {} func (*GetSuperGroupMsgReq) ProtoMessage() {}
func (*GetSuperGroupMsgReq) Descriptor() ([]byte, []int) { func (*GetSuperGroupMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{18} return fileDescriptor_msg_53ecdffb017d9c40, []int{18}
} }
func (m *GetSuperGroupMsgReq) XXX_Unmarshal(b []byte) error { func (m *GetSuperGroupMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupMsgReq.Unmarshal(m, b) return xxx_messageInfo_GetSuperGroupMsgReq.Unmarshal(m, b)
@ -1069,7 +1076,7 @@ func (m *GetSuperGroupMsgResp) Reset() { *m = GetSuperGroupMsgResp{} }
func (m *GetSuperGroupMsgResp) String() string { return proto.CompactTextString(m) } func (m *GetSuperGroupMsgResp) String() string { return proto.CompactTextString(m) }
func (*GetSuperGroupMsgResp) ProtoMessage() {} func (*GetSuperGroupMsgResp) ProtoMessage() {}
func (*GetSuperGroupMsgResp) Descriptor() ([]byte, []int) { func (*GetSuperGroupMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{19} return fileDescriptor_msg_53ecdffb017d9c40, []int{19}
} }
func (m *GetSuperGroupMsgResp) XXX_Unmarshal(b []byte) error { func (m *GetSuperGroupMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSuperGroupMsgResp.Unmarshal(m, b) return xxx_messageInfo_GetSuperGroupMsgResp.Unmarshal(m, b)
@ -1122,7 +1129,7 @@ func (m *GetWriteDiffMsgReq) Reset() { *m = GetWriteDiffMsgReq{} }
func (m *GetWriteDiffMsgReq) String() string { return proto.CompactTextString(m) } func (m *GetWriteDiffMsgReq) String() string { return proto.CompactTextString(m) }
func (*GetWriteDiffMsgReq) ProtoMessage() {} func (*GetWriteDiffMsgReq) ProtoMessage() {}
func (*GetWriteDiffMsgReq) Descriptor() ([]byte, []int) { func (*GetWriteDiffMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{20} return fileDescriptor_msg_53ecdffb017d9c40, []int{20}
} }
func (m *GetWriteDiffMsgReq) XXX_Unmarshal(b []byte) error { func (m *GetWriteDiffMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWriteDiffMsgReq.Unmarshal(m, b) return xxx_messageInfo_GetWriteDiffMsgReq.Unmarshal(m, b)
@ -1169,7 +1176,7 @@ func (m *GetWriteDiffMsgResp) Reset() { *m = GetWriteDiffMsgResp{} }
func (m *GetWriteDiffMsgResp) String() string { return proto.CompactTextString(m) } func (m *GetWriteDiffMsgResp) String() string { return proto.CompactTextString(m) }
func (*GetWriteDiffMsgResp) ProtoMessage() {} func (*GetWriteDiffMsgResp) ProtoMessage() {}
func (*GetWriteDiffMsgResp) Descriptor() ([]byte, []int) { func (*GetWriteDiffMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{21} return fileDescriptor_msg_53ecdffb017d9c40, []int{21}
} }
func (m *GetWriteDiffMsgResp) XXX_Unmarshal(b []byte) error { func (m *GetWriteDiffMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetWriteDiffMsgResp.Unmarshal(m, b) return xxx_messageInfo_GetWriteDiffMsgResp.Unmarshal(m, b)
@ -1231,7 +1238,7 @@ func (m *ModifyMessageReactionExtensionsReq) Reset() { *m = ModifyMessag
func (m *ModifyMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (m *ModifyMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*ModifyMessageReactionExtensionsReq) ProtoMessage() {} func (*ModifyMessageReactionExtensionsReq) ProtoMessage() {}
func (*ModifyMessageReactionExtensionsReq) Descriptor() ([]byte, []int) { func (*ModifyMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{22} return fileDescriptor_msg_53ecdffb017d9c40, []int{22}
} }
func (m *ModifyMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error { func (m *ModifyMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ModifyMessageReactionExtensionsReq.Unmarshal(m, b) return xxx_messageInfo_ModifyMessageReactionExtensionsReq.Unmarshal(m, b)
@ -1350,7 +1357,7 @@ func (m *SetMessageReactionExtensionsReq) Reset() { *m = SetMessageReact
func (m *SetMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (m *SetMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*SetMessageReactionExtensionsReq) ProtoMessage() {} func (*SetMessageReactionExtensionsReq) ProtoMessage() {}
func (*SetMessageReactionExtensionsReq) Descriptor() ([]byte, []int) { func (*SetMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{23} return fileDescriptor_msg_53ecdffb017d9c40, []int{23}
} }
func (m *SetMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error { func (m *SetMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMessageReactionExtensionsReq.Unmarshal(m, b) return xxx_messageInfo_SetMessageReactionExtensionsReq.Unmarshal(m, b)
@ -1470,7 +1477,7 @@ func (m *SetMessageReactionExtensionsResp) Reset() { *m = SetMessageReac
func (m *SetMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (m *SetMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*SetMessageReactionExtensionsResp) ProtoMessage() {} func (*SetMessageReactionExtensionsResp) ProtoMessage() {}
func (*SetMessageReactionExtensionsResp) Descriptor() ([]byte, []int) { func (*SetMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{24} return fileDescriptor_msg_53ecdffb017d9c40, []int{24}
} }
func (m *SetMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error { func (m *SetMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetMessageReactionExtensionsResp.Unmarshal(m, b) return xxx_messageInfo_SetMessageReactionExtensionsResp.Unmarshal(m, b)
@ -1555,7 +1562,7 @@ func (m *AddMessageReactionExtensionsReq) Reset() { *m = AddMessageReact
func (m *AddMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (m *AddMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*AddMessageReactionExtensionsReq) ProtoMessage() {} func (*AddMessageReactionExtensionsReq) ProtoMessage() {}
func (*AddMessageReactionExtensionsReq) Descriptor() ([]byte, []int) { func (*AddMessageReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{25} return fileDescriptor_msg_53ecdffb017d9c40, []int{25}
} }
func (m *AddMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error { func (m *AddMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddMessageReactionExtensionsReq.Unmarshal(m, b) return xxx_messageInfo_AddMessageReactionExtensionsReq.Unmarshal(m, b)
@ -1682,7 +1689,7 @@ func (m *AddMessageReactionExtensionsResp) Reset() { *m = AddMessageReac
func (m *AddMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (m *AddMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*AddMessageReactionExtensionsResp) ProtoMessage() {} func (*AddMessageReactionExtensionsResp) ProtoMessage() {}
func (*AddMessageReactionExtensionsResp) Descriptor() ([]byte, []int) { func (*AddMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{26} return fileDescriptor_msg_53ecdffb017d9c40, []int{26}
} }
func (m *AddMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error { func (m *AddMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddMessageReactionExtensionsResp.Unmarshal(m, b) return xxx_messageInfo_AddMessageReactionExtensionsResp.Unmarshal(m, b)
@ -1761,7 +1768,7 @@ func (m *GetMessageListReactionExtensionsReq) Reset() { *m = GetMessageL
func (m *GetMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (m *GetMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*GetMessageListReactionExtensionsReq) ProtoMessage() {} func (*GetMessageListReactionExtensionsReq) ProtoMessage() {}
func (*GetMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) { func (*GetMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{27} return fileDescriptor_msg_53ecdffb017d9c40, []int{27}
} }
func (m *GetMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error { func (m *GetMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMessageListReactionExtensionsReq.Unmarshal(m, b) return xxx_messageInfo_GetMessageListReactionExtensionsReq.Unmarshal(m, b)
@ -1846,7 +1853,7 @@ func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) String() string
} }
func (*GetMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {} func (*GetMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {}
func (*GetMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) { func (*GetMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{27, 0} return fileDescriptor_msg_53ecdffb017d9c40, []int{27, 0}
} }
func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error { func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b) return xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b)
@ -1893,7 +1900,7 @@ func (m *GetMessageListReactionExtensionsResp) Reset() { *m = GetMessage
func (m *GetMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (m *GetMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*GetMessageListReactionExtensionsResp) ProtoMessage() {} func (*GetMessageListReactionExtensionsResp) ProtoMessage() {}
func (*GetMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) { func (*GetMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{28} return fileDescriptor_msg_53ecdffb017d9c40, []int{28}
} }
func (m *GetMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error { func (m *GetMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMessageListReactionExtensionsResp.Unmarshal(m, b) return xxx_messageInfo_GetMessageListReactionExtensionsResp.Unmarshal(m, b)
@ -1948,7 +1955,7 @@ func (m *SingleMessageExtensionResult) Reset() { *m = SingleMessageExten
func (m *SingleMessageExtensionResult) String() string { return proto.CompactTextString(m) } func (m *SingleMessageExtensionResult) String() string { return proto.CompactTextString(m) }
func (*SingleMessageExtensionResult) ProtoMessage() {} func (*SingleMessageExtensionResult) ProtoMessage() {}
func (*SingleMessageExtensionResult) Descriptor() ([]byte, []int) { func (*SingleMessageExtensionResult) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{29} return fileDescriptor_msg_53ecdffb017d9c40, []int{29}
} }
func (m *SingleMessageExtensionResult) XXX_Unmarshal(b []byte) error { func (m *SingleMessageExtensionResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SingleMessageExtensionResult.Unmarshal(m, b) return xxx_messageInfo_SingleMessageExtensionResult.Unmarshal(m, b)
@ -2010,7 +2017,7 @@ func (m *ModifyMessageReactionExtensionsResp) Reset() { *m = ModifyMessa
func (m *ModifyMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (m *ModifyMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*ModifyMessageReactionExtensionsResp) ProtoMessage() {} func (*ModifyMessageReactionExtensionsResp) ProtoMessage() {}
func (*ModifyMessageReactionExtensionsResp) Descriptor() ([]byte, []int) { func (*ModifyMessageReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{30} return fileDescriptor_msg_53ecdffb017d9c40, []int{30}
} }
func (m *ModifyMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error { func (m *ModifyMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ModifyMessageReactionExtensionsResp.Unmarshal(m, b) return xxx_messageInfo_ModifyMessageReactionExtensionsResp.Unmarshal(m, b)
@ -2079,7 +2086,7 @@ func (m *DeleteMessageListReactionExtensionsReq) Reset() {
func (m *DeleteMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (m *DeleteMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) }
func (*DeleteMessageListReactionExtensionsReq) ProtoMessage() {} func (*DeleteMessageListReactionExtensionsReq) ProtoMessage() {}
func (*DeleteMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) { func (*DeleteMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{31} return fileDescriptor_msg_53ecdffb017d9c40, []int{31}
} }
func (m *DeleteMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error { func (m *DeleteMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Unmarshal(m, b) return xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Unmarshal(m, b)
@ -2177,7 +2184,7 @@ func (m *DeleteMessageListReactionExtensionsResp) Reset() {
func (m *DeleteMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (m *DeleteMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) }
func (*DeleteMessageListReactionExtensionsResp) ProtoMessage() {} func (*DeleteMessageListReactionExtensionsResp) ProtoMessage() {}
func (*DeleteMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) { func (*DeleteMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{32} return fileDescriptor_msg_53ecdffb017d9c40, []int{32}
} }
func (m *DeleteMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error { func (m *DeleteMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Unmarshal(m, b) return xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Unmarshal(m, b)
@ -2231,7 +2238,7 @@ func (m *ExtendMsgResp) Reset() { *m = ExtendMsgResp{} }
func (m *ExtendMsgResp) String() string { return proto.CompactTextString(m) } func (m *ExtendMsgResp) String() string { return proto.CompactTextString(m) }
func (*ExtendMsgResp) ProtoMessage() {} func (*ExtendMsgResp) ProtoMessage() {}
func (*ExtendMsgResp) Descriptor() ([]byte, []int) { func (*ExtendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{33} return fileDescriptor_msg_53ecdffb017d9c40, []int{33}
} }
func (m *ExtendMsgResp) XXX_Unmarshal(b []byte) error { func (m *ExtendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtendMsgResp.Unmarshal(m, b) return xxx_messageInfo_ExtendMsgResp.Unmarshal(m, b)
@ -2287,7 +2294,7 @@ func (m *ExtendMsg) Reset() { *m = ExtendMsg{} }
func (m *ExtendMsg) String() string { return proto.CompactTextString(m) } func (m *ExtendMsg) String() string { return proto.CompactTextString(m) }
func (*ExtendMsg) ProtoMessage() {} func (*ExtendMsg) ProtoMessage() {}
func (*ExtendMsg) Descriptor() ([]byte, []int) { func (*ExtendMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{34} return fileDescriptor_msg_53ecdffb017d9c40, []int{34}
} }
func (m *ExtendMsg) XXX_Unmarshal(b []byte) error { func (m *ExtendMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtendMsg.Unmarshal(m, b) return xxx_messageInfo_ExtendMsg.Unmarshal(m, b)
@ -2355,7 +2362,7 @@ func (m *KeyValueResp) Reset() { *m = KeyValueResp{} }
func (m *KeyValueResp) String() string { return proto.CompactTextString(m) } func (m *KeyValueResp) String() string { return proto.CompactTextString(m) }
func (*KeyValueResp) ProtoMessage() {} func (*KeyValueResp) ProtoMessage() {}
func (*KeyValueResp) Descriptor() ([]byte, []int) { func (*KeyValueResp) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{35} return fileDescriptor_msg_53ecdffb017d9c40, []int{35}
} }
func (m *KeyValueResp) XXX_Unmarshal(b []byte) error { func (m *KeyValueResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyValueResp.Unmarshal(m, b) return xxx_messageInfo_KeyValueResp.Unmarshal(m, b)
@ -2409,7 +2416,7 @@ func (m *MsgDataToModifyByMQ) Reset() { *m = MsgDataToModifyByMQ{} }
func (m *MsgDataToModifyByMQ) String() string { return proto.CompactTextString(m) } func (m *MsgDataToModifyByMQ) String() string { return proto.CompactTextString(m) }
func (*MsgDataToModifyByMQ) ProtoMessage() {} func (*MsgDataToModifyByMQ) ProtoMessage() {}
func (*MsgDataToModifyByMQ) Descriptor() ([]byte, []int) { func (*MsgDataToModifyByMQ) Descriptor() ([]byte, []int) {
return fileDescriptor_msg_de22c4c4e5c699f1, []int{36} return fileDescriptor_msg_53ecdffb017d9c40, []int{36}
} }
func (m *MsgDataToModifyByMQ) XXX_Unmarshal(b []byte) error { func (m *MsgDataToModifyByMQ) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgDataToModifyByMQ.Unmarshal(m, b) return xxx_messageInfo_MsgDataToModifyByMQ.Unmarshal(m, b)
@ -3032,120 +3039,120 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
Metadata: "msg/msg.proto", Metadata: "msg/msg.proto",
} }
func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_de22c4c4e5c699f1) } func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_53ecdffb017d9c40) }
var fileDescriptor_msg_de22c4c4e5c699f1 = []byte{ var fileDescriptor_msg_53ecdffb017d9c40 = []byte{
// 1780 bytes of a gzipped FileDescriptorProto // 1785 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x4f, 0x6f, 0xdb, 0xc8, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x4f, 0x6f, 0xdb, 0xc8,
0x15, 0x07, 0x45, 0x4b, 0xb2, 0x9e, 0xec, 0xd8, 0x19, 0x3b, 0xae, 0xc2, 0x18, 0x88, 0xc2, 0xfc, 0x15, 0x07, 0x45, 0x53, 0xb2, 0x9e, 0xec, 0xb5, 0x77, 0xec, 0x75, 0xb5, 0x5c, 0x03, 0xd1, 0x72,
0x73, 0x9a, 0x44, 0x46, 0xdd, 0x02, 0x29, 0x9a, 0x02, 0x4d, 0x1c, 0xb9, 0x8a, 0x91, 0xaa, 0x8e, 0xb3, 0x1b, 0xa7, 0x49, 0x64, 0xd4, 0x2d, 0x90, 0xa2, 0x29, 0xd0, 0xc4, 0x91, 0xab, 0x18, 0xa9,
0x29, 0xb7, 0x05, 0xda, 0x83, 0xc3, 0x48, 0x23, 0x86, 0xb0, 0x44, 0xd2, 0x1c, 0x2a, 0xb6, 0xfa, 0xea, 0x98, 0x72, 0x5b, 0xa0, 0x3d, 0x38, 0x8c, 0x34, 0x62, 0x08, 0x4b, 0x24, 0xcd, 0xa1, 0x62,
0xef, 0x50, 0xa0, 0x7b, 0xcb, 0x61, 0x8f, 0x7b, 0xda, 0xdb, 0xde, 0xf2, 0x09, 0xf6, 0xb4, 0x1f, 0xab, 0xff, 0x0e, 0x05, 0xda, 0x5b, 0x0e, 0x3d, 0xf6, 0x0b, 0xf4, 0x16, 0xf4, 0x03, 0xf4, 0xd4,
0x20, 0xd8, 0xcb, 0x7e, 0x8b, 0xfd, 0x12, 0x8b, 0x99, 0xa1, 0xa4, 0xe1, 0x3f, 0x91, 0x96, 0x03, 0x0f, 0x10, 0xf4, 0xd2, 0x6f, 0xd1, 0x2f, 0x51, 0xcc, 0x0c, 0x29, 0x0d, 0xff, 0x89, 0xb4, 0x1c,
0x07, 0xd8, 0xdd, 0x9b, 0x66, 0xe6, 0xcd, 0x9b, 0xf7, 0x7b, 0xef, 0xf7, 0x66, 0x86, 0xf3, 0x04, 0x38, 0x40, 0xdb, 0x9b, 0x66, 0xe6, 0xcd, 0x9b, 0xf7, 0x7b, 0xef, 0xf7, 0x66, 0x86, 0xf3, 0x04,
0x8b, 0x7d, 0x62, 0x6c, 0xf6, 0x89, 0x51, 0x73, 0x5c, 0xdb, 0xb3, 0x91, 0xdc, 0x27, 0x86, 0xb2, 0xab, 0x23, 0x62, 0xee, 0x8e, 0x88, 0xd9, 0x74, 0x3d, 0xc7, 0x77, 0x90, 0x3c, 0x22, 0xa6, 0xba,
0xb1, 0xe7, 0x60, 0xeb, 0xe1, 0x6e, 0xf3, 0x61, 0x0b, 0xbb, 0x6f, 0xb1, 0xbb, 0xe9, 0x1c, 0x19, 0x73, 0xe4, 0x62, 0xfb, 0xc1, 0x61, 0xe7, 0x41, 0x17, 0x7b, 0x6f, 0xb0, 0xb7, 0xeb, 0x9e, 0x99,
0x9b, 0x6c, 0x78, 0x93, 0x74, 0x8e, 0x0e, 0x4f, 0xc8, 0xe6, 0x09, 0xe1, 0xe2, 0x4a, 0x2d, 0x55, 0xbb, 0x6c, 0x78, 0x97, 0xf4, 0xcf, 0x4e, 0x2f, 0xc8, 0xee, 0x05, 0xe1, 0xe2, 0x6a, 0x33, 0x57,
0xd2, 0xd5, 0x1d, 0x07, 0xbb, 0xbe, 0xbc, 0xfa, 0x2f, 0x28, 0x37, 0x89, 0x51, 0xd7, 0x3d, 0xfd, 0xd2, 0x33, 0x5c, 0x17, 0x7b, 0x81, 0xbc, 0xf6, 0x1b, 0xa8, 0x75, 0x88, 0xd9, 0x32, 0x7c, 0xe3,
0xc0, 0x6e, 0xee, 0xa3, 0x55, 0xc8, 0x7b, 0xf6, 0x11, 0xb6, 0x2a, 0x52, 0x55, 0xda, 0x28, 0x69, 0xc4, 0xe9, 0x1c, 0xa3, 0x4d, 0x50, 0x7c, 0xe7, 0x0c, 0xdb, 0x75, 0xa9, 0x21, 0xed, 0x54, 0x75,
0xbc, 0x81, 0xaa, 0x50, 0xb6, 0x1d, 0xec, 0xea, 0x9e, 0x69, 0x5b, 0xbb, 0xf5, 0x4a, 0x8e, 0x8d, 0xde, 0x40, 0x0d, 0xa8, 0x39, 0x2e, 0xf6, 0x0c, 0xdf, 0x72, 0xec, 0xc3, 0x56, 0xbd, 0xc4, 0xc6,
0x89, 0x5d, 0xe8, 0x37, 0x50, 0xec, 0x73, 0x35, 0x15, 0xb9, 0x2a, 0x6d, 0x94, 0xb7, 0x94, 0x1a, 0xc4, 0x2e, 0xf4, 0x3d, 0xa8, 0x8c, 0xb8, 0x9a, 0xba, 0xdc, 0x90, 0x76, 0x6a, 0x7b, 0x6a, 0x93,
0x61, 0x06, 0x1c, 0xea, 0x8e, 0x79, 0xe8, 0xe8, 0xae, 0xde, 0x27, 0x35, 0x7f, 0x21, 0x6d, 0x24, 0x30, 0x03, 0x4e, 0x0d, 0xd7, 0x3a, 0x75, 0x0d, 0xcf, 0x18, 0x91, 0x66, 0xb0, 0x90, 0x1e, 0x8a,
0xaa, 0x62, 0x61, 0xf1, 0xfa, 0xb6, 0xa8, 0x44, 0xca, 0xac, 0x24, 0xdd, 0x38, 0xf5, 0x9d, 0x04, 0x6a, 0x58, 0x58, 0xbc, 0xb5, 0x2f, 0x2a, 0x91, 0x0a, 0x2b, 0xc9, 0x37, 0x4e, 0x7b, 0x2b, 0xc1,
0x4b, 0x2f, 0x07, 0xe4, 0x8d, 0x08, 0xb4, 0x0a, 0xe5, 0x3d, 0x61, 0x16, 0x87, 0x2b, 0x76, 0x89, 0xda, 0x8b, 0x31, 0x79, 0x2d, 0x02, 0x6d, 0x40, 0xed, 0x48, 0x98, 0xc5, 0xe1, 0x8a, 0x5d, 0xa2,
0xd6, 0xe4, 0xb2, 0x5b, 0xa3, 0xc2, 0x82, 0x33, 0x20, 0x6f, 0x0e, 0xec, 0xbf, 0x10, 0xec, 0xee, 0x35, 0xa5, 0xe2, 0xd6, 0x68, 0xb0, 0xe2, 0x8e, 0xc9, 0xeb, 0x13, 0xe7, 0x67, 0x04, 0x7b, 0x87,
0xd6, 0x99, 0x37, 0x4a, 0x5a, 0xa0, 0x4f, 0xfd, 0x4a, 0x02, 0x34, 0xb1, 0xc5, 0xb6, 0x0c, 0x7b, 0x2d, 0xe6, 0x8d, 0xaa, 0x1e, 0xe9, 0xd3, 0xfe, 0x2a, 0x01, 0x9a, 0xd9, 0xe2, 0xd8, 0xa6, 0xb3,
0x7b, 0xd8, 0xdc, 0x47, 0x15, 0x28, 0xf6, 0x74, 0xe2, 0xb5, 0xf0, 0x31, 0x33, 0x67, 0x4e, 0x1b, 0x3f, 0xe9, 0x1c, 0xa3, 0x3a, 0x54, 0x86, 0x06, 0xf1, 0xbb, 0xf8, 0x9c, 0x99, 0xb3, 0xa4, 0x87,
0x35, 0xd1, 0x2d, 0x58, 0xd4, 0x0d, 0xc3, 0xc5, 0x46, 0x10, 0x64, 0xb0, 0x13, 0x6d, 0x41, 0xb9, 0x4d, 0x74, 0x1b, 0x56, 0x0d, 0xd3, 0xf4, 0xb0, 0x19, 0x05, 0x19, 0xed, 0x44, 0x7b, 0x50, 0x1b,
0x8f, 0x09, 0xd1, 0x0d, 0xfc, 0x27, 0x93, 0x78, 0x15, 0xb9, 0x2a, 0x6f, 0x94, 0xb7, 0x96, 0x6b, 0x61, 0x42, 0x0c, 0x13, 0xff, 0xc4, 0x22, 0x7e, 0x5d, 0x6e, 0xc8, 0x3b, 0xb5, 0xbd, 0xf5, 0x26,
0x94, 0x4a, 0x02, 0x72, 0x4d, 0x14, 0x42, 0xeb, 0x50, 0xf2, 0x5c, 0xd3, 0x30, 0x98, 0xad, 0x73, 0xa5, 0x92, 0x80, 0x5c, 0x17, 0x85, 0xd0, 0x36, 0x54, 0x7d, 0xcf, 0x32, 0x4d, 0x66, 0xeb, 0x12,
0x4c, 0xeb, 0xa4, 0x43, 0xfd, 0x33, 0xa0, 0x06, 0xf6, 0x9a, 0xfa, 0xe9, 0x53, 0xab, 0xd3, 0x34, 0xd3, 0x3a, 0xeb, 0xd0, 0x7e, 0x0a, 0xa8, 0x8d, 0xfd, 0x8e, 0x71, 0xf9, 0xc4, 0xee, 0x77, 0x2c,
0xad, 0x16, 0x3e, 0xd6, 0xf0, 0x31, 0x5a, 0x83, 0x82, 0x0f, 0x8e, 0x7b, 0xcd, 0x6f, 0x85, 0x5d, 0xbb, 0x8b, 0xcf, 0x75, 0x7c, 0x8e, 0xb6, 0xa0, 0x1c, 0x80, 0xe3, 0x5e, 0x0b, 0x5a, 0x71, 0x97,
0x9a, 0x8b, 0xb8, 0x54, 0x3d, 0x81, 0x95, 0x88, 0x3e, 0xe2, 0x50, 0xe0, 0x3b, 0xae, 0xfb, 0xcc, 0x96, 0x12, 0x2e, 0xd5, 0x2e, 0x60, 0x23, 0xa1, 0x8f, 0xb8, 0x14, 0xf8, 0x81, 0xe7, 0x3d, 0x75,
0xee, 0x60, 0xa6, 0x31, 0xaf, 0x8d, 0x9a, 0x74, 0xa9, 0x1d, 0xd7, 0x6d, 0x12, 0xc3, 0xd7, 0xe6, 0xfa, 0x98, 0x69, 0x54, 0xf4, 0xb0, 0x49, 0x97, 0x3a, 0xf0, 0xbc, 0x0e, 0x31, 0x03, 0x6d, 0x41,
0xb7, 0x68, 0x7f, 0x53, 0x3f, 0xa5, 0x9e, 0xa2, 0xfe, 0x5d, 0xd4, 0xfc, 0x16, 0xeb, 0x67, 0x7a, 0x8b, 0xf6, 0x77, 0x8c, 0x4b, 0xea, 0x29, 0xea, 0xdf, 0x55, 0x3d, 0x68, 0xb1, 0x7e, 0xa6, 0x97,
0x19, 0x16, 0xda, 0xcf, 0x5a, 0xea, 0x3f, 0x01, 0x5a, 0xd8, 0xea, 0x34, 0x89, 0x41, 0x01, 0x5c, 0x61, 0xa1, 0xfd, 0xac, 0xa5, 0xfd, 0x1a, 0xa0, 0x8b, 0xed, 0x7e, 0x87, 0x98, 0x14, 0xc0, 0xcd,
0x2c, 0xc9, 0xbf, 0x94, 0xa0, 0x3c, 0x5e, 0x9c, 0xa3, 0xc5, 0x41, 0xb4, 0x78, 0x82, 0x16, 0x07, 0x92, 0xfc, 0x6f, 0x12, 0xd4, 0xa6, 0x8b, 0x73, 0xb4, 0x38, 0x8a, 0x16, 0xcf, 0xd0, 0xe2, 0x08,
0xd0, 0xf2, 0x16, 0xb5, 0x8c, 0xaf, 0xd3, 0x24, 0xc6, 0x38, 0x4c, 0x62, 0x17, 0x95, 0x68, 0xf7, 0x5a, 0xde, 0xa2, 0x96, 0xf1, 0x75, 0x3a, 0xc4, 0x9c, 0x86, 0x49, 0xec, 0xa2, 0x12, 0xbd, 0xa1,
0x4c, 0x6c, 0x79, 0x5c, 0x22, 0xcf, 0x25, 0x84, 0x2e, 0xa4, 0xc0, 0x3c, 0xc1, 0x56, 0xe7, 0xc0, 0x85, 0x6d, 0x9f, 0x4b, 0x28, 0x5c, 0x42, 0xe8, 0x42, 0x2a, 0x2c, 0x13, 0x6c, 0xf7, 0x4f, 0xac,
0xec, 0xe3, 0x4a, 0xa1, 0x2a, 0x6d, 0xc8, 0xda, 0xb8, 0xad, 0xb6, 0xa1, 0xfc, 0xac, 0x87, 0x75, 0x11, 0xae, 0x97, 0x1b, 0xd2, 0x8e, 0xac, 0x4f, 0xdb, 0xe8, 0x13, 0x28, 0xe1, 0xcb, 0x7a, 0x85,
0xd7, 0x77, 0xcf, 0x1a, 0x14, 0x06, 0x81, 0xf8, 0xf2, 0x16, 0x55, 0x61, 0x3b, 0x7e, 0xe4, 0xb9, 0x4d, 0x2a, 0xe1, 0x4b, 0xad, 0x07, 0xb5, 0xa7, 0x43, 0x6c, 0x78, 0x81, 0xbb, 0xb6, 0xa0, 0x3c,
0x81, 0xe3, 0x76, 0xd8, 0x79, 0x72, 0x34, 0x09, 0x9f, 0xc0, 0xc2, 0x64, 0x91, 0x59, 0xdc, 0xa0, 0x8e, 0xc4, 0x9b, 0xb7, 0xa8, 0x4a, 0xc7, 0x0d, 0x98, 0xc0, 0x0d, 0x9e, 0xb6, 0xe3, 0xce, 0x94,
0x7e, 0x21, 0xc1, 0x52, 0x0b, 0x53, 0x3c, 0x01, 0x2e, 0xc6, 0xda, 0x5a, 0x81, 0xa2, 0xe1, 0xda, 0x93, 0x49, 0xf9, 0x18, 0x56, 0x66, 0x8b, 0x2c, 0xe2, 0x16, 0xed, 0x2f, 0x12, 0xac, 0x75, 0x31,
0x03, 0x67, 0x6c, 0xea, 0xa8, 0x49, 0x67, 0xf4, 0x39, 0x45, 0x7c, 0xea, 0xf0, 0x56, 0x18, 0xc1, 0xc5, 0x17, 0xe1, 0x66, 0xaa, 0xad, 0x75, 0xa8, 0x98, 0x9e, 0x33, 0x76, 0xa7, 0xa6, 0x86, 0x4d,
0x5c, 0x34, 0xfc, 0x22, 0xfe, 0x7c, 0x10, 0xbf, 0x5a, 0x87, 0xe5, 0xa0, 0x69, 0x33, 0x21, 0xdc, 0x3a, 0x63, 0xc4, 0x29, 0x13, 0x50, 0x89, 0xb7, 0xe2, 0x08, 0x96, 0x92, 0x74, 0x10, 0xf1, 0x2b,
0x83, 0x95, 0x16, 0xf6, 0x7c, 0xb2, 0xb4, 0x3c, 0xdd, 0x1b, 0x10, 0x2d, 0x6a, 0x9a, 0x14, 0x35, 0x51, 0xfc, 0x5a, 0x0b, 0xd6, 0xa3, 0xa6, 0x2d, 0x84, 0xf0, 0x08, 0x36, 0xba, 0xd8, 0x0f, 0xc8,
0x6d, 0x0d, 0x0a, 0x84, 0x89, 0x33, 0x85, 0x79, 0xcd, 0x6f, 0xa9, 0xcf, 0x61, 0x35, 0xaa, 0x70, 0xd3, 0xf5, 0x0d, 0x7f, 0x4c, 0xf4, 0xa4, 0x69, 0x52, 0xd2, 0xb4, 0x2d, 0x28, 0x13, 0x26, 0xce,
0x26, 0xd3, 0x1e, 0xb1, 0xd4, 0x3d, 0xbb, 0x69, 0xea, 0x2b, 0x58, 0x6d, 0x7c, 0x14, 0x13, 0x04, 0x14, 0x2a, 0x7a, 0xd0, 0xd2, 0x9e, 0xc1, 0x66, 0x52, 0xe1, 0x42, 0xa6, 0x3d, 0x64, 0xa9, 0x7c,
0x90, 0x72, 0x00, 0xe4, 0xff, 0x25, 0x58, 0xa9, 0xe3, 0x5e, 0x6b, 0xe0, 0x60, 0xb7, 0x41, 0xa3, 0x75, 0xd3, 0xb4, 0x97, 0xb0, 0xd9, 0xfe, 0x20, 0x26, 0x08, 0x20, 0xe5, 0x08, 0xc8, 0x3f, 0x4a,
0xec, 0xf3, 0x58, 0x8c, 0x97, 0x14, 0xe2, 0xeb, 0x84, 0x37, 0xb9, 0x24, 0xde, 0xc8, 0x41, 0xde, 0xb0, 0xd1, 0xc2, 0xc3, 0xee, 0xd8, 0xc5, 0x5e, 0x9b, 0x46, 0x39, 0xe0, 0xb1, 0x18, 0x2f, 0x29,
0xa4, 0xf2, 0x83, 0x3a, 0x3b, 0x6a, 0xc6, 0x4c, 0xce, 0x6e, 0x73, 0x67, 0x87, 0x01, 0xa5, 0xf3, 0xc6, 0xd7, 0x19, 0x6f, 0x4a, 0x59, 0xbc, 0x91, 0xa3, 0xbc, 0xc9, 0xe5, 0x07, 0x75, 0x76, 0xd2,
0x60, 0x19, 0x64, 0xca, 0xec, 0x1c, 0x63, 0x36, 0xfd, 0x99, 0x0c, 0x48, 0xfd, 0x2f, 0x0f, 0xcc, 0x8c, 0x85, 0x9c, 0xdd, 0xe3, 0xce, 0x8e, 0x03, 0xca, 0xe7, 0xc1, 0x3a, 0xc8, 0x94, 0xd9, 0x25,
0xf9, 0xcd, 0x9d, 0x71, 0x5f, 0x7c, 0xce, 0x0e, 0x97, 0xbf, 0xb9, 0xa6, 0x87, 0xeb, 0x66, 0xb7, 0xc6, 0x6c, 0xfa, 0x33, 0x1b, 0x90, 0xf6, 0x7b, 0x1e, 0x98, 0xeb, 0x9b, 0xbb, 0xe0, 0x3e, 0xf9,
0x3b, 0x3b, 0x46, 0xf5, 0x3f, 0xcc, 0x5d, 0x41, 0x4d, 0x17, 0x08, 0xe4, 0xf3, 0x3c, 0xa8, 0x4d, 0x8c, 0x1d, 0x36, 0xbf, 0xf0, 0x2c, 0x1f, 0xb7, 0xac, 0xc1, 0x60, 0x71, 0x8c, 0xda, 0xef, 0x98,
0xbb, 0x63, 0x76, 0x87, 0x4d, 0x7e, 0xb2, 0x6a, 0x58, 0x6f, 0x53, 0x63, 0x77, 0x4e, 0x3d, 0x6c, 0xbb, 0xa2, 0x9a, 0x6e, 0x10, 0xc8, 0x9f, 0x15, 0xd0, 0x3a, 0x4e, 0xdf, 0x1a, 0x4c, 0x3a, 0xfc,
0x11, 0xd3, 0xb6, 0x32, 0x66, 0x31, 0xdd, 0xa3, 0xed, 0x81, 0xdb, 0xc6, 0x93, 0x0d, 0x76, 0xd4, 0xa4, 0xd5, 0xb1, 0xd1, 0xa3, 0xc6, 0x1e, 0x5c, 0xfa, 0xd8, 0x26, 0x96, 0x63, 0x17, 0xcc, 0x62,
0x0e, 0x90, 0x59, 0x8e, 0x6e, 0xbe, 0x04, 0x13, 0xba, 0xd0, 0xc1, 0xd0, 0xc1, 0x8c, 0x9a, 0x79, 0xba, 0x67, 0x3b, 0x63, 0xaf, 0x87, 0x67, 0x1b, 0x6c, 0xd8, 0x8e, 0x90, 0x59, 0x4e, 0x6e, 0xbe,
0x4d, 0xec, 0x42, 0xa7, 0x70, 0xc5, 0x0d, 0x1b, 0xc5, 0x2e, 0x09, 0x79, 0x76, 0x49, 0xd8, 0xe6, 0x04, 0x13, 0xba, 0xd0, 0xc9, 0xc4, 0xc5, 0x8c, 0x9a, 0x8a, 0x2e, 0x76, 0xa1, 0x4b, 0xf8, 0xcc,
0x97, 0x84, 0x54, 0x0c, 0x35, 0x2d, 0x4e, 0xc9, 0x8e, 0xe5, 0xb9, 0x43, 0x2d, 0x7e, 0x81, 0xf0, 0x8b, 0x1b, 0xc5, 0x2e, 0x0d, 0x0a, 0xbb, 0x34, 0xec, 0xf3, 0x4b, 0x43, 0x2e, 0x86, 0xa6, 0x9e,
0xc9, 0x54, 0x88, 0x9e, 0x4c, 0x0f, 0x20, 0x87, 0x4f, 0x2b, 0x45, 0xe6, 0xef, 0xf5, 0x9a, 0x61, 0xa6, 0xe4, 0xc0, 0xf6, 0xbd, 0x89, 0x9e, 0xbe, 0x40, 0xfc, 0xa4, 0x2a, 0x27, 0x4f, 0xaa, 0xfb,
0xdb, 0x46, 0x0f, 0xf3, 0xcb, 0xe9, 0xeb, 0x41, 0xb7, 0xd6, 0xf2, 0x5c, 0xd3, 0x32, 0xfe, 0xaa, 0xd3, 0xd3, 0xa8, 0xb6, 0xb7, 0xdd, 0x34, 0x1d, 0xc7, 0x1c, 0x62, 0x7e, 0x59, 0x7d, 0x35, 0x1e,
0xf7, 0x06, 0x58, 0xcb, 0xe1, 0x53, 0xf4, 0x04, 0x16, 0x74, 0xcf, 0xd3, 0xdb, 0x6f, 0x70, 0x67, 0x34, 0xbb, 0xbe, 0x67, 0xd9, 0xe6, 0xcf, 0x8d, 0xe1, 0x18, 0xd3, 0xb3, 0x0a, 0x3d, 0x86, 0x15,
0xd7, 0xea, 0xda, 0x95, 0xf9, 0x0c, 0xf3, 0x02, 0x33, 0x28, 0x2d, 0x4c, 0xc2, 0x80, 0x54, 0x4a, 0xc3, 0xf7, 0x8d, 0xde, 0x6b, 0xdc, 0x3f, 0xb4, 0x07, 0x4e, 0x7d, 0xb9, 0xc0, 0xbc, 0xc8, 0x0c,
0x55, 0x69, 0x63, 0x5e, 0x1b, 0x35, 0xd1, 0x16, 0xac, 0x9a, 0x84, 0x9a, 0xef, 0x5a, 0x7a, 0x6f, 0x4a, 0x0b, 0x8b, 0x30, 0x20, 0xf5, 0x6a, 0x43, 0xda, 0x59, 0xd6, 0xc3, 0x26, 0xda, 0x83, 0x4d,
0x02, 0xbc, 0x02, 0x4c, 0x2c, 0x76, 0x0c, 0xd5, 0x00, 0xf5, 0x89, 0xf1, 0x47, 0xd3, 0x25, 0x1e, 0x8b, 0x50, 0xf3, 0x3d, 0xdb, 0x18, 0xce, 0x80, 0xd7, 0x81, 0x89, 0xa5, 0x8e, 0xa1, 0x26, 0xa0,
0xf7, 0x1f, 0x3b, 0x61, 0xcb, 0xec, 0x84, 0x8d, 0x19, 0x51, 0x30, 0x28, 0xc9, 0x4e, 0xa4, 0xdc, 0x11, 0x31, 0x7f, 0x6c, 0x79, 0xc4, 0xe7, 0xfe, 0x63, 0x27, 0x6e, 0x8d, 0x9d, 0xb8, 0x29, 0x23,
0x3e, 0xc2, 0x43, 0x9f, 0x1b, 0xf4, 0x27, 0xfa, 0x15, 0xe4, 0xdf, 0x52, 0x10, 0xfe, 0x1d, 0xf4, 0x2a, 0x06, 0x35, 0xdb, 0x89, 0x94, 0xdb, 0x67, 0x78, 0x12, 0x70, 0x83, 0xfe, 0x44, 0xdf, 0x01,
0x5a, 0x0c, 0x21, 0x5f, 0xe0, 0x21, 0xc7, 0xc9, 0x25, 0x7f, 0x97, 0xfb, 0xad, 0xa4, 0x7e, 0x9d, 0xe5, 0x0d, 0x05, 0x11, 0xdc, 0x49, 0xbf, 0x48, 0x21, 0xe4, 0x73, 0x3c, 0xe1, 0x38, 0xb9, 0xe4,
0x87, 0xeb, 0xf4, 0x40, 0xfa, 0x34, 0x84, 0xac, 0x01, 0x1a, 0xfd, 0x7e, 0xd9, 0xd3, 0xbd, 0xae, 0x0f, 0x4a, 0xdf, 0x97, 0xb4, 0xbf, 0x2b, 0x70, 0x8b, 0x1e, 0x48, 0x1f, 0x87, 0x90, 0x4d, 0x40,
0xed, 0xf6, 0xfd, 0x2d, 0x33, 0xaf, 0xc5, 0x8c, 0x84, 0x09, 0x9c, 0x8f, 0x12, 0x78, 0x90, 0x44, 0xe1, 0xef, 0x17, 0x43, 0xc3, 0x1f, 0x38, 0xde, 0x28, 0xd8, 0x32, 0x15, 0x3d, 0x65, 0x24, 0x4e,
0xe0, 0x02, 0x23, 0xf0, 0x1f, 0x18, 0x81, 0x53, 0x00, 0x9f, 0x9f, 0xbd, 0xc5, 0x24, 0xf6, 0xce, 0x60, 0x25, 0x49, 0xe0, 0x71, 0x16, 0x81, 0xcb, 0x8c, 0xc0, 0x3f, 0x62, 0x04, 0xce, 0x01, 0x7c,
0xcf, 0xc8, 0xde, 0xd2, 0x79, 0xd8, 0x0b, 0xd9, 0xd8, 0x5b, 0x3e, 0x33, 0x7b, 0x17, 0x3e, 0x35, 0x7d, 0xf6, 0x56, 0xb2, 0xd8, 0xbb, 0xbc, 0x20, 0x7b, 0xab, 0xd7, 0x61, 0x2f, 0x14, 0x63, 0x6f,
0x7b, 0xbf, 0x97, 0xa0, 0x3a, 0x3d, 0x98, 0xb3, 0xde, 0xa3, 0xc5, 0x68, 0xca, 0xd1, 0x68, 0xc6, 0xed, 0xca, 0xec, 0x5d, 0xf9, 0xd8, 0xec, 0xfd, 0xb7, 0x04, 0x8d, 0xf9, 0xc1, 0x5c, 0xf4, 0x5e,
0xfb, 0x63, 0x2e, 0xc9, 0x1f, 0x62, 0x34, 0xf2, 0xc1, 0x68, 0xdc, 0x83, 0x82, 0x8b, 0xc9, 0xa0, 0x2d, 0x46, 0x53, 0x4e, 0x46, 0x33, 0xdd, 0x1f, 0x4b, 0x59, 0xfe, 0x10, 0xa3, 0xa1, 0x44, 0xa3,
0x37, 0x62, 0xe8, 0x65, 0xc6, 0xd0, 0x31, 0x58, 0x4c, 0x1c, 0xcd, 0x17, 0x50, 0x3f, 0xe4, 0xe1, 0x71, 0x17, 0xca, 0x1e, 0x26, 0xe3, 0x61, 0xc8, 0xd0, 0x4f, 0x19, 0x43, 0xa7, 0x60, 0x31, 0x71,
0xfa, 0xd3, 0x4e, 0xe7, 0xa7, 0x95, 0xab, 0x29, 0x80, 0x7f, 0xce, 0xd5, 0xf3, 0xe6, 0x2a, 0xcd, 0xf5, 0x40, 0x40, 0x7b, 0xaf, 0xc0, 0xad, 0x27, 0xfd, 0xfe, 0xff, 0x56, 0xae, 0xe6, 0x00, 0xfe,
0x46, 0x82, 0x8f, 0x2b, 0x8b, 0xfc, 0x9e, 0x44, 0xf0, 0xf1, 0x45, 0x66, 0xef, 0xf4, 0xf0, 0xfe, 0x7f, 0xae, 0x5e, 0x37, 0x57, 0x69, 0x36, 0x12, 0x7c, 0x5e, 0x5f, 0xe5, 0xf7, 0x24, 0x82, 0xcf,
0x98, 0xb2, 0xf7, 0x3b, 0x19, 0x6e, 0x36, 0xc6, 0x7b, 0x15, 0x75, 0xe7, 0x39, 0x32, 0x38, 0xf1, 0x6f, 0x32, 0x7b, 0xe7, 0x87, 0xf7, 0xbf, 0x29, 0x7b, 0xff, 0x25, 0xc3, 0x57, 0xed, 0xe9, 0x5e,
0xfb, 0x5a, 0xcc, 0x6e, 0x39, 0x94, 0xdd, 0xe9, 0xd7, 0xbf, 0x24, 0xba, 0xe5, 0xa7, 0xd0, 0xad, 0x45, 0xdd, 0x79, 0x8d, 0x0c, 0xce, 0xfc, 0xbe, 0x16, 0xb3, 0x5b, 0x8e, 0x65, 0x77, 0xfe, 0xf5,
0x0a, 0x65, 0x6f, 0xe8, 0xe0, 0x17, 0x78, 0x38, 0xce, 0xdd, 0x92, 0x26, 0x76, 0x21, 0x02, 0x6b, 0x2f, 0x8b, 0x6e, 0xca, 0x1c, 0xba, 0x35, 0xa0, 0xe6, 0x4f, 0x5c, 0xfc, 0x1c, 0x4f, 0xa6, 0xb9,
0xfd, 0x60, 0x8c, 0x47, 0xc2, 0x45, 0xe6, 0xb4, 0xc7, 0xcc, 0x69, 0x19, 0x7c, 0x53, 0x6b, 0x46, 0x5b, 0xd5, 0xc5, 0x2e, 0x44, 0x60, 0x6b, 0x14, 0x8d, 0x71, 0x28, 0x5c, 0x61, 0x4e, 0x7b, 0xc4,
0xd4, 0x68, 0x09, 0xaa, 0x95, 0x2e, 0xa0, 0xa8, 0x74, 0x98, 0x1b, 0x52, 0x56, 0x6e, 0xe4, 0x92, 0x9c, 0x56, 0xc0, 0x37, 0xcd, 0x4e, 0x42, 0x8d, 0x9e, 0xa1, 0x5a, 0x1d, 0x00, 0x4a, 0x4a, 0xc7,
0xb8, 0xa1, 0xbe, 0x97, 0xe0, 0x56, 0xba, 0xe9, 0x33, 0x11, 0xb9, 0x05, 0x2b, 0xc4, 0xb4, 0x8c, 0xb9, 0x21, 0x15, 0xe5, 0x46, 0x29, 0x8b, 0x1b, 0xda, 0x3b, 0x09, 0x6e, 0xe7, 0x9b, 0xbe, 0x10,
0x1e, 0x1e, 0x03, 0x61, 0x4c, 0xe3, 0xef, 0x75, 0x37, 0xf8, 0x4d, 0x46, 0x1c, 0x1f, 0x2f, 0xc8, 0x91, 0xbb, 0xb0, 0x41, 0x2c, 0xdb, 0x1c, 0xe2, 0x29, 0x10, 0xc6, 0x34, 0xfe, 0x7e, 0xf7, 0x25,
0x05, 0xb5, 0xb8, 0xd9, 0xea, 0x87, 0x1c, 0xac, 0x4f, 0x9b, 0x35, 0x83, 0x9d, 0x6e, 0xd2, 0x3e, 0xbf, 0xc9, 0x88, 0xe3, 0xd3, 0x05, 0xb9, 0xa0, 0x9e, 0x36, 0x5b, 0x7b, 0x5f, 0x82, 0xed, 0x79,
0xce, 0x2d, 0xfd, 0x7d, 0xaa, 0xa5, 0xe7, 0xdf, 0xc4, 0xe7, 0x22, 0x81, 0xbc, 0xa8, 0x4d, 0xec, 0xb3, 0x16, 0xb0, 0xd3, 0xcb, 0xda, 0xc7, 0xb9, 0xa5, 0x3f, 0xcc, 0xb5, 0xf4, 0xfa, 0x9b, 0xf8,
0x1b, 0x09, 0x6e, 0xa6, 0x7e, 0x10, 0xcd, 0xf8, 0x91, 0x59, 0x26, 0x83, 0x76, 0x1b, 0x13, 0x22, 0x52, 0x22, 0x90, 0x37, 0xb5, 0x89, 0xfd, 0x43, 0x82, 0xaf, 0x72, 0x3f, 0x88, 0x16, 0xfc, 0xc8,
0x38, 0x13, 0x31, 0x67, 0x32, 0xdd, 0xa3, 0x87, 0x42, 0x4d, 0x14, 0x43, 0x5b, 0x00, 0x5d, 0xdd, 0xac, 0x91, 0x71, 0xaf, 0x87, 0x09, 0x11, 0x9c, 0x89, 0x98, 0x33, 0x99, 0xee, 0xf0, 0xe1, 0x50,
0xec, 0xe1, 0x0e, 0x9b, 0x34, 0x97, 0x38, 0x49, 0x90, 0x52, 0xdf, 0xcb, 0x70, 0xa7, 0x8e, 0x7b, 0x17, 0xc5, 0xd0, 0x1e, 0xc0, 0xc0, 0xb0, 0x86, 0xb8, 0xcf, 0x26, 0x2d, 0x65, 0x4e, 0x12, 0xa4,
0xd8, 0xc3, 0x9f, 0x70, 0x77, 0xfa, 0xf8, 0xf7, 0x8b, 0xf4, 0x4f, 0xca, 0xa4, 0xfd, 0xae, 0x78, 0xb4, 0x77, 0x32, 0x7c, 0xd3, 0xc2, 0x43, 0xec, 0xe3, 0x8f, 0xb8, 0x3b, 0x7d, 0xf8, 0xfb, 0x45,
0xe6, 0xe3, 0x75, 0x3e, 0xf1, 0xf0, 0xd8, 0x4f, 0xca, 0x8e, 0x12, 0x8b, 0xcd, 0x54, 0x9e, 0xc5, 0xfe, 0x27, 0x65, 0xd6, 0x7e, 0x57, 0xb9, 0xf2, 0xf1, 0xba, 0x9c, 0x79, 0x78, 0x1c, 0x67, 0x65,
0xcf, 0x54, 0x3f, 0x93, 0xe0, 0x6e, 0xa6, 0x78, 0xcd, 0xc4, 0xbb, 0x33, 0x9c, 0x69, 0x36, 0x2c, 0x47, 0x95, 0xc5, 0x66, 0x2e, 0xcf, 0xd2, 0x67, 0x6a, 0x7f, 0x92, 0xe0, 0x4e, 0xa1, 0x78, 0x2d,
0x06, 0x58, 0x85, 0x1e, 0x40, 0x09, 0x8f, 0x3a, 0xfc, 0xda, 0xcc, 0xa5, 0x10, 0xf9, 0x26, 0x02, 0xc4, 0xbb, 0x2b, 0x9c, 0x69, 0x0e, 0xac, 0x46, 0x58, 0x85, 0xee, 0x43, 0x15, 0x87, 0x1d, 0x41,
0xa2, 0x6d, 0xb9, 0x24, 0xdb, 0xe4, 0xc0, 0x83, 0xd7, 0xb7, 0x39, 0x28, 0x8d, 0x55, 0xa1, 0xc3, 0xad, 0xe6, 0x93, 0x18, 0xf9, 0x66, 0x02, 0xa2, 0x6d, 0xa5, 0x2c, 0xdb, 0xe4, 0xc8, 0x83, 0xd7,
0x24, 0xd7, 0x4a, 0xcc, 0xf0, 0x7b, 0xc1, 0x95, 0xcf, 0xbf, 0xcb, 0xe4, 0xb2, 0x1e, 0x17, 0x72, 0x3f, 0x4b, 0x50, 0x9d, 0xaa, 0x42, 0xa7, 0x59, 0xae, 0x95, 0x98, 0xe1, 0x77, 0xa3, 0x2b, 0x5f,
0x22, 0x1b, 0xd4, 0xd0, 0x65, 0x91, 0x6f, 0x5c, 0xc1, 0xeb, 0xe0, 0x25, 0x76, 0xfd, 0xe4, 0x2f, 0x7f, 0x97, 0x29, 0x15, 0x3d, 0x2e, 0xe4, 0x4c, 0x36, 0x68, 0xb1, 0xcb, 0x22, 0xdf, 0xb8, 0xa2,
0xc7, 0x39, 0x7c, 0xaa, 0xfc, 0xe3, 0x8c, 0x3b, 0xd9, 0xdd, 0xe0, 0x4e, 0x16, 0x13, 0x3f, 0x61, 0xd7, 0x41, 0xfe, 0xec, 0xae, 0x84, 0xcf, 0xee, 0xea, 0xaf, 0xae, 0xb8, 0x93, 0xdd, 0x89, 0xee,
0xff, 0x1a, 0xc2, 0x82, 0x38, 0x84, 0x1e, 0xc1, 0xfc, 0x91, 0xdf, 0xf6, 0x03, 0x38, 0x95, 0xa1, 0x64, 0x29, 0xf1, 0x13, 0xf6, 0xaf, 0x09, 0xac, 0x88, 0x43, 0xe8, 0x21, 0x2c, 0x9f, 0x05, 0xed,
0x63, 0xe1, 0x19, 0x82, 0xf9, 0x4e, 0x82, 0x15, 0xa1, 0xbc, 0x45, 0x7d, 0xc4, 0xea, 0x5b, 0x91, 0x20, 0x80, 0x73, 0x19, 0x3a, 0x15, 0x5e, 0x20, 0x98, 0x6f, 0x25, 0xd8, 0x10, 0xca, 0x5d, 0xd4,
0x2a, 0x96, 0x94, 0xa1, 0x8a, 0x95, 0x3b, 0x73, 0x15, 0x4b, 0x0e, 0x55, 0xb1, 0xb6, 0xfe, 0x07, 0x47, 0xac, 0xde, 0x95, 0xa8, 0x6a, 0x49, 0x05, 0xaa, 0x5a, 0xa5, 0x2b, 0x57, 0xb5, 0xe4, 0x58,
0x20, 0xf7, 0x89, 0x81, 0x5e, 0xc1, 0x52, 0xa8, 0xfa, 0x84, 0x6e, 0xc7, 0xf8, 0x20, 0x5a, 0xf1, 0x55, 0x6b, 0xef, 0x0f, 0x00, 0xf2, 0x88, 0x98, 0xe8, 0x25, 0xac, 0xc5, 0xaa, 0x51, 0xe8, 0xeb,
0x52, 0xee, 0x64, 0x11, 0x23, 0x0e, 0xb2, 0x61, 0xf5, 0xe5, 0xa0, 0xd7, 0xf3, 0xb3, 0x77, 0x7b, 0x14, 0x1f, 0x24, 0x2b, 0x60, 0xea, 0x37, 0x45, 0xc4, 0x88, 0x8b, 0x1c, 0xd8, 0x7c, 0x31, 0x1e,
0xd8, 0xc2, 0xc7, 0xcc, 0xbe, 0x5f, 0xc6, 0xcc, 0x8f, 0x13, 0xa4, 0x6b, 0xdd, 0xcf, 0x2c, 0xcb, 0x0e, 0x83, 0xec, 0xdd, 0x9f, 0x74, 0xf1, 0x39, 0xb3, 0xef, 0xdb, 0x29, 0xf3, 0xd3, 0x04, 0xe9,
0xf2, 0xb2, 0xe8, 0xbf, 0xac, 0xa3, 0x25, 0xff, 0x09, 0x64, 0x54, 0xe5, 0x52, 0x96, 0x83, 0x1d, 0x5a, 0xf7, 0x0a, 0xcb, 0xb2, 0xbc, 0xac, 0x04, 0x2f, 0xeb, 0x68, 0x2d, 0x78, 0x02, 0x09, 0xab,
0xc4, 0x41, 0xfb, 0x00, 0x75, 0xdc, 0x6b, 0x12, 0x83, 0x27, 0x41, 0xcc, 0x42, 0x93, 0x61, 0xaa, 0x5e, 0xea, 0x7a, 0xb4, 0x83, 0xb8, 0xe8, 0x18, 0xa0, 0x85, 0x87, 0x1d, 0x62, 0xf2, 0x24, 0x48,
0xe1, 0x46, 0x8a, 0x04, 0x71, 0x50, 0x03, 0x96, 0xc3, 0x6f, 0xde, 0xa8, 0xc2, 0x16, 0x8e, 0x79, 0x59, 0x68, 0x36, 0x4c, 0x35, 0x7c, 0x99, 0x23, 0x41, 0x5c, 0xd4, 0x86, 0xf5, 0xf8, 0x9b, 0x37,
0x91, 0x57, 0xae, 0x26, 0x8c, 0x10, 0x07, 0x6d, 0xc2, 0xfc, 0xa8, 0x3c, 0x84, 0xb8, 0xe5, 0x42, 0xaa, 0xb3, 0x85, 0x53, 0x5e, 0xe4, 0xd5, 0xcf, 0x33, 0x46, 0x88, 0x8b, 0x76, 0x61, 0x39, 0x2c,
0x49, 0x4a, 0xb9, 0x1c, 0xea, 0x21, 0x0e, 0x7a, 0x0c, 0x0b, 0x62, 0xc5, 0x05, 0xad, 0x8e, 0x9f, 0x0f, 0x21, 0x6e, 0xb9, 0x50, 0x92, 0x52, 0x3f, 0x8d, 0xf5, 0x10, 0x17, 0x3d, 0x82, 0x15, 0xb1,
0x80, 0x84, 0xfa, 0x90, 0x72, 0x25, 0xa6, 0x97, 0x9b, 0x1d, 0xae, 0x8b, 0xf8, 0x66, 0xc7, 0xd4, 0xe2, 0x82, 0x36, 0xa7, 0x4f, 0x40, 0x42, 0x7d, 0x48, 0xfd, 0x2c, 0xa5, 0x97, 0x9b, 0x1d, 0xaf,
0x5f, 0x7c, 0xb3, 0x63, 0x0b, 0x29, 0x0d, 0x58, 0x6e, 0xc4, 0x2b, 0x6a, 0x24, 0x2a, 0x6a, 0x4c, 0x8b, 0x04, 0x66, 0xa7, 0xd4, 0x5f, 0x02, 0xb3, 0x53, 0x0b, 0x29, 0x6d, 0x58, 0x6f, 0xa7, 0x2b,
0x51, 0x14, 0xe3, 0xc8, 0x98, 0x4a, 0x80, 0xa0, 0x28, 0xe2, 0xc8, 0x3a, 0x63, 0xb9, 0xf8, 0x18, 0x6a, 0x67, 0x2a, 0x6a, 0xcf, 0x51, 0x94, 0xe2, 0xc8, 0x94, 0x4a, 0x80, 0xa0, 0x28, 0xe1, 0xc8,
0x8e, 0x7e, 0x31, 0x92, 0x0e, 0x3d, 0xb6, 0x2b, 0x95, 0xf8, 0x01, 0xe2, 0xa0, 0x23, 0x58, 0x9f, 0x16, 0x63, 0xb9, 0xf8, 0x18, 0x8e, 0xbe, 0x15, 0x4a, 0xc7, 0x1e, 0xdb, 0xd5, 0x7a, 0xfa, 0x00,
0xf6, 0x00, 0x83, 0x6e, 0x65, 0x79, 0x70, 0x53, 0x6e, 0x67, 0x90, 0x22, 0x0e, 0x3a, 0x81, 0x6a, 0x71, 0xd1, 0x19, 0x6c, 0xcf, 0x7b, 0x80, 0x41, 0xb7, 0x8b, 0x3c, 0xb8, 0xa9, 0x5f, 0x17, 0x90,
0xda, 0x55, 0x1b, 0x6d, 0x64, 0xfd, 0x98, 0x50, 0xee, 0x65, 0x94, 0xe4, 0x28, 0xa7, 0x7d, 0xa8, 0x22, 0x2e, 0xba, 0x80, 0x46, 0xde, 0x55, 0x1b, 0xed, 0x14, 0xfd, 0x98, 0x50, 0xef, 0x16, 0x94,
0xfa, 0x28, 0x53, 0x9e, 0x2a, 0x7c, 0x94, 0xa9, 0x5f, 0xbc, 0xff, 0x86, 0xeb, 0x81, 0xc3, 0x3d, 0xe4, 0x28, 0xe7, 0x7d, 0xa8, 0x06, 0x28, 0x73, 0x9e, 0x2a, 0x02, 0x94, 0xb9, 0x5f, 0xbc, 0xbf,
0x66, 0xbd, 0xfb, 0xa3, 0xfc, 0xc8, 0x70, 0x65, 0x53, 0x1e, 0x64, 0x17, 0x26, 0xce, 0xf6, 0xb5, 0x85, 0x5b, 0x91, 0xc3, 0x3d, 0x65, 0xbd, 0x7b, 0x61, 0x7e, 0x14, 0xb8, 0xb2, 0xa9, 0xf7, 0x8b,
0xbf, 0x5f, 0xdd, 0x73, 0xb0, 0x75, 0xb8, 0xdb, 0x14, 0xfe, 0x12, 0xd2, 0x27, 0xc6, 0xe3, 0x3e, 0x0b, 0x13, 0x77, 0xff, 0x8b, 0x5f, 0x7e, 0x7e, 0xe4, 0x62, 0xfb, 0xf4, 0xb0, 0x23, 0xfc, 0x45,
0x31, 0x5e, 0x17, 0x58, 0xf3, 0xd7, 0x3f, 0x04, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x0f, 0xb1, 0x43, 0x64, 0x44, 0xcc, 0x47, 0x23, 0x62, 0xbe, 0x2a, 0xb3, 0xe6, 0x77, 0xff, 0x13, 0x00, 0x00, 0xff,
0x7b, 0x22, 0x00, 0x00, 0xff, 0x4c, 0x17, 0xe7, 0xd8, 0x8b, 0x22, 0x00, 0x00,
} }

@ -76,6 +76,7 @@ message SendMsgResp {
string serverMsgID = 4; string serverMsgID = 4;
string clientMsgID = 5; string clientMsgID = 5;
int64 sendTime = 6; int64 sendTime = 6;
string ex = 7;
} }

File diff suppressed because it is too large Load Diff

@ -241,6 +241,7 @@ message UserSendMsgResp {
string serverMsgID = 1; string serverMsgID = 1;
string clientMsgID = 2; string clientMsgID = 2;
int64 sendTime = 3; int64 sendTime = 3;
string ex = 4;
} }
message MsgData { message MsgData {

Loading…
Cancel
Save