Refactor code

This commit is contained in:
wenxu12345 2021-12-29 16:17:55 +08:00
parent 4e4bab2bf0
commit 4623b5d5db
4 changed files with 174 additions and 113 deletions

View File

@ -72,8 +72,13 @@ func ImportFriend(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()})
return
}
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
if resp.ErrCode == 0 {
for _, v := range RpcResp.UserIDResultList {
resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{v.UserID, v.Result})
}
}
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList}
log.NewInfo(req.OperationID, "ImportFriend api return ", resp)
c.JSON(http.StatusOK, resp)
}

View File

@ -166,49 +166,52 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid)
c.ErrCode = constant.ErrAccess.ErrCode
c.ErrMsg = constant.ErrAccess.ErrMsg
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil
for _, v := range req.FriendUserIDList {
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
}
resp.CommonResp = &c
return &resp, nil
}
if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil {
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID)
c.ErrCode = constant.ErrDB.ErrCode
c.ErrMsg = "this user not exists,cant not add friend"
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil
for _, v := range req.FriendUserIDList {
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
}
resp.CommonResp = &c
return &resp, nil
}
for _, v := range req.FriendUserIDList {
if _, fErr := imdb.GetUserByUserID(v); fErr != nil {
c.ErrMsg = "some uid establish failed"
c.ErrCode = 408
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
} else {
if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil {
//Establish two single friendship
toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v}
err1 := imdb.InsertToFriend(&toInsertFollow)
if err1 != nil {
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error())
c.ErrMsg = "some uid establish failed"
c.ErrCode = 408
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
continue
}
toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID}
err2 := imdb.InsertToFriend(&toInsertFollow)
if err2 != nil {
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error())
c.ErrMsg = "some uid establish failed"
c.ErrCode = 408
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
continue
}
for _, v := range req.FriendUserIDList {
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v)
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0})
}
}
}
}
resp.CommonResp = &c
log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp)
resp.CommonResp.ErrCode = 0
log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp.String())
return &resp, nil
}

View File

@ -20,9 +20,13 @@ type ImportFriendReq struct {
OperationID string `json:"operationID" binding:"required"`
FromUserID string `json:"fromUserID" binding:"required"`
}
type UserIDResult struct {
UserID string `json:"userID" binding:"required"`
Result int32 `json:"result" binding:"required"`
}
type ImportFriendResp struct {
CommResp
Data []string `json:"data"`
UserIDResultList []UserIDResult `json:"data"`
}
type AddFriendReq struct {

View File

@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
func (m *CommonResp) String() string { return proto.CompactTextString(m) }
func (*CommonResp) ProtoMessage() {}
func (*CommonResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{0}
return fileDescriptor_friend_74665a4d507faa8c, []int{0}
}
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommonResp.Unmarshal(m, b)
@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} }
func (m *CommID) String() string { return proto.CompactTextString(m) }
func (*CommID) ProtoMessage() {}
func (*CommID) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{1}
return fileDescriptor_friend_74665a4d507faa8c, []int{1}
}
func (m *CommID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommID.Unmarshal(m, b)
@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} }
func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendsInfoReq) ProtoMessage() {}
func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{2}
return fileDescriptor_friend_74665a4d507faa8c, []int{2}
}
func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b)
@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} }
func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendInfoResp) ProtoMessage() {}
func (*GetFriendInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{3}
return fileDescriptor_friend_74665a4d507faa8c, []int{3}
}
func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b)
@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} }
func (m *AddFriendReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendReq) ProtoMessage() {}
func (*AddFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{4}
return fileDescriptor_friend_74665a4d507faa8c, []int{4}
}
func (m *AddFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendReq.Unmarshal(m, b)
@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} }
func (m *AddFriendResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResp) ProtoMessage() {}
func (*AddFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{5}
return fileDescriptor_friend_74665a4d507faa8c, []int{5}
}
func (m *AddFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResp.Unmarshal(m, b)
@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} }
func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) }
func (*ImportFriendReq) ProtoMessage() {}
func (*ImportFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{6}
return fileDescriptor_friend_74665a4d507faa8c, []int{6}
}
func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b)
@ -370,19 +370,65 @@ func (m *ImportFriendReq) GetOpUserID() string {
return ""
}
type UserIDResult struct {
UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *UserIDResult) Reset() { *m = UserIDResult{} }
func (m *UserIDResult) String() string { return proto.CompactTextString(m) }
func (*UserIDResult) ProtoMessage() {}
func (*UserIDResult) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_74665a4d507faa8c, []int{7}
}
func (m *UserIDResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserIDResult.Unmarshal(m, b)
}
func (m *UserIDResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UserIDResult.Marshal(b, m, deterministic)
}
func (dst *UserIDResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_UserIDResult.Merge(dst, src)
}
func (m *UserIDResult) XXX_Size() int {
return xxx_messageInfo_UserIDResult.Size(m)
}
func (m *UserIDResult) XXX_DiscardUnknown() {
xxx_messageInfo_UserIDResult.DiscardUnknown(m)
}
var xxx_messageInfo_UserIDResult proto.InternalMessageInfo
func (m *UserIDResult) GetUserID() string {
if m != nil {
return m.UserID
}
return ""
}
func (m *UserIDResult) GetResult() int32 {
if m != nil {
return m.Result
}
return 0
}
type ImportFriendResp struct {
CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"`
FailedFriendUserIDList []string `protobuf:"bytes,2,rep,name=FailedFriendUserIDList" json:"FailedFriendUserIDList,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"`
UserIDResultList []*UserIDResult `protobuf:"bytes,2,rep,name=UserIDResultList" json:"UserIDResultList,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} }
func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) }
func (*ImportFriendResp) ProtoMessage() {}
func (*ImportFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{7}
return fileDescriptor_friend_74665a4d507faa8c, []int{8}
}
func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b)
@ -409,9 +455,9 @@ func (m *ImportFriendResp) GetCommonResp() *CommonResp {
return nil
}
func (m *ImportFriendResp) GetFailedFriendUserIDList() []string {
func (m *ImportFriendResp) GetUserIDResultList() []*UserIDResult {
if m != nil {
return m.FailedFriendUserIDList
return m.UserIDResultList
}
return nil
}
@ -427,7 +473,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} }
func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendApplyListReq) ProtoMessage() {}
func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{8}
return fileDescriptor_friend_74665a4d507faa8c, []int{9}
}
func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b)
@ -467,7 +513,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{}
func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendApplyListResp) ProtoMessage() {}
func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{9}
return fileDescriptor_friend_74665a4d507faa8c, []int{10}
}
func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b)
@ -519,7 +565,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} }
func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendListReq) ProtoMessage() {}
func (*GetFriendListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{10}
return fileDescriptor_friend_74665a4d507faa8c, []int{11}
}
func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b)
@ -559,7 +605,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} }
func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendListResp) ProtoMessage() {}
func (*GetFriendListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{11}
return fileDescriptor_friend_74665a4d507faa8c, []int{12}
}
func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b)
@ -611,7 +657,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} }
func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistReq) ProtoMessage() {}
func (*AddBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{12}
return fileDescriptor_friend_74665a4d507faa8c, []int{13}
}
func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b)
@ -649,7 +695,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} }
func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistResp) ProtoMessage() {}
func (*AddBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{13}
return fileDescriptor_friend_74665a4d507faa8c, []int{14}
}
func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b)
@ -687,7 +733,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} }
func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistReq) ProtoMessage() {}
func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{14}
return fileDescriptor_friend_74665a4d507faa8c, []int{15}
}
func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b)
@ -725,7 +771,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} }
func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistResp) ProtoMessage() {}
func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{15}
return fileDescriptor_friend_74665a4d507faa8c, []int{16}
}
func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b)
@ -763,7 +809,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} }
func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistReq) ProtoMessage() {}
func (*GetBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{16}
return fileDescriptor_friend_74665a4d507faa8c, []int{17}
}
func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b)
@ -803,7 +849,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} }
func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistResp) ProtoMessage() {}
func (*GetBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{17}
return fileDescriptor_friend_74665a4d507faa8c, []int{18}
}
func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b)
@ -855,7 +901,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} }
func (m *IsFriendReq) String() string { return proto.CompactTextString(m) }
func (*IsFriendReq) ProtoMessage() {}
func (*IsFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{18}
return fileDescriptor_friend_74665a4d507faa8c, []int{19}
}
func (m *IsFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendReq.Unmarshal(m, b)
@ -895,7 +941,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} }
func (m *IsFriendResp) String() string { return proto.CompactTextString(m) }
func (*IsFriendResp) ProtoMessage() {}
func (*IsFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{19}
return fileDescriptor_friend_74665a4d507faa8c, []int{20}
}
func (m *IsFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendResp.Unmarshal(m, b)
@ -947,7 +993,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} }
func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListReq) ProtoMessage() {}
func (*IsInBlackListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{20}
return fileDescriptor_friend_74665a4d507faa8c, []int{21}
}
func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b)
@ -987,7 +1033,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} }
func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListResp) ProtoMessage() {}
func (*IsInBlackListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{21}
return fileDescriptor_friend_74665a4d507faa8c, []int{22}
}
func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b)
@ -1039,7 +1085,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} }
func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendReq) ProtoMessage() {}
func (*DeleteFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{22}
return fileDescriptor_friend_74665a4d507faa8c, []int{23}
}
func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b)
@ -1077,7 +1123,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} }
func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendResp) ProtoMessage() {}
func (*DeleteFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{23}
return fileDescriptor_friend_74665a4d507faa8c, []int{24}
}
func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b)
@ -1118,7 +1164,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} }
func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendResponseReq) ProtoMessage() {}
func (*AddFriendResponseReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{24}
return fileDescriptor_friend_74665a4d507faa8c, []int{25}
}
func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b)
@ -1170,7 +1216,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} }
func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResponseResp) ProtoMessage() {}
func (*AddFriendResponseResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{25}
return fileDescriptor_friend_74665a4d507faa8c, []int{26}
}
func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b)
@ -1209,7 +1255,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} }
func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkReq) ProtoMessage() {}
func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{26}
return fileDescriptor_friend_74665a4d507faa8c, []int{27}
}
func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b)
@ -1254,7 +1300,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} }
func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkResp) ProtoMessage() {}
func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{27}
return fileDescriptor_friend_74665a4d507faa8c, []int{28}
}
func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b)
@ -1292,7 +1338,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} }
func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetSelfApplyListReq) ProtoMessage() {}
func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{28}
return fileDescriptor_friend_74665a4d507faa8c, []int{29}
}
func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b)
@ -1332,7 +1378,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} }
func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetSelfApplyListResp) ProtoMessage() {}
func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{29}
return fileDescriptor_friend_74665a4d507faa8c, []int{30}
}
func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b)
@ -1381,6 +1427,7 @@ func init() {
proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq")
proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp")
proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq")
proto.RegisterType((*UserIDResult)(nil), "friend.UserIDResult")
proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp")
proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq")
proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp")
@ -1876,66 +1923,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{
Metadata: "friend/friend.proto",
}
func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_69e6f38cd215d5ef) }
func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_74665a4d507faa8c) }
var fileDescriptor_friend_69e6f38cd215d5ef = []byte{
// 916 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x4f, 0xeb, 0x46,
0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x0f, 0xa5, 0x3e, 0x54, 0x51,
0x0f, 0x89, 0x94, 0x8a, 0xaa, 0x94, 0xb6, 0x28, 0x10, 0x42, 0xdd, 0x96, 0x82, 0x0c, 0xbd, 0x54,
0x95, 0x90, 0xc1, 0x9b, 0xd4, 0x8a, 0x63, 0x2f, 0x5e, 0x53, 0xd4, 0x4b, 0x0f, 0x3d, 0xf4, 0x5a,
0xa9, 0xea, 0xed, 0x1d, 0xde, 0xbf, 0xfa, 0x64, 0xaf, 0x1d, 0xaf, 0x3f, 0x82, 0x9e, 0xcd, 0x93,
0xde, 0x09, 0x66, 0x66, 0x7f, 0xe3, 0xf9, 0xda, 0xf9, 0x6d, 0xa0, 0x39, 0xb1, 0x75, 0x6c, 0x6a,
0x7d, 0xf6, 0xa7, 0x47, 0x6c, 0xcb, 0xb1, 0x50, 0x91, 0x49, 0xe2, 0xa7, 0x57, 0x04, 0x9b, 0x77,
0xf2, 0x65, 0x9f, 0xcc, 0xa6, 0x7d, 0xcf, 0xd4, 0xa7, 0xda, 0xec, 0xee, 0x99, 0xf6, 0x9f, 0x29,
0x3b, 0x2a, 0x7d, 0x07, 0x70, 0x66, 0xcd, 0xe7, 0x96, 0xa9, 0x60, 0x4a, 0x50, 0x1b, 0xd6, 0xb1,
0x6d, 0x9f, 0x59, 0x1a, 0x6e, 0x0b, 0x1d, 0xa1, 0xbb, 0xa6, 0x04, 0x22, 0xda, 0x86, 0x22, 0xb6,
0xed, 0x4b, 0x3a, 0x6d, 0xaf, 0x74, 0x84, 0x6e, 0x59, 0xf1, 0x25, 0xe9, 0x6f, 0x01, 0x8a, 0xae,
0x03, 0x79, 0x84, 0x44, 0x28, 0x5d, 0x91, 0x5f, 0x28, 0xb6, 0xe5, 0x91, 0x87, 0x2e, 0x2b, 0x0b,
0x19, 0x75, 0xa0, 0x72, 0x45, 0xb0, 0xad, 0x3a, 0xba, 0x65, 0xca, 0x23, 0xdf, 0x07, 0xaf, 0x72,
0xd1, 0xb7, 0x96, 0x8f, 0x5e, 0x65, 0xe8, 0x40, 0x46, 0x07, 0x00, 0x63, 0xdb, 0x9a, 0xfb, 0xd6,
0x35, 0xcf, 0xca, 0x69, 0xa4, 0x63, 0x68, 0x5c, 0x60, 0x67, 0xec, 0x25, 0x4d, 0x65, 0x73, 0x62,
0x29, 0xf8, 0x11, 0x7d, 0x16, 0x04, 0xe6, 0x05, 0x53, 0x19, 0x6c, 0xf6, 0xfc, 0x1a, 0x31, 0xad,
0xe2, 0x5b, 0xa5, 0x7f, 0x04, 0x0e, 0xcd, 0xc0, 0xac, 0x12, 0xe7, 0xd1, 0x4a, 0x9c, 0x87, 0x95,
0x38, 0x8f, 0x54, 0x82, 0x49, 0xe8, 0x04, 0x36, 0x43, 0x1f, 0x3f, 0xe9, 0xd4, 0x69, 0x17, 0x3a,
0x85, 0x6e, 0x65, 0xb0, 0xd3, 0xb3, 0xdc, 0x2e, 0xe8, 0xf3, 0x3b, 0xaa, 0xcd, 0x7a, 0xdc, 0x67,
0x62, 0xc7, 0xa5, 0x9f, 0xa1, 0x3a, 0xd4, 0x34, 0xa6, 0xcc, 0x90, 0x80, 0x1b, 0x90, 0x82, 0x1f,
0xb9, 0x80, 0x98, 0x24, 0x9d, 0xc1, 0x06, 0xe7, 0x8f, 0x12, 0x34, 0xe0, 0x7b, 0xed, 0x3b, 0x45,
0xbc, 0x53, 0x66, 0x51, 0xb8, 0x53, 0xd2, 0x1b, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x06,
0xf6, 0x39, 0xd4, 0x99, 0xc0, 0xca, 0xef, 0xe5, 0x2a, 0x74, 0x0a, 0xdd, 0xb2, 0x92, 0xd0, 0xbf,
0x47, 0xe3, 0xa3, 0xcd, 0x2d, 0xc4, 0x9b, 0x1b, 0x19, 0xab, 0xd5, 0xe8, 0x58, 0x49, 0x7f, 0x41,
0x3d, 0x1a, 0x5c, 0xbe, 0x2c, 0xd1, 0x97, 0xb0, 0x3d, 0x56, 0x75, 0x03, 0x6b, 0x89, 0xbc, 0x56,
0xbc, 0xbc, 0x96, 0x58, 0xa5, 0x13, 0xd8, 0x5a, 0x8c, 0xce, 0x90, 0x10, 0xe3, 0x4f, 0x57, 0x9b,
0x65, 0xf8, 0xfe, 0x17, 0x60, 0x3b, 0xcd, 0x43, 0xae, 0x09, 0xfc, 0x1e, 0x1a, 0x8b, 0x26, 0x3d,
0x61, 0xea, 0x70, 0x43, 0x28, 0xa6, 0x0c, 0xa1, 0x7f, 0x4a, 0x49, 0x82, 0xa4, 0xaf, 0xa1, 0xbe,
0x88, 0x2a, 0x6b, 0x4a, 0x91, 0xfb, 0xf4, 0x8a, 0x6c, 0x5e, 0x7d, 0x9f, 0x8e, 0xa0, 0x36, 0xd4,
0xb4, 0x53, 0x43, 0x7d, 0x98, 0x19, 0x19, 0x73, 0x18, 0x43, 0x3d, 0x0a, 0xcd, 0x79, 0x7b, 0xbe,
0x01, 0xa4, 0xe0, 0xb9, 0xf5, 0x07, 0xce, 0x15, 0x85, 0x0c, 0xcd, 0x04, 0x3a, 0x67, 0x20, 0x47,
0x50, 0xbb, 0xc0, 0x4e, 0xae, 0x28, 0xfe, 0x15, 0xbc, 0x61, 0x88, 0xc6, 0x90, 0xbd, 0x9d, 0x32,
0x34, 0x3c, 0x17, 0xde, 0xed, 0x89, 0x76, 0x74, 0x37, 0xd2, 0xd1, 0xeb, 0xa7, 0x7b, 0x43, 0x7f,
0x08, 0x8e, 0x29, 0x49, 0x94, 0x74, 0x08, 0x15, 0x99, 0x66, 0xde, 0x93, 0xd2, 0x6f, 0x50, 0x0d,
0x61, 0xb9, 0x72, 0x10, 0xa1, 0xe4, 0x22, 0x2d, 0x93, 0x62, 0x6f, 0x51, 0x95, 0x94, 0x85, 0xec,
0x5e, 0x19, 0x99, 0xca, 0xa6, 0x17, 0x6d, 0xd6, 0x2b, 0xa3, 0x42, 0x23, 0x86, 0xfd, 0xe0, 0xe1,
0x1d, 0x41, 0x6d, 0x84, 0x0d, 0xec, 0xe0, 0xec, 0x75, 0x1b, 0x43, 0x3d, 0x0a, 0xcd, 0x39, 0x83,
0x04, 0x5a, 0x11, 0x3e, 0x72, 0xe3, 0xca, 0xc2, 0x73, 0x08, 0x56, 0x27, 0x86, 0xca, 0x92, 0x5e,
0x53, 0xbc, 0xff, 0xd1, 0x1e, 0x94, 0x7f, 0x57, 0x4d, 0xcd, 0xc0, 0x6e, 0x35, 0x18, 0x77, 0x84,
0x0a, 0xe9, 0x47, 0xd8, 0x4a, 0xf9, 0x62, 0xce, 0xf0, 0x6f, 0x01, 0xdd, 0xe0, 0x05, 0xd1, 0xcc,
0x55, 0x7b, 0x96, 0x99, 0xa4, 0x5d, 0x50, 0x48, 0xd2, 0xae, 0xe4, 0xde, 0xf1, 0x84, 0xd7, 0x9c,
0x01, 0x7e, 0x0b, 0xcd, 0x0b, 0xec, 0xdc, 0x60, 0x63, 0x92, 0x8b, 0x8a, 0xfe, 0x13, 0xa0, 0x95,
0xc4, 0x7f, 0x5c, 0x22, 0x1a, 0xbc, 0x5d, 0x07, 0xff, 0x31, 0x8b, 0xbe, 0x82, 0xb2, 0x1a, 0x34,
0x13, 0xb5, 0x82, 0x24, 0xf8, 0x17, 0x93, 0xb8, 0x95, 0xa2, 0xa5, 0x04, 0xdd, 0x00, 0x9a, 0x26,
0x38, 0x16, 0xed, 0x07, 0x87, 0x53, 0x19, 0x5c, 0x3c, 0x78, 0xc9, 0x4c, 0x09, 0xba, 0x84, 0xfa,
0x34, 0x56, 0x2d, 0xb4, 0xcb, 0x61, 0xe2, 0x7d, 0x10, 0xf7, 0x96, 0x1b, 0x29, 0x41, 0x23, 0xd8,
0x98, 0xf2, 0xa4, 0x89, 0xda, 0x89, 0xef, 0x07, 0x8e, 0x3e, 0x59, 0x62, 0xa1, 0x04, 0x0d, 0xa1,
0xaa, 0x72, 0xbc, 0x85, 0x76, 0xb8, 0x82, 0xf0, 0xcb, 0x5f, 0x6c, 0xa7, 0x1b, 0x28, 0x41, 0x3f,
0x40, 0xcd, 0x8e, 0x92, 0x0e, 0x12, 0x83, 0xc3, 0x49, 0x2e, 0x13, 0x77, 0x97, 0xda, 0x28, 0x41,
0x87, 0x50, 0xd2, 0xfd, 0x8d, 0x8b, 0x9a, 0xc1, 0x41, 0x6e, 0x75, 0x8b, 0xad, 0xa4, 0x92, 0xd5,
0x42, 0xe7, 0xd7, 0x61, 0x58, 0x8b, 0xf8, 0x86, 0x0d, 0x6b, 0x91, 0xdc, 0x9f, 0x43, 0xa8, 0x4e,
0x39, 0xda, 0x0a, 0x6b, 0x11, 0x23, 0x42, 0xb1, 0x9d, 0x6e, 0x60, 0x2e, 0x34, 0x6e, 0xf3, 0x85,
0x2e, 0x62, 0xab, 0x34, 0x74, 0x91, 0x58, 0x94, 0xd7, 0xd0, 0x50, 0xe3, 0x2b, 0x08, 0xed, 0xa5,
0xce, 0xa9, 0xbf, 0x0f, 0xc5, 0xfd, 0x17, 0xac, 0xac, 0x41, 0x34, 0xba, 0x31, 0xc2, 0x06, 0x25,
0x17, 0x54, 0xd8, 0xa0, 0xb4, 0x35, 0x33, 0x84, 0xaa, 0xce, 0xbd, 0x9f, 0xc3, 0x04, 0x63, 0x4f,
0xfe, 0x30, 0xc1, 0xf8, 0x73, 0xfb, 0xb4, 0xf1, 0x6b, 0xad, 0xe7, 0xff, 0xfa, 0x3c, 0x66, 0x7f,
0xee, 0x8b, 0xde, 0x4f, 0xcb, 0x2f, 0xde, 0x05, 0x00, 0x00, 0xff, 0xff, 0x85, 0x71, 0x6d, 0x1b,
0x9c, 0x0e, 0x00, 0x00,
var fileDescriptor_friend_74665a4d507faa8c = []byte{
// 945 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x8f, 0xdb, 0x44,
0x14, 0x96, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x6d, 0x83, 0x77, 0x5b, 0x05, 0x1f,
0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x5a, 0xd2, 0xcd, 0x66, 0x31, 0xb0, 0x6c, 0x35,
0x5b, 0x2e, 0x08, 0x69, 0xe5, 0xd6, 0x93, 0x60, 0xc5, 0xb1, 0xa7, 0x1e, 0x2f, 0x15, 0x57, 0x0e,
0x88, 0x1b, 0x12, 0xe2, 0xc6, 0x81, 0x7f, 0x15, 0x79, 0xc6, 0x8e, 0x67, 0x6c, 0x6f, 0x85, 0x5d,
0xa4, 0x9e, 0x92, 0x37, 0xef, 0x87, 0xdf, 0xfb, 0xde, 0x9b, 0xf7, 0xd9, 0xd0, 0x5f, 0x05, 0x0e,
0xf1, 0xec, 0xa9, 0xf8, 0x99, 0xd0, 0xc0, 0x0f, 0x7d, 0x54, 0x17, 0x92, 0xfe, 0xe1, 0x05, 0x25,
0xde, 0x95, 0x79, 0x3e, 0xa5, 0x9b, 0xf5, 0x94, 0xab, 0xa6, 0xcc, 0xde, 0x5c, 0xbd, 0x61, 0xd3,
0x37, 0x4c, 0x98, 0x1a, 0x4f, 0x00, 0x4e, 0xfc, 0xed, 0xd6, 0xf7, 0x30, 0x61, 0x14, 0x0d, 0xe1,
0x36, 0x09, 0x82, 0x13, 0xdf, 0x26, 0x43, 0x6d, 0xa4, 0x8d, 0xf7, 0x71, 0x22, 0xa2, 0x7b, 0x50,
0x27, 0x41, 0x70, 0xce, 0xd6, 0xc3, 0x5b, 0x23, 0x6d, 0xdc, 0xc4, 0xb1, 0x64, 0xfc, 0xaa, 0x41,
0x3d, 0x0a, 0x60, 0x2e, 0x90, 0x0e, 0x8d, 0x0b, 0xfa, 0x3d, 0x23, 0x81, 0xb9, 0xe0, 0xde, 0x4d,
0xbc, 0x93, 0xd1, 0x08, 0x5a, 0x17, 0x94, 0x04, 0x56, 0xe8, 0xf8, 0x9e, 0xb9, 0x88, 0x63, 0xc8,
0x47, 0x91, 0xf7, 0x0b, 0x3f, 0xf6, 0xde, 0x13, 0xde, 0x89, 0x8c, 0x1e, 0x02, 0x2c, 0x03, 0x7f,
0x1b, 0x6b, 0xf7, 0xb9, 0x56, 0x3a, 0x31, 0x1e, 0x43, 0xef, 0x8c, 0x84, 0x4b, 0x5e, 0x34, 0x33,
0xbd, 0x95, 0x8f, 0xc9, 0x6b, 0xf4, 0x51, 0x92, 0x18, 0x4f, 0xa6, 0x35, 0xbb, 0x3b, 0x89, 0x31,
0x12, 0xa7, 0x38, 0xd6, 0x1a, 0xbf, 0x69, 0x92, 0xb7, 0x70, 0x16, 0x48, 0x9c, 0xaa, 0x48, 0x9c,
0xa6, 0x48, 0x9c, 0x2a, 0x48, 0x08, 0x09, 0x3d, 0x85, 0xbb, 0x69, 0x8c, 0x6f, 0x1d, 0x16, 0x0e,
0x6b, 0xa3, 0xda, 0xb8, 0x35, 0xbb, 0x3f, 0xf1, 0xa3, 0x2e, 0x38, 0xdb, 0x2b, 0x66, 0x6f, 0x26,
0xd2, 0x63, 0x32, 0xe6, 0xc6, 0x77, 0xd0, 0x9e, 0xdb, 0xb6, 0x38, 0x2c, 0x51, 0x40, 0x94, 0x10,
0x26, 0xaf, 0xa5, 0x84, 0x84, 0x64, 0x9c, 0xc0, 0x1d, 0x29, 0x1e, 0xa3, 0x68, 0x26, 0xf7, 0x3a,
0x0e, 0x8a, 0xe4, 0xa0, 0x42, 0x83, 0x25, 0x2b, 0xe3, 0x6f, 0x0d, 0x3a, 0xe6, 0x96, 0xfa, 0x41,
0x98, 0x26, 0xf6, 0x31, 0x74, 0x85, 0x20, 0xe0, 0xe7, 0xb5, 0x6a, 0xa3, 0xda, 0xb8, 0x89, 0x73,
0xe7, 0xff, 0xa1, 0xf1, 0x6a, 0x73, 0x6b, 0xd9, 0xe6, 0x2a, 0x63, 0xb5, 0xa7, 0x8e, 0x95, 0xf1,
0x04, 0xda, 0xe2, 0x1f, 0x26, 0xec, 0xda, 0x0d, 0x23, 0x28, 0x94, 0x01, 0x8c, 0x25, 0x01, 0x51,
0x64, 0xc1, 0x13, 0xd8, 0xc7, 0xb1, 0x64, 0xfc, 0xae, 0x41, 0x57, 0xad, 0xae, 0x1a, 0x4c, 0xe8,
0x4b, 0xe8, 0xca, 0x89, 0x70, 0x48, 0x6e, 0xf1, 0xf6, 0x0f, 0x12, 0x4f, 0x59, 0x8f, 0x73, 0xd6,
0xc6, 0x53, 0x38, 0xd8, 0x4d, 0xe1, 0x9c, 0x52, 0xf7, 0x97, 0xe8, 0xb4, 0xcc, 0x1c, 0xff, 0xa5,
0xc1, 0xbd, 0xa2, 0x08, 0x95, 0x86, 0xf9, 0x2b, 0xe8, 0xed, 0xfa, 0x7d, 0x4d, 0x58, 0x28, 0xcd,
0xb3, 0x5e, 0x30, 0xcf, 0xb1, 0x15, 0xce, 0x3b, 0x19, 0x9f, 0x41, 0x77, 0x97, 0x55, 0xd9, 0x92,
0x94, 0xab, 0xf9, 0x0e, 0xd5, 0xbc, 0xf3, 0xd5, 0x3c, 0x86, 0xce, 0xdc, 0xb6, 0x9f, 0xb9, 0xd6,
0xab, 0x8d, 0x5b, 0xb2, 0x86, 0x25, 0x74, 0x55, 0xd7, 0x8a, 0x17, 0xf1, 0x73, 0x40, 0x98, 0x6c,
0xfd, 0x9f, 0x49, 0xa5, 0x2c, 0x4c, 0xe8, 0xe7, 0xbc, 0x2b, 0x26, 0x72, 0x0c, 0x9d, 0x33, 0x12,
0x56, 0xca, 0xe2, 0x0f, 0x8d, 0x0f, 0x83, 0x9a, 0x43, 0xf9, 0x76, 0x9a, 0xd0, 0xe3, 0x21, 0xf8,
0x1d, 0x52, 0x3b, 0x7a, 0xa8, 0x74, 0xf4, 0xf9, 0xf5, 0x4b, 0xd7, 0x79, 0x95, 0x98, 0xe1, 0xbc,
0x97, 0xf1, 0x08, 0x5a, 0x26, 0x2b, 0xbd, 0x72, 0x8d, 0x1f, 0xa1, 0x9d, 0xba, 0x55, 0xaa, 0x41,
0x87, 0x46, 0xe4, 0xe9, 0x7b, 0x8c, 0xf0, 0x9d, 0xd7, 0xc0, 0x3b, 0x39, 0xba, 0x32, 0x26, 0x33,
0x3d, 0x9e, 0x6d, 0xd9, 0x2b, 0x63, 0x41, 0x2f, 0xe3, 0xfb, 0xbf, 0xa7, 0x77, 0x0c, 0x9d, 0x05,
0x71, 0x49, 0x48, 0xca, 0xe3, 0xb6, 0x84, 0xae, 0xea, 0x5a, 0x71, 0x06, 0x29, 0x0c, 0x14, 0x6a,
0x8b, 0xf2, 0x2a, 0x43, 0x99, 0x08, 0xf6, 0x56, 0xae, 0xb5, 0x8e, 0xd9, 0x80, 0xff, 0x47, 0x47,
0xd0, 0xfc, 0xc9, 0xf2, 0x6c, 0x97, 0x44, 0x68, 0x08, 0x1a, 0x4a, 0x0f, 0x8c, 0x6f, 0xe0, 0xa0,
0xe0, 0x89, 0x15, 0xd3, 0x7f, 0x01, 0xe8, 0x92, 0xec, 0x28, 0x67, 0x6b, 0x05, 0x9b, 0xd2, 0x7c,
0x1f, 0x39, 0xa5, 0x7c, 0x1f, 0x49, 0xd1, 0x1d, 0xcf, 0x45, 0xad, 0x98, 0xe0, 0x17, 0xd0, 0x3f,
0x23, 0xe1, 0x25, 0x71, 0x57, 0x95, 0xa8, 0xe8, 0x4f, 0x0d, 0x06, 0x79, 0xff, 0xf7, 0x4b, 0x44,
0xb3, 0x7f, 0x6e, 0x43, 0xfc, 0x5e, 0x8c, 0x3e, 0x85, 0xa6, 0x95, 0x34, 0x13, 0xed, 0x08, 0x5a,
0x7e, 0xf9, 0xd2, 0x0f, 0x0a, 0x4e, 0x19, 0x45, 0x97, 0x80, 0xd6, 0x39, 0x8e, 0x45, 0x0f, 0x12,
0xe3, 0x42, 0x06, 0xd7, 0x1f, 0xbe, 0x4d, 0xcd, 0x28, 0x3a, 0x87, 0xee, 0x3a, 0x83, 0x16, 0x3a,
0x94, 0x7c, 0xb2, 0x7d, 0xd0, 0x8f, 0x6e, 0x56, 0x32, 0x8a, 0x16, 0x70, 0x67, 0x2d, 0x93, 0x26,
0x1a, 0xe6, 0x9e, 0x9f, 0x04, 0xfa, 0xe0, 0x06, 0x0d, 0xa3, 0x68, 0x0e, 0x6d, 0x4b, 0xe2, 0x2d,
0x74, 0x5f, 0x02, 0x44, 0x5e, 0xfe, 0xfa, 0xb0, 0x58, 0xc1, 0x28, 0xfa, 0x1a, 0x3a, 0x81, 0x4a,
0x3a, 0x48, 0x4f, 0x8c, 0xf3, 0x5c, 0xa6, 0x1f, 0xde, 0xa8, 0x63, 0x14, 0x3d, 0x82, 0x86, 0x13,
0x6f, 0x5c, 0xd4, 0x4f, 0x0c, 0xa5, 0xd5, 0xad, 0x0f, 0xf2, 0x87, 0x02, 0x0b, 0x47, 0x5e, 0x87,
0x29, 0x16, 0xd9, 0x0d, 0x9b, 0x62, 0x91, 0xdf, 0x9f, 0x73, 0x68, 0xaf, 0x25, 0xda, 0x4a, 0xb1,
0xc8, 0x10, 0xa1, 0x3e, 0x2c, 0x56, 0x88, 0x10, 0xb6, 0xb4, 0xf9, 0xd2, 0x10, 0x99, 0x55, 0x9a,
0x86, 0xc8, 0x2d, 0xca, 0xe7, 0xd0, 0xb3, 0xb2, 0x2b, 0x08, 0x1d, 0x15, 0xce, 0x69, 0xbc, 0x0f,
0xf5, 0x07, 0x6f, 0xd1, 0x8a, 0x06, 0x31, 0x75, 0x63, 0xa4, 0x0d, 0xca, 0x2f, 0xa8, 0xb4, 0x41,
0x45, 0x6b, 0x66, 0x0e, 0x6d, 0x47, 0x7a, 0x93, 0x4e, 0x0b, 0xcc, 0x7c, 0x3d, 0xa4, 0x05, 0x66,
0x5f, 0xbc, 0x9f, 0xf5, 0x7e, 0xe8, 0x4c, 0xe2, 0x0f, 0xd9, 0xc7, 0xe2, 0xe7, 0x65, 0x9d, 0x7f,
0xa5, 0x7e, 0xf2, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x16, 0xf8, 0xb5, 0xe7, 0x0e, 0x00,
0x00,
}