Jelajahi Sumber

精选管理

wfz 3 tahun lalu
induk
melakukan
a5cc4441cf

+ 579 - 118
api/common/common.pb.go

@@ -7772,6 +7772,363 @@ func (x *SendMessageReply) GetIsSelfOnline() bool {
 	return false
 }
 
+type ManagerFindCanHandpickUserListRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	NextId         string `protobuf:"bytes,1,opt,name=nextId,proto3" json:"nextId"`
+	Offset         int64  `protobuf:"varint,2,opt,name=offset,proto3" json:"offset"`
+	IsHandpickUser bool   `protobuf:"varint,3,opt,name=isHandpickUser,proto3" json:"isHandpickUser"`
+}
+
+func (x *ManagerFindCanHandpickUserListRequest) Reset() {
+	*x = ManagerFindCanHandpickUserListRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_common_proto_msgTypes[106]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ManagerFindCanHandpickUserListRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ManagerFindCanHandpickUserListRequest) ProtoMessage() {}
+
+func (x *ManagerFindCanHandpickUserListRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_common_proto_msgTypes[106]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ManagerFindCanHandpickUserListRequest.ProtoReflect.Descriptor instead.
+func (*ManagerFindCanHandpickUserListRequest) Descriptor() ([]byte, []int) {
+	return file_common_proto_rawDescGZIP(), []int{106}
+}
+
+func (x *ManagerFindCanHandpickUserListRequest) GetNextId() string {
+	if x != nil {
+		return x.NextId
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserListRequest) GetOffset() int64 {
+	if x != nil {
+		return x.Offset
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserListRequest) GetIsHandpickUser() bool {
+	if x != nil {
+		return x.IsHandpickUser
+	}
+	return false
+}
+
+type ManagerFindCanHandpickUserListReply struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	List   []*ManagerFindCanHandpickUserInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"`
+	NextId string                            `protobuf:"bytes,2,opt,name=nextId,proto3" json:"nextId"`
+	Total  int64                             `protobuf:"varint,3,opt,name=total,proto3" json:"total"`
+}
+
+func (x *ManagerFindCanHandpickUserListReply) Reset() {
+	*x = ManagerFindCanHandpickUserListReply{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_common_proto_msgTypes[107]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ManagerFindCanHandpickUserListReply) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ManagerFindCanHandpickUserListReply) ProtoMessage() {}
+
+func (x *ManagerFindCanHandpickUserListReply) ProtoReflect() protoreflect.Message {
+	mi := &file_common_proto_msgTypes[107]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ManagerFindCanHandpickUserListReply.ProtoReflect.Descriptor instead.
+func (*ManagerFindCanHandpickUserListReply) Descriptor() ([]byte, []int) {
+	return file_common_proto_rawDescGZIP(), []int{107}
+}
+
+func (x *ManagerFindCanHandpickUserListReply) GetList() []*ManagerFindCanHandpickUserInfo {
+	if x != nil {
+		return x.List
+	}
+	return make([]*ManagerFindCanHandpickUserInfo, 0)
+}
+
+func (x *ManagerFindCanHandpickUserListReply) GetNextId() string {
+	if x != nil {
+		return x.NextId
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserListReply) GetTotal() int64 {
+	if x != nil {
+		return x.Total
+	}
+	return 0
+}
+
+type ManagerFindCanHandpickUserInfo struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Id              string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
+	Nickname        string   `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"`                // 昵称
+	AvatarUrl       string   `protobuf:"bytes,3,opt,name=avatarUrl,proto3" json:"avatarUrl"`              // 头像链接
+	Sex             int64    `protobuf:"varint,4,opt,name=sex,proto3" json:"sex"`                         // 性别
+	Pictures        []string `protobuf:"bytes,5,rep,name=pictures,proto3" json:"pictures"`                // 图片
+	Age             int64    `protobuf:"varint,6,opt,name=age,proto3" json:"age"`                         // 年龄
+	Constellation   string   `protobuf:"bytes,7,opt,name=constellation,proto3" json:"constellation"`      // 星座
+	Credit          int64    `protobuf:"varint,8,opt,name=credit,proto3" json:"credit"`                   // 积分
+	Signature       string   `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"`              // 签名
+	IntroduceVoice  string   `protobuf:"bytes,10,opt,name=introduceVoice,proto3" json:"introduceVoice"`   // 介绍语音
+	Province        string   `protobuf:"bytes,11,opt,name=province,proto3" json:"province"`               // 省
+	City            string   `protobuf:"bytes,12,opt,name=city,proto3" json:"city"`                       // 市
+	PersonId        int64    `protobuf:"varint,13,opt,name=personId,proto3" json:"personId"`              // 用户id(Number)
+	IsHighQuality   bool     `protobuf:"varint,14,opt,name=isHighQuality,proto3" json:"isHighQuality"`    // 是否是优质用户
+	IsBlack         bool     `protobuf:"varint,15,opt,name=isBlack,proto3" json:"isBlack"`                // 是否被封禁
+	Weight          int64    `protobuf:"varint,16,opt,name=weight,proto3" json:"weight"`                  // 权重
+	LastLoginTime   int64    `protobuf:"varint,17,opt,name=lastLoginTime,proto3" json:"lastLoginTime"`    // 上次登录时间
+	BlackDetails    string   `protobuf:"bytes,18,opt,name=blackDetails,proto3" json:"blackDetails"`       // 拉黑理由(只有被拉黑的用户才会有)
+	IsVip           bool     `protobuf:"varint,19,opt,name=isVip,proto3" json:"isVip"`                    // 是否是Vip
+	VipLevel        int64    `protobuf:"varint,20,opt,name=vipLevel,proto3" json:"vipLevel"`              // vip等级
+	IsYearVip       bool     `protobuf:"varint,21,opt,name=isYearVip,proto3" json:"isYearVip"`            // 是否是年费Vip
+	VipFunctions    []string `protobuf:"bytes,22,rep,name=vipFunctions,proto3" json:"vipFunctions"`       // vip功能
+	IsHandpickUser  bool     `protobuf:"varint,23,opt,name=isHandpickUser,proto3" json:"isHandpickUser"`  // 是否是精选
+	HandpickPicture string   `protobuf:"bytes,24,opt,name=handpickPicture,proto3" json:"handpickPicture"` // 精选图片
+}
+
+func (x *ManagerFindCanHandpickUserInfo) Reset() {
+	*x = ManagerFindCanHandpickUserInfo{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_common_proto_msgTypes[108]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ManagerFindCanHandpickUserInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ManagerFindCanHandpickUserInfo) ProtoMessage() {}
+
+func (x *ManagerFindCanHandpickUserInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_common_proto_msgTypes[108]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ManagerFindCanHandpickUserInfo.ProtoReflect.Descriptor instead.
+func (*ManagerFindCanHandpickUserInfo) Descriptor() ([]byte, []int) {
+	return file_common_proto_rawDescGZIP(), []int{108}
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetNickname() string {
+	if x != nil {
+		return x.Nickname
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetAvatarUrl() string {
+	if x != nil {
+		return x.AvatarUrl
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetSex() int64 {
+	if x != nil {
+		return x.Sex
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetPictures() []string {
+	if x != nil {
+		return x.Pictures
+	}
+	return make([]string, 0)
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetAge() int64 {
+	if x != nil {
+		return x.Age
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetConstellation() string {
+	if x != nil {
+		return x.Constellation
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetCredit() int64 {
+	if x != nil {
+		return x.Credit
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetSignature() string {
+	if x != nil {
+		return x.Signature
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetIntroduceVoice() string {
+	if x != nil {
+		return x.IntroduceVoice
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetProvince() string {
+	if x != nil {
+		return x.Province
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetCity() string {
+	if x != nil {
+		return x.City
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetPersonId() int64 {
+	if x != nil {
+		return x.PersonId
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetIsHighQuality() bool {
+	if x != nil {
+		return x.IsHighQuality
+	}
+	return false
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetIsBlack() bool {
+	if x != nil {
+		return x.IsBlack
+	}
+	return false
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetWeight() int64 {
+	if x != nil {
+		return x.Weight
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetLastLoginTime() int64 {
+	if x != nil {
+		return x.LastLoginTime
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetBlackDetails() string {
+	if x != nil {
+		return x.BlackDetails
+	}
+	return ""
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetIsVip() bool {
+	if x != nil {
+		return x.IsVip
+	}
+	return false
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetVipLevel() int64 {
+	if x != nil {
+		return x.VipLevel
+	}
+	return 0
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetIsYearVip() bool {
+	if x != nil {
+		return x.IsYearVip
+	}
+	return false
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetVipFunctions() []string {
+	if x != nil {
+		return x.VipFunctions
+	}
+	return make([]string, 0)
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetIsHandpickUser() bool {
+	if x != nil {
+		return x.IsHandpickUser
+	}
+	return false
+}
+
+func (x *ManagerFindCanHandpickUserInfo) GetHandpickPicture() string {
+	if x != nil {
+		return x.HandpickPicture
+	}
+	return ""
+}
+
 var File_common_proto protoreflect.FileDescriptor
 
 var file_common_proto_rawDesc = []byte{
@@ -8746,11 +9103,75 @@ var file_common_proto_rawDesc = []byte{
 	0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
 	0x22, 0x0a, 0x0c, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18,
 	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x4f, 0x6e, 0x6c,
-	0x69, 0x6e, 0x65, 0x42, 0x43, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x69, 0x6e, 0x65, 0x22, 0x7f, 0x0a, 0x25, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69,
+	0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65,
+	0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
+	0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65,
+	0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0e,
+	0x69, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b,
+	0x55, 0x73, 0x65, 0x72, 0x22, 0x93, 0x01, 0x0a, 0x23, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+	0x46, 0x69, 0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55,
+	0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3e, 0x0a, 0x04,
+	0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46,
+	0x69, 0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73,
+	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
+	0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65,
+	0x78, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xe2, 0x05, 0x0a, 0x1e, 0x4d,
+	0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e,
+	0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a,
+	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a,
+	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61,
+	0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76,
+	0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63,
+	0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x69, 0x63,
+	0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74,
+	0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+	0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a,
+	0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63,
+	0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
+	0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
+	0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65,
+	0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x74,
+	0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+	0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18,
+	0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x48, 0x69, 0x67,
+	0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
+	0x69, 0x73, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a,
+	0x07, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
+	0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68,
+	0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
+	0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65,
+	0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69,
+	0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x44, 0x65,
+	0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6c, 0x61,
+	0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56,
+	0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12,
+	0x1a, 0x0a, 0x08, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x08, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69,
+	0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
+	0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x69, 0x70,
+	0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52,
+	0x0c, 0x76, 0x69, 0x70, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a,
+	0x0e, 0x69, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18,
+	0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63,
+	0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63,
+	0x6b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
+	0x68, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42,
+	0x43, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a,
+	0x33, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+	0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -8765,114 +9186,117 @@ func file_common_proto_rawDescGZIP() []byte {
 	return file_common_proto_rawDescData
 }
 
-var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 106)
+var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 109)
 var file_common_proto_goTypes = []interface{}{
-	(*UserAndPartnerIdentifyIdParam)(nil),       // 0: api.common.UserAndPartnerIdentifyIdParam
-	(*UserAndPartnerParam)(nil),                 // 1: api.common.UserAndPartnerParam
-	(*User1AndUser2IdParam)(nil),                // 2: api.common.User1AndUser2IdParam
-	(*PartnerIDParam)(nil),                      // 3: api.common.PartnerIDParam
-	(*PersonIDParam)(nil),                       // 4: api.common.PersonIDParam
-	(*IDParam)(nil),                             // 5: api.common.IDParam
-	(*PersonParam)(nil),                         // 6: api.common.PersonParam
-	(*CreateChatRoomParam)(nil),                 // 7: api.common.CreateChatRoomParam
-	(*ChatCardInfo)(nil),                        // 8: api.common.ChatCardInfo
-	(*UserIDParam)(nil),                         // 9: api.common.UserIDParam
-	(*WxConfReq)(nil),                           // 10: api.common.WxConfReq
-	(*WxConfResponse)(nil),                      // 11: api.common.WxConfResponse
-	(*HomeInfo)(nil),                            // 12: api.common.HomeInfo
-	(*PersonMsg)(nil),                           // 13: api.common.PersonMsg
-	(*LookedAndLikedNum)(nil),                   // 14: api.common.LookedAndLikedNum
-	(*AddFriendMessageInfo)(nil),                // 15: api.common.AddFriendMessageInfo
-	(*PersonIDList)(nil),                        // 16: api.common.PersonIDList
-	(*PersonDBReply)(nil),                       // 17: api.common.PersonDBReply
-	(*PersonDB)(nil),                            // 18: api.common.PersonDB
-	(*ScripIdRequest)(nil),                      // 19: api.common.ScripIdRequest
-	(*ListPageRequest)(nil),                     // 20: api.common.ListPageRequest
-	(*ListPageAndSexRequest)(nil),               // 21: api.common.ListPageAndSexRequest
-	(*FindChatTopicRequest)(nil),                // 22: api.common.FindChatTopicRequest
-	(*ListPage2Request)(nil),                    // 23: api.common.ListPage2Request
-	(*ListPageAndPersonRequest)(nil),            // 24: api.common.ListPageAndPersonRequest
-	(*SendPhoneCodeRequest)(nil),                // 25: api.common.SendPhoneCodeRequest
-	(*CheckPhoneCodeRequest)(nil),               // 26: api.common.CheckPhoneCodeRequest
-	(*ManagerLoginRequest)(nil),                 // 27: api.common.ManagerLoginRequest
-	(*LoginToken)(nil),                          // 28: api.common.LoginToken
-	(*UploadMaterialResponse)(nil),              // 29: api.common.UploadMaterialResponse
-	(*Ids)(nil),                                 // 30: api.common.Ids
-	(*TagListReply)(nil),                        // 31: api.common.TagListReply
-	(*TagList)(nil),                             // 32: api.common.TagList
-	(*SexReq)(nil),                              // 33: api.common.SexReq
-	(*GetMatchingPartnerInfoReply)(nil),         // 34: api.common.GetMatchingPartnerInfoReply
-	(*RandomIntroduceReply)(nil),                // 35: api.common.RandomIntroduceReply
-	(*UpdateInformationRequest)(nil),            // 36: api.common.UpdateInformationRequest
-	(*ChatRecordListReply)(nil),                 // 37: api.common.ChatRecordListReply
-	(*ChatRoomMsg)(nil),                         // 38: api.common.ChatRoomMsg
-	(*ChatPersonMsg)(nil),                       // 39: api.common.ChatPersonMsg
-	(*ChatRecordInfo)(nil),                      // 40: api.common.ChatRecordInfo
-	(*ChatIsReadInfo)(nil),                      // 41: api.common.ChatIsReadInfo
-	(*GoToRoom)(nil),                            // 42: api.common.GoToRoom
-	(*Message)(nil),                             // 43: api.common.Message
-	(*FindChatRoomMsgRequest)(nil),              // 44: api.common.FindChatRoomMsgRequest
-	(*RoomIDRequest)(nil),                       // 45: api.common.RoomIDRequest
-	(*FindChatRecordListRequest)(nil),           // 46: api.common.FindChatRecordListRequest
-	(*IsLike)(nil),                              // 47: api.common.IsLike
-	(*RandomNum)(nil),                           // 48: api.common.RandomNum
-	(*RandomNumAndSex)(nil),                     // 49: api.common.RandomNumAndSex
-	(*MemeRequest)(nil),                         // 50: api.common.MemeRequest
-	(*CommonTextList)(nil),                      // 51: api.common.CommonTextList
-	(*MemeTitleList)(nil),                       // 52: api.common.MemeTitleList
-	(*MemeTitle)(nil),                           // 53: api.common.MemeTitle
-	(*MemeList)(nil),                            // 54: api.common.MemeList
-	(*ChatTopicList)(nil),                       // 55: api.common.ChatTopicList
-	(*ReportChatRequest)(nil),                   // 56: api.common.ReportChatRequest
-	(*ReportRequest)(nil),                       // 57: api.common.ReportRequest
-	(*RoomChatMsg)(nil),                         // 58: api.common.RoomChatMsg
-	(*RecommendPersonListReply)(nil),            // 59: api.common.RecommendPersonListReply
-	(*RecommendPersonInfo)(nil),                 // 60: api.common.RecommendPersonInfo
-	(*FindRecommendRequest)(nil),                // 61: api.common.FindRecommendRequest
-	(*FindOverSevenDayAvatarReply)(nil),         // 62: api.common.FindOverSevenDayAvatarReply
-	(*PersonLookScripRequest)(nil),              // 63: api.common.PersonLookScripRequest
-	(*FindScripRequest)(nil),                    // 64: api.common.FindScripRequest
-	(*FindOtherScripRequest)(nil),               // 65: api.common.FindOtherScripRequest
-	(*ScripReply)(nil),                          // 66: api.common.ScripReply
-	(*ScripInfo)(nil),                           // 67: api.common.ScripInfo
-	(*ScripReplyMessage)(nil),                   // 68: api.common.ScripReplyMessage
-	(*DeleteScripRequest)(nil),                  // 69: api.common.DeleteScripRequest
-	(*CreateScripRequest)(nil),                  // 70: api.common.CreateScripRequest
-	(*ScripID)(nil),                             // 71: api.common.ScripID
-	(*ReplyScripRequest)(nil),                   // 72: api.common.ReplyScripRequest
-	(*UpdateLastScripIDRequest)(nil),            // 73: api.common.UpdateLastScripIDRequest
-	(*UpdateLastScripIDDBRequest)(nil),          // 74: api.common.UpdateLastScripIDDBRequest
-	(*MatchingRequest)(nil),                     // 75: api.common.MatchingRequest
-	(*UserIDsParam)(nil),                        // 76: api.common.UserIDsParam
-	(*ManagerFindPersonListReply)(nil),          // 77: api.common.ManagerFindPersonListReply
-	(*ManagerFindPersonListReply2)(nil),         // 78: api.common.ManagerFindPersonListReply2
-	(*ManagerFindPersonListRequest)(nil),        // 79: api.common.ManagerFindPersonListRequest
-	(*ManagerFindPersonInfo)(nil),               // 80: api.common.ManagerFindPersonInfo
-	(*ManagerUpdatePersonVoiceRequest)(nil),     // 81: api.common.ManagerUpdatePersonVoiceRequest
-	(*ManagerUpdatePersonPicturesRequest)(nil),  // 82: api.common.ManagerUpdatePersonPicturesRequest
-	(*ManagerUpdatePersonSignatureRequest)(nil), // 83: api.common.ManagerUpdatePersonSignatureRequest
-	(*ManagerUpdatePersonAvatarRequest)(nil),    // 84: api.common.ManagerUpdatePersonAvatarRequest
-	(*ManagerUpdatePersonNameRequest)(nil),      // 85: api.common.ManagerUpdatePersonNameRequest
-	(*ManagerUpdatePersonWeightRequest)(nil),    // 86: api.common.ManagerUpdatePersonWeightRequest
-	(*ManagerUpdatePersonIsBlackRequest)(nil),   // 87: api.common.ManagerUpdatePersonIsBlackRequest
-	(*ManagerFindRoomListRequest)(nil),          // 88: api.common.ManagerFindRoomListRequest
-	(*ManagerFindRoomListReply)(nil),            // 89: api.common.ManagerFindRoomListReply
-	(*RoomInfo)(nil),                            // 90: api.common.RoomInfo
-	(*ManagerFindChatRecordListRequest)(nil),    // 91: api.common.ManagerFindChatRecordListRequest
-	(*ManagerUpdateScripTextRequest)(nil),       // 92: api.common.ManagerUpdateScripTextRequest
-	(*ManagerUpdateScripPictureRequest)(nil),    // 93: api.common.ManagerUpdateScripPictureRequest
-	(*ManagerFindScripListRequest)(nil),         // 94: api.common.ManagerFindScripListRequest
-	(*ManagerScripReply)(nil),                   // 95: api.common.ManagerScripReply
-	(*ManagerScripInfo)(nil),                    // 96: api.common.ManagerScripInfo
-	(*ManagerFindReportListRequest)(nil),        // 97: api.common.ManagerFindReportListRequest
-	(*ManagerFindReportListReply)(nil),          // 98: api.common.ManagerFindReportListReply
-	(*ManagerFindReportInfo)(nil),               // 99: api.common.ManagerFindReportInfo
-	(*ManagerFindReportDetailsListRequest)(nil), // 100: api.common.ManagerFindReportDetailsListRequest
-	(*ManagerFindReportDetailsListReply)(nil),   // 101: api.common.ManagerFindReportDetailsListReply
-	(*ManagerFindReportDetailsInfo)(nil),        // 102: api.common.ManagerFindReportDetailsInfo
-	(*GetLoginConfigRequest)(nil),               // 103: api.common.GetLoginConfigRequest
-	(*GetLoginConfigReply)(nil),                 // 104: api.common.GetLoginConfigReply
-	(*SendMessageReply)(nil),                    // 105: api.common.SendMessageReply
+	(*UserAndPartnerIdentifyIdParam)(nil),         // 0: api.common.UserAndPartnerIdentifyIdParam
+	(*UserAndPartnerParam)(nil),                   // 1: api.common.UserAndPartnerParam
+	(*User1AndUser2IdParam)(nil),                  // 2: api.common.User1AndUser2IdParam
+	(*PartnerIDParam)(nil),                        // 3: api.common.PartnerIDParam
+	(*PersonIDParam)(nil),                         // 4: api.common.PersonIDParam
+	(*IDParam)(nil),                               // 5: api.common.IDParam
+	(*PersonParam)(nil),                           // 6: api.common.PersonParam
+	(*CreateChatRoomParam)(nil),                   // 7: api.common.CreateChatRoomParam
+	(*ChatCardInfo)(nil),                          // 8: api.common.ChatCardInfo
+	(*UserIDParam)(nil),                           // 9: api.common.UserIDParam
+	(*WxConfReq)(nil),                             // 10: api.common.WxConfReq
+	(*WxConfResponse)(nil),                        // 11: api.common.WxConfResponse
+	(*HomeInfo)(nil),                              // 12: api.common.HomeInfo
+	(*PersonMsg)(nil),                             // 13: api.common.PersonMsg
+	(*LookedAndLikedNum)(nil),                     // 14: api.common.LookedAndLikedNum
+	(*AddFriendMessageInfo)(nil),                  // 15: api.common.AddFriendMessageInfo
+	(*PersonIDList)(nil),                          // 16: api.common.PersonIDList
+	(*PersonDBReply)(nil),                         // 17: api.common.PersonDBReply
+	(*PersonDB)(nil),                              // 18: api.common.PersonDB
+	(*ScripIdRequest)(nil),                        // 19: api.common.ScripIdRequest
+	(*ListPageRequest)(nil),                       // 20: api.common.ListPageRequest
+	(*ListPageAndSexRequest)(nil),                 // 21: api.common.ListPageAndSexRequest
+	(*FindChatTopicRequest)(nil),                  // 22: api.common.FindChatTopicRequest
+	(*ListPage2Request)(nil),                      // 23: api.common.ListPage2Request
+	(*ListPageAndPersonRequest)(nil),              // 24: api.common.ListPageAndPersonRequest
+	(*SendPhoneCodeRequest)(nil),                  // 25: api.common.SendPhoneCodeRequest
+	(*CheckPhoneCodeRequest)(nil),                 // 26: api.common.CheckPhoneCodeRequest
+	(*ManagerLoginRequest)(nil),                   // 27: api.common.ManagerLoginRequest
+	(*LoginToken)(nil),                            // 28: api.common.LoginToken
+	(*UploadMaterialResponse)(nil),                // 29: api.common.UploadMaterialResponse
+	(*Ids)(nil),                                   // 30: api.common.Ids
+	(*TagListReply)(nil),                          // 31: api.common.TagListReply
+	(*TagList)(nil),                               // 32: api.common.TagList
+	(*SexReq)(nil),                                // 33: api.common.SexReq
+	(*GetMatchingPartnerInfoReply)(nil),           // 34: api.common.GetMatchingPartnerInfoReply
+	(*RandomIntroduceReply)(nil),                  // 35: api.common.RandomIntroduceReply
+	(*UpdateInformationRequest)(nil),              // 36: api.common.UpdateInformationRequest
+	(*ChatRecordListReply)(nil),                   // 37: api.common.ChatRecordListReply
+	(*ChatRoomMsg)(nil),                           // 38: api.common.ChatRoomMsg
+	(*ChatPersonMsg)(nil),                         // 39: api.common.ChatPersonMsg
+	(*ChatRecordInfo)(nil),                        // 40: api.common.ChatRecordInfo
+	(*ChatIsReadInfo)(nil),                        // 41: api.common.ChatIsReadInfo
+	(*GoToRoom)(nil),                              // 42: api.common.GoToRoom
+	(*Message)(nil),                               // 43: api.common.Message
+	(*FindChatRoomMsgRequest)(nil),                // 44: api.common.FindChatRoomMsgRequest
+	(*RoomIDRequest)(nil),                         // 45: api.common.RoomIDRequest
+	(*FindChatRecordListRequest)(nil),             // 46: api.common.FindChatRecordListRequest
+	(*IsLike)(nil),                                // 47: api.common.IsLike
+	(*RandomNum)(nil),                             // 48: api.common.RandomNum
+	(*RandomNumAndSex)(nil),                       // 49: api.common.RandomNumAndSex
+	(*MemeRequest)(nil),                           // 50: api.common.MemeRequest
+	(*CommonTextList)(nil),                        // 51: api.common.CommonTextList
+	(*MemeTitleList)(nil),                         // 52: api.common.MemeTitleList
+	(*MemeTitle)(nil),                             // 53: api.common.MemeTitle
+	(*MemeList)(nil),                              // 54: api.common.MemeList
+	(*ChatTopicList)(nil),                         // 55: api.common.ChatTopicList
+	(*ReportChatRequest)(nil),                     // 56: api.common.ReportChatRequest
+	(*ReportRequest)(nil),                         // 57: api.common.ReportRequest
+	(*RoomChatMsg)(nil),                           // 58: api.common.RoomChatMsg
+	(*RecommendPersonListReply)(nil),              // 59: api.common.RecommendPersonListReply
+	(*RecommendPersonInfo)(nil),                   // 60: api.common.RecommendPersonInfo
+	(*FindRecommendRequest)(nil),                  // 61: api.common.FindRecommendRequest
+	(*FindOverSevenDayAvatarReply)(nil),           // 62: api.common.FindOverSevenDayAvatarReply
+	(*PersonLookScripRequest)(nil),                // 63: api.common.PersonLookScripRequest
+	(*FindScripRequest)(nil),                      // 64: api.common.FindScripRequest
+	(*FindOtherScripRequest)(nil),                 // 65: api.common.FindOtherScripRequest
+	(*ScripReply)(nil),                            // 66: api.common.ScripReply
+	(*ScripInfo)(nil),                             // 67: api.common.ScripInfo
+	(*ScripReplyMessage)(nil),                     // 68: api.common.ScripReplyMessage
+	(*DeleteScripRequest)(nil),                    // 69: api.common.DeleteScripRequest
+	(*CreateScripRequest)(nil),                    // 70: api.common.CreateScripRequest
+	(*ScripID)(nil),                               // 71: api.common.ScripID
+	(*ReplyScripRequest)(nil),                     // 72: api.common.ReplyScripRequest
+	(*UpdateLastScripIDRequest)(nil),              // 73: api.common.UpdateLastScripIDRequest
+	(*UpdateLastScripIDDBRequest)(nil),            // 74: api.common.UpdateLastScripIDDBRequest
+	(*MatchingRequest)(nil),                       // 75: api.common.MatchingRequest
+	(*UserIDsParam)(nil),                          // 76: api.common.UserIDsParam
+	(*ManagerFindPersonListReply)(nil),            // 77: api.common.ManagerFindPersonListReply
+	(*ManagerFindPersonListReply2)(nil),           // 78: api.common.ManagerFindPersonListReply2
+	(*ManagerFindPersonListRequest)(nil),          // 79: api.common.ManagerFindPersonListRequest
+	(*ManagerFindPersonInfo)(nil),                 // 80: api.common.ManagerFindPersonInfo
+	(*ManagerUpdatePersonVoiceRequest)(nil),       // 81: api.common.ManagerUpdatePersonVoiceRequest
+	(*ManagerUpdatePersonPicturesRequest)(nil),    // 82: api.common.ManagerUpdatePersonPicturesRequest
+	(*ManagerUpdatePersonSignatureRequest)(nil),   // 83: api.common.ManagerUpdatePersonSignatureRequest
+	(*ManagerUpdatePersonAvatarRequest)(nil),      // 84: api.common.ManagerUpdatePersonAvatarRequest
+	(*ManagerUpdatePersonNameRequest)(nil),        // 85: api.common.ManagerUpdatePersonNameRequest
+	(*ManagerUpdatePersonWeightRequest)(nil),      // 86: api.common.ManagerUpdatePersonWeightRequest
+	(*ManagerUpdatePersonIsBlackRequest)(nil),     // 87: api.common.ManagerUpdatePersonIsBlackRequest
+	(*ManagerFindRoomListRequest)(nil),            // 88: api.common.ManagerFindRoomListRequest
+	(*ManagerFindRoomListReply)(nil),              // 89: api.common.ManagerFindRoomListReply
+	(*RoomInfo)(nil),                              // 90: api.common.RoomInfo
+	(*ManagerFindChatRecordListRequest)(nil),      // 91: api.common.ManagerFindChatRecordListRequest
+	(*ManagerUpdateScripTextRequest)(nil),         // 92: api.common.ManagerUpdateScripTextRequest
+	(*ManagerUpdateScripPictureRequest)(nil),      // 93: api.common.ManagerUpdateScripPictureRequest
+	(*ManagerFindScripListRequest)(nil),           // 94: api.common.ManagerFindScripListRequest
+	(*ManagerScripReply)(nil),                     // 95: api.common.ManagerScripReply
+	(*ManagerScripInfo)(nil),                      // 96: api.common.ManagerScripInfo
+	(*ManagerFindReportListRequest)(nil),          // 97: api.common.ManagerFindReportListRequest
+	(*ManagerFindReportListReply)(nil),            // 98: api.common.ManagerFindReportListReply
+	(*ManagerFindReportInfo)(nil),                 // 99: api.common.ManagerFindReportInfo
+	(*ManagerFindReportDetailsListRequest)(nil),   // 100: api.common.ManagerFindReportDetailsListRequest
+	(*ManagerFindReportDetailsListReply)(nil),     // 101: api.common.ManagerFindReportDetailsListReply
+	(*ManagerFindReportDetailsInfo)(nil),          // 102: api.common.ManagerFindReportDetailsInfo
+	(*GetLoginConfigRequest)(nil),                 // 103: api.common.GetLoginConfigRequest
+	(*GetLoginConfigReply)(nil),                   // 104: api.common.GetLoginConfigReply
+	(*SendMessageReply)(nil),                      // 105: api.common.SendMessageReply
+	(*ManagerFindCanHandpickUserListRequest)(nil), // 106: api.common.ManagerFindCanHandpickUserListRequest
+	(*ManagerFindCanHandpickUserListReply)(nil),   // 107: api.common.ManagerFindCanHandpickUserListReply
+	(*ManagerFindCanHandpickUserInfo)(nil),        // 108: api.common.ManagerFindCanHandpickUserInfo
 }
 var file_common_proto_depIdxs = []int32{
 	32,  // 0: api.common.HomeInfo.tagList:type_name -> api.common.TagList
@@ -8894,11 +9318,12 @@ var file_common_proto_depIdxs = []int32{
 	96,  // 16: api.common.ManagerScripReply.list:type_name -> api.common.ManagerScripInfo
 	99,  // 17: api.common.ManagerFindReportListReply.list:type_name -> api.common.ManagerFindReportInfo
 	102, // 18: api.common.ManagerFindReportDetailsListReply.list:type_name -> api.common.ManagerFindReportDetailsInfo
-	19,  // [19:19] is the sub-list for method output_type
-	19,  // [19:19] is the sub-list for method input_type
-	19,  // [19:19] is the sub-list for extension type_name
-	19,  // [19:19] is the sub-list for extension extendee
-	0,   // [0:19] is the sub-list for field type_name
+	108, // 19: api.common.ManagerFindCanHandpickUserListReply.list:type_name -> api.common.ManagerFindCanHandpickUserInfo
+	20,  // [20:20] is the sub-list for method output_type
+	20,  // [20:20] is the sub-list for method input_type
+	20,  // [20:20] is the sub-list for extension type_name
+	20,  // [20:20] is the sub-list for extension extendee
+	0,   // [0:20] is the sub-list for field type_name
 }
 
 func init() { file_common_proto_init() }
@@ -10179,6 +10604,42 @@ func file_common_proto_init() {
 				return nil
 			}
 		}
+		file_common_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ManagerFindCanHandpickUserListRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_common_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ManagerFindCanHandpickUserListReply); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_common_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ManagerFindCanHandpickUserInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
@@ -10186,7 +10647,7 @@ func file_common_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_common_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   106,
+			NumMessages:   109,
 			NumExtensions: 0,
 			NumServices:   0,
 		},

+ 40 - 1
api/common/common.proto

@@ -781,4 +781,43 @@ message GetLoginConfigReply{
 
 message SendMessageReply{
   bool isSelfOnline = 1;// 自己是否在线
-}
+}
+
+message ManagerFindCanHandpickUserListRequest{
+  string nextId = 1;
+  int64 offset = 2;
+  bool isHandpickUser = 3;
+}
+
+message ManagerFindCanHandpickUserListReply{
+  repeated ManagerFindCanHandpickUserInfo list = 1;
+  string nextId = 2;
+  int64 total = 3;
+}
+
+message ManagerFindCanHandpickUserInfo{
+  string id = 1;
+  string nickname = 2;// 昵称
+  string avatarUrl =3;// 头像链接
+  int64 sex = 4;// 性别
+  repeated string pictures = 5; // 图片
+  int64 age = 6; // 年龄
+  string constellation = 7; // 星座
+  int64 credit = 8;// 积分
+  string signature = 9; // 签名
+  string introduceVoice = 10; // 介绍语音
+  string province = 11;// 省
+  string city = 12;// 市
+  int64 personId = 13; // 用户id(Number)
+  bool isHighQuality = 14;// 是否是优质用户
+  bool isBlack = 15;// 是否被封禁
+  int64 weight = 16;// 权重
+  int64 lastLoginTime = 17;// 上次登录时间
+  string blackDetails = 18;// 拉黑理由(只有被拉黑的用户才会有)
+  bool isVip = 19;// 是否是Vip
+  int64 vipLevel = 20;// vip等级
+  bool isYearVip = 21;// 是否是年费Vip
+  repeated string vipFunctions = 22;// vip功能
+  bool isHandpickUser = 23;// 是否是精选
+  string handpickPicture = 24;// 精选图片
+}

+ 490 - 475
api/user/user.pb.go

@@ -3268,7 +3268,7 @@ var file_user_proto_rawDesc = []byte{
 	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2a,
 	0x0a, 0x10, 0x50, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x70,
 	0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xde, 0x5b, 0x0a, 0x04, 0x55,
+	0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0x91, 0x5d, 0x0a, 0x04, 0x55,
 	0x73, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e,
 	0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
 	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69,
@@ -3777,237 +3777,248 @@ var file_user_proto_rawDesc = []byte{
 	0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x29, 0x82, 0xd3,
 	0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
 	0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
-	0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x4d, 0x61, 0x6e, 0x61,
-	0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69,
-	0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
-	0x72, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67,
-	0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4,
-	0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
-	0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73,
-	0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
-	0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79,
-	0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72,
-	0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
-	0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x65,
-	0x74, 0x2f, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x70, 0x0a, 0x13, 0x4d, 0x61, 0x6e, 0x61,
-	0x67, 0x65, 0x72, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12,
-	0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72,
-	0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
-	0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x2f, 0x75, 0x73,
-	0x65, 0x72, 0x2f, 0x6d, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x1c, 0x4d, 0x61,
-	0x6e, 0x61, 0x67, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x67, 0x68, 0x51,
-	0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69,
+	0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xb0, 0x01, 0x0a, 0x1e, 0x4d, 0x61, 0x6e, 0x61,
+	0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69,
+	0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46,
+	0x69, 0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x55, 0x73,
+	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67,
+	0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x61, 0x6e, 0x48, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63,
+	0x6b, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2a,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x72, 0x2f, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x69, 0x63, 0x6b, 0x2f, 0x75, 0x73,
+	0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x4d,
+	0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75,
+	0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b,
+	0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65,
+	0x72, 0x2f, 0x73, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x4d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c,
+	0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69,
 	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44,
 	0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82,
-	0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c, 0x82,
+	0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61,
 	0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72,
-	0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x88, 0x01, 0x0a, 0x16, 0x4d,
-	0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
-	0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+	0x2f, 0x73, 0x65, 0x74, 0x2f, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x70, 0x0a, 0x13, 0x4d,
+	0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61,
+	0x63, 0x6b, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
+	0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61,
+	0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b,
+	0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a,
+	0x1c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69,
+	0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f,
+	0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+	0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d,
+	0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75,
+	0x73, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x88, 0x01,
+	0x0a, 0x16, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55,
+	0x73, 0x65, 0x72, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
+	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64,
+	0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82,
+	0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61,
+	0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x75,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x91, 0x01, 0x0a, 0x19, 0x4d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69,
+	0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
+	0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
+	0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c,
+	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72,
+	0x65, 0x73, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a,
+	0x1a, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73,
+	0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e,
+	0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
+	0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61,
+	0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
+	0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+	0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12,
+	0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+	0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
+	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+	0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f,
+	0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72,
+	0x2f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01,
+	0x2a, 0x12, 0x85, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64,
+	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
+	0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61,
+	0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f,
+	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x17, 0x4d, 0x61,
+	0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x57,
+	0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
 	0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93,
-	0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
-	0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x75, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x91, 0x01, 0x0a, 0x19, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
-	0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69, 0x63, 0x74, 0x75,
-	0x72, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
+	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75,
 	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c, 0x82, 0xd3, 0xe4,
-	0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
-	0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f,
-	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a, 0x1a, 0x4d, 0x61,
-	0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53,
-	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
-	0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
-	0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x69, 0x67,
-	0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a,
-	0x12, 0x8b, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x2c, 0x2e, 0x61,
-	0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
-	0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x41, 0x76, 0x61,
-	0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
-	0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69,
-	0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x76,
-	0x61, 0x74, 0x61, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x85,
-	0x01, 0x0a, 0x15, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3,
-	0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
-	0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x75, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67,
-	0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67,
-	0x68, 0x74, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
-	0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72,
-	0x73, 0x6f, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24,
-	0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75,
-	0x73, 0x65, 0x72, 0x2f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74,
-	0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
-	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x42, 0x6c, 0x61, 0x63,
-	0x6b, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
-	0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23,
-	0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75,
-	0x73, 0x65, 0x72, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12,
-	0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4,
+	0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+	0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2f, 0x75, 0x70,
+	0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x6e, 0x61,
+	0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x42,
+	0x6c, 0x61, 0x63, 0x6b, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4,
+	0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+	0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x2f, 0x75, 0x70, 0x64,
+	0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67,
 	0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64,
-	0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
-	0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f,
-	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65,
-	0x64, 0x69, 0x74, 0x2f, 0x61, 0x64, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65,
-	0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44,
-	0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
-	0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x0e,
-	0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73,
-	0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65,
-	0x70, 0x6c, 0x79, 0x12, 0x57, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73,
-	0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61,
-	0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x17,
-	0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65,
-	0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
-	0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e,
-	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52,
-	0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d,
-	0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50,
-	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67,
+	0x69, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61,
+	0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43,
+	0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
 	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
-	0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65,
-	0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
-	0x44, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49,
-	0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x82, 0x01,
-	0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48,
-	0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42,
-	0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
-	0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67,
-	0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46,
-	0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68,
-	0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79,
-	0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d,
-	0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12,
-	0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72,
-	0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d,
-	0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52,
-	0x65, 0x70, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52,
-	0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65,
-	0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x19, 0x4c, 0x6f, 0x6f,
-	0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65,
-	0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a,
-	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
-	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74,
-	0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64,
-	0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
-	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
-	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
-	0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69,
-	0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e,
+	0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61,
+	0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f,
+	0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x61, 0x64, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x40, 0x0a,
+	0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x2e,
 	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41,
-	0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74,
+	0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
+	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12,
+	0x45, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73,
+	0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44,
+	0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x57, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+	0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x12, 0x26, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+	0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12,
+	0x58, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
+	0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f,
+	0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61,
+	0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+	0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x55, 0x70, 0x64,
+	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
+	0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a,
+	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x17, 0x47, 0x65, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75,
+	0x6e, 0x74, 0x49, 0x44, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67,
+	0x12, 0x82, 0x01, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+	0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65,
+	0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
+	0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
+	0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
+	0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48,
+	0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
+	0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b,
+	0x65, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x28, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b,
+	0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d,
+	0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x24,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73,
+	0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x19,
+	0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64,
+	0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72,
+	0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x17, 0x43, 0x72,
+	0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43,
+	0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+	0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16,
+	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53,
+	0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74,
 	0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65,
 	0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
 	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
-	0x79, 0x12, 0x67, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x4d, 0x65, 0x73, 0x73,
-	0x61, 0x67, 0x65, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65,
-	0x72, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e,
-	0x64, 0x4e, 0x65, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x72, 0x65, 0x61,
-	0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x1e, 0x53, 0x65,
-	0x6e, 0x64, 0x4e, 0x65, 0x77, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70,
-	0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61,
-	0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,
-	0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
-	0x00, 0x12, 0x84, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
-	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74,
-	0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
-	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75,
-	0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
-	0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52,
-	0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x12, 0x23,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63,
-	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x52,
-	0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x20,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x41, 0x64,
-	0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72,
-	0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
-	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
-	0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66,
-	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x42,
-	0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1b, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x21, 0x55,
+	0x79, 0x12, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65,
+	0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
+	0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x4d,
+	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69,
+	0x6e, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
+	0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e,
+	0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a,
+	0x1e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x54,
+	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12,
+	0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72,
+	0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
+	0x74, 0x79, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55,
+	0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64,
+	0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55,
+	0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
+	0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65,
+	0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x47,
+	0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44,
+	0x42, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74,
+	0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
+	0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x4d,
+	0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63,
+	0x6b, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70,
+	0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a,
+	0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65,
+	0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
+	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72,
+	0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x44, 0x42, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1b,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x8b, 0x01,
+	0x0a, 0x21, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76,
+	0x69, 0x74, 0x79, 0x12, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55,
 	0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
 	0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
-	0x12, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72,
-	0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77,
-	0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
-	0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
-	0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64,
-	0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
-	0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x4c, 0x69,
-	0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61,
-	0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69,
-	0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
-	0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69,
-	0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
+	0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69,
+	0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x11, 0x46,
+	0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74,
+	0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65,
+	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69,
+	0x70, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x3d,
+	0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69,
+	0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72,
+	0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
+	0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -4024,120 +4035,122 @@ func file_user_proto_rawDescGZIP() []byte {
 
 var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 44)
 var file_user_proto_goTypes = []interface{}{
-	(*FindUserVipListDBReply)(nil),                     // 0: api.user.FindUserVipListDBReply
-	(*VipInfo)(nil),                                    // 1: api.user.VipInfo
-	(*SendMsgReduceCreditRequest)(nil),                 // 2: api.user.SendMsgReduceCreditRequest
-	(*UserGetInformationAwardByActivityRequest)(nil),   // 3: api.user.UserGetInformationAwardByActivityRequest
-	(*UserGetInformationAwardByActivityReply)(nil),     // 4: api.user.UserGetInformationAwardByActivityReply
-	(*AddUserCreditRequest)(nil),                       // 5: api.user.AddUserCreditRequest
-	(*ReportUserBlackRequest)(nil),                     // 6: api.user.ReportUserBlackRequest
-	(*SendMessageRequest)(nil),                         // 7: api.user.SendMessageRequest
-	(*ManagerFindIsCheckQualityUserListRequest)(nil),   // 8: api.user.ManagerFindIsCheckQualityUserListRequest
-	(*ManagerUpdateUserCreditRequest)(nil),             // 9: api.user.ManagerUpdateUserCreditRequest
-	(*ManagerMarkHighQualityUserRequest)(nil),          // 10: api.user.ManagerMarkHighQualityUserRequest
-	(*GetRecommendUserDBRequest)(nil),                  // 11: api.user.GetRecommendUserDBRequest
-	(*FindRecommendHighQualityUserRequest)(nil),        // 12: api.user.FindRecommendHighQualityUserRequest
-	(*FindRecommendHighQualityUserReply)(nil),          // 13: api.user.FindRecommendHighQualityUserReply
-	(*UpdateUserMatchedNumAndReturnUserMsgReply)(nil),  // 14: api.user.UpdateUserMatchedNumAndReturnUserMsgReply
-	(*GetUserDBMsgFromWebsocketReply)(nil),             // 15: api.user.GetUserDBMsgFromWebsocketReply
-	(*UpdateUserMatchedNumRequest)(nil),                // 16: api.user.UpdateUserMatchedNumRequest
-	(*SendNewMessageUnreadReminderRequest)(nil),        // 17: api.user.SendNewMessageUnreadReminderRequest
-	(*SendMsgReduceCreditReply)(nil),                   // 18: api.user.SendMsgReduceCreditReply
-	(*UserFreeNum)(nil),                                // 19: api.user.UserFreeNum
-	(*ReplyScripRequest)(nil),                          // 20: api.user.ReplyScripRequest
-	(*PersonLookScripRequest)(nil),                     // 21: api.user.PersonLookScripRequest
-	(*UserFindScripRequest)(nil),                       // 22: api.user.UserFindScripRequest
-	(*DeleteScripRequest)(nil),                         // 23: api.user.DeleteScripRequest
-	(*CreateScripRequest)(nil),                         // 24: api.user.CreateScripRequest
-	(*FindMatchingAvatarAndNumReply)(nil),              // 25: api.user.FindMatchingAvatarAndNumReply
-	(*UserRechargeRequest)(nil),                        // 26: api.user.UserRechargeRequest
-	(*RechargeList)(nil),                               // 27: api.user.RechargeList
-	(*VipRechargeList)(nil),                            // 28: api.user.VipRechargeList
-	(*VipRechargeInfo)(nil),                            // 29: api.user.VipRechargeInfo
-	(*RechargeInfo)(nil),                               // 30: api.user.RechargeInfo
-	(*InformationStatus)(nil),                          // 31: api.user.InformationStatus
-	(*UserBalance)(nil),                                // 32: api.user.UserBalance
-	(*UserFindChatListReply)(nil),                      // 33: api.user.UserFindChatListReply
-	(*UserChatInfo)(nil),                               // 34: api.user.UserChatInfo
-	(*UserInfo)(nil),                                   // 35: api.user.UserInfo
-	(*KeyRequest)(nil),                                 // 36: api.user.KeyRequest
-	(*CreatePayRequest)(nil),                           // 37: api.user.CreatePayRequest
-	(*PayInfo)(nil),                                    // 38: api.user.PayInfo
-	(*PayOrderInfo)(nil),                               // 39: api.user.PayOrderInfo
-	(*PayOrderList)(nil),                               // 40: api.user.PayOrderList
-	(*FindPayOrderListRequest)(nil),                    // 41: api.user.FindPayOrderListRequest
-	(*PayCallbackReply)(nil),                           // 42: api.user.PayCallbackReply
-	nil,                                                // 43: api.user.FindUserVipListDBReply.VipMapEntry
-	(*common.Message)(nil),                             // 44: api.common.Message
-	(*structpb.Value)(nil),                             // 45: google.protobuf.Value
-	(*emptypb.Empty)(nil),                              // 46: google.protobuf.Empty
-	(*common.SendPhoneCodeRequest)(nil),                // 47: api.common.SendPhoneCodeRequest
-	(*common.CheckPhoneCodeRequest)(nil),               // 48: api.common.CheckPhoneCodeRequest
-	(*common.UpdateInformationRequest)(nil),            // 49: api.common.UpdateInformationRequest
-	(*common.CreateChatRoomParam)(nil),                 // 50: api.common.CreateChatRoomParam
-	(*common.PersonParam)(nil),                         // 51: api.common.PersonParam
-	(*common.ListPageRequest)(nil),                     // 52: api.common.ListPageRequest
-	(*common.WxConfReq)(nil),                           // 53: api.common.WxConfReq
-	(*common.SexReq)(nil),                              // 54: api.common.SexReq
-	(*common.ListPage2Request)(nil),                    // 55: api.common.ListPage2Request
-	(*common.FindChatRecordListRequest)(nil),           // 56: api.common.FindChatRecordListRequest
-	(*common.FindChatRoomMsgRequest)(nil),              // 57: api.common.FindChatRoomMsgRequest
-	(*common.MemeRequest)(nil),                         // 58: api.common.MemeRequest
-	(*common.FindChatTopicRequest)(nil),                // 59: api.common.FindChatTopicRequest
-	(*common.RandomNum)(nil),                           // 60: api.common.RandomNum
-	(*common.RandomNumAndSex)(nil),                     // 61: api.common.RandomNumAndSex
-	(*common.ReportChatRequest)(nil),                   // 62: api.common.ReportChatRequest
-	(*common.UpdateLastScripIDRequest)(nil),            // 63: api.common.UpdateLastScripIDRequest
-	(*common.FindScripRequest)(nil),                    // 64: api.common.FindScripRequest
-	(*common.RoomIDRequest)(nil),                       // 65: api.common.RoomIDRequest
-	(*common.PartnerIDParam)(nil),                      // 66: api.common.PartnerIDParam
-	(*common.ManagerFindPersonListRequest)(nil),        // 67: api.common.ManagerFindPersonListRequest
-	(*common.PersonIDParam)(nil),                       // 68: api.common.PersonIDParam
-	(*common.PersonIDList)(nil),                        // 69: api.common.PersonIDList
-	(*common.ManagerUpdatePersonVoiceRequest)(nil),     // 70: api.common.ManagerUpdatePersonVoiceRequest
-	(*common.ManagerUpdatePersonPicturesRequest)(nil),  // 71: api.common.ManagerUpdatePersonPicturesRequest
-	(*common.ManagerUpdatePersonSignatureRequest)(nil), // 72: api.common.ManagerUpdatePersonSignatureRequest
-	(*common.ManagerUpdatePersonAvatarRequest)(nil),    // 73: api.common.ManagerUpdatePersonAvatarRequest
-	(*common.ManagerUpdatePersonNameRequest)(nil),      // 74: api.common.ManagerUpdatePersonNameRequest
-	(*common.ManagerUpdatePersonWeightRequest)(nil),    // 75: api.common.ManagerUpdatePersonWeightRequest
-	(*common.ManagerUpdatePersonIsBlackRequest)(nil),   // 76: api.common.ManagerUpdatePersonIsBlackRequest
-	(*common.UpdateLastScripIDDBRequest)(nil),          // 77: api.common.UpdateLastScripIDDBRequest
-	(*common.FindRecommendRequest)(nil),                // 78: api.common.FindRecommendRequest
-	(*common.IDParam)(nil),                             // 79: api.common.IDParam
-	(*chat.RoomReply)(nil),                             // 80: api.chat.RoomReply
-	(*common.HomeInfo)(nil),                            // 81: api.common.HomeInfo
-	(*common.LookedAndLikedNum)(nil),                   // 82: api.common.LookedAndLikedNum
-	(*statistics.LookAndLikeListReply)(nil),            // 83: api.statistics.LookAndLikeListReply
-	(*common.WxConfResponse)(nil),                      // 84: api.common.WxConfResponse
-	(*common.TagListReply)(nil),                        // 85: api.common.TagListReply
-	(*common.RecommendPersonListReply)(nil),            // 86: api.common.RecommendPersonListReply
-	(*common.ChatRecordListReply)(nil),                 // 87: api.common.ChatRecordListReply
-	(*common.ChatRoomMsg)(nil),                         // 88: api.common.ChatRoomMsg
-	(*common.IsLike)(nil),                              // 89: api.common.IsLike
-	(*common.MemeList)(nil),                            // 90: api.common.MemeList
-	(*common.ChatTopicList)(nil),                       // 91: api.common.ChatTopicList
-	(*common.CommonTextList)(nil),                      // 92: api.common.CommonTextList
-	(*common.MemeTitleList)(nil),                       // 93: api.common.MemeTitleList
-	(*common.ChatCardInfo)(nil),                        // 94: api.common.ChatCardInfo
-	(*common.FindOverSevenDayAvatarReply)(nil),         // 95: api.common.FindOverSevenDayAvatarReply
-	(*common.ScripID)(nil),                             // 96: api.common.ScripID
-	(*common.ScripReply)(nil),                          // 97: api.common.ScripReply
-	(*common.ScripInfo)(nil),                           // 98: api.common.ScripInfo
-	(*common.ChatRecordInfo)(nil),                      // 99: api.common.ChatRecordInfo
-	(*chat.UnreadNumReply)(nil),                        // 100: api.chat.UnreadNumReply
-	(*chat.UserRoomInfo)(nil),                          // 101: api.chat.UserRoomInfo
-	(*chat.CheckUserPartnerIsRelationshipReply)(nil),   // 102: api.chat.CheckUserPartnerIsRelationshipReply
-	(*common.AddFriendMessageInfo)(nil),                // 103: api.common.AddFriendMessageInfo
-	(*statistics.LookAndLikeMessageReply)(nil),         // 104: api.statistics.LookAndLikeMessageReply
-	(*statistics.LookMessageReply)(nil),                // 105: api.statistics.LookMessageReply
-	(*chat.WindowInfo)(nil),                            // 106: api.chat.WindowInfo
-	(*chat.GetRandomMatchingReply)(nil),                // 107: api.chat.GetRandomMatchingReply
-	(*common.SendMessageReply)(nil),                    // 108: api.common.SendMessageReply
-	(*common.ManagerFindPersonListReply)(nil),          // 109: api.common.ManagerFindPersonListReply
-	(*common.ManagerFindPersonListReply2)(nil),         // 110: api.common.ManagerFindPersonListReply2
-	(*common.PersonMsg)(nil),                           // 111: api.common.PersonMsg
-	(*common.PersonDBReply)(nil),                       // 112: api.common.PersonDBReply
-	(*common.PersonDB)(nil),                            // 113: api.common.PersonDB
+	(*FindUserVipListDBReply)(nil),                       // 0: api.user.FindUserVipListDBReply
+	(*VipInfo)(nil),                                      // 1: api.user.VipInfo
+	(*SendMsgReduceCreditRequest)(nil),                   // 2: api.user.SendMsgReduceCreditRequest
+	(*UserGetInformationAwardByActivityRequest)(nil),     // 3: api.user.UserGetInformationAwardByActivityRequest
+	(*UserGetInformationAwardByActivityReply)(nil),       // 4: api.user.UserGetInformationAwardByActivityReply
+	(*AddUserCreditRequest)(nil),                         // 5: api.user.AddUserCreditRequest
+	(*ReportUserBlackRequest)(nil),                       // 6: api.user.ReportUserBlackRequest
+	(*SendMessageRequest)(nil),                           // 7: api.user.SendMessageRequest
+	(*ManagerFindIsCheckQualityUserListRequest)(nil),     // 8: api.user.ManagerFindIsCheckQualityUserListRequest
+	(*ManagerUpdateUserCreditRequest)(nil),               // 9: api.user.ManagerUpdateUserCreditRequest
+	(*ManagerMarkHighQualityUserRequest)(nil),            // 10: api.user.ManagerMarkHighQualityUserRequest
+	(*GetRecommendUserDBRequest)(nil),                    // 11: api.user.GetRecommendUserDBRequest
+	(*FindRecommendHighQualityUserRequest)(nil),          // 12: api.user.FindRecommendHighQualityUserRequest
+	(*FindRecommendHighQualityUserReply)(nil),            // 13: api.user.FindRecommendHighQualityUserReply
+	(*UpdateUserMatchedNumAndReturnUserMsgReply)(nil),    // 14: api.user.UpdateUserMatchedNumAndReturnUserMsgReply
+	(*GetUserDBMsgFromWebsocketReply)(nil),               // 15: api.user.GetUserDBMsgFromWebsocketReply
+	(*UpdateUserMatchedNumRequest)(nil),                  // 16: api.user.UpdateUserMatchedNumRequest
+	(*SendNewMessageUnreadReminderRequest)(nil),          // 17: api.user.SendNewMessageUnreadReminderRequest
+	(*SendMsgReduceCreditReply)(nil),                     // 18: api.user.SendMsgReduceCreditReply
+	(*UserFreeNum)(nil),                                  // 19: api.user.UserFreeNum
+	(*ReplyScripRequest)(nil),                            // 20: api.user.ReplyScripRequest
+	(*PersonLookScripRequest)(nil),                       // 21: api.user.PersonLookScripRequest
+	(*UserFindScripRequest)(nil),                         // 22: api.user.UserFindScripRequest
+	(*DeleteScripRequest)(nil),                           // 23: api.user.DeleteScripRequest
+	(*CreateScripRequest)(nil),                           // 24: api.user.CreateScripRequest
+	(*FindMatchingAvatarAndNumReply)(nil),                // 25: api.user.FindMatchingAvatarAndNumReply
+	(*UserRechargeRequest)(nil),                          // 26: api.user.UserRechargeRequest
+	(*RechargeList)(nil),                                 // 27: api.user.RechargeList
+	(*VipRechargeList)(nil),                              // 28: api.user.VipRechargeList
+	(*VipRechargeInfo)(nil),                              // 29: api.user.VipRechargeInfo
+	(*RechargeInfo)(nil),                                 // 30: api.user.RechargeInfo
+	(*InformationStatus)(nil),                            // 31: api.user.InformationStatus
+	(*UserBalance)(nil),                                  // 32: api.user.UserBalance
+	(*UserFindChatListReply)(nil),                        // 33: api.user.UserFindChatListReply
+	(*UserChatInfo)(nil),                                 // 34: api.user.UserChatInfo
+	(*UserInfo)(nil),                                     // 35: api.user.UserInfo
+	(*KeyRequest)(nil),                                   // 36: api.user.KeyRequest
+	(*CreatePayRequest)(nil),                             // 37: api.user.CreatePayRequest
+	(*PayInfo)(nil),                                      // 38: api.user.PayInfo
+	(*PayOrderInfo)(nil),                                 // 39: api.user.PayOrderInfo
+	(*PayOrderList)(nil),                                 // 40: api.user.PayOrderList
+	(*FindPayOrderListRequest)(nil),                      // 41: api.user.FindPayOrderListRequest
+	(*PayCallbackReply)(nil),                             // 42: api.user.PayCallbackReply
+	nil,                                                  // 43: api.user.FindUserVipListDBReply.VipMapEntry
+	(*common.Message)(nil),                               // 44: api.common.Message
+	(*structpb.Value)(nil),                               // 45: google.protobuf.Value
+	(*emptypb.Empty)(nil),                                // 46: google.protobuf.Empty
+	(*common.SendPhoneCodeRequest)(nil),                  // 47: api.common.SendPhoneCodeRequest
+	(*common.CheckPhoneCodeRequest)(nil),                 // 48: api.common.CheckPhoneCodeRequest
+	(*common.UpdateInformationRequest)(nil),              // 49: api.common.UpdateInformationRequest
+	(*common.CreateChatRoomParam)(nil),                   // 50: api.common.CreateChatRoomParam
+	(*common.PersonParam)(nil),                           // 51: api.common.PersonParam
+	(*common.ListPageRequest)(nil),                       // 52: api.common.ListPageRequest
+	(*common.WxConfReq)(nil),                             // 53: api.common.WxConfReq
+	(*common.SexReq)(nil),                                // 54: api.common.SexReq
+	(*common.ListPage2Request)(nil),                      // 55: api.common.ListPage2Request
+	(*common.FindChatRecordListRequest)(nil),             // 56: api.common.FindChatRecordListRequest
+	(*common.FindChatRoomMsgRequest)(nil),                // 57: api.common.FindChatRoomMsgRequest
+	(*common.MemeRequest)(nil),                           // 58: api.common.MemeRequest
+	(*common.FindChatTopicRequest)(nil),                  // 59: api.common.FindChatTopicRequest
+	(*common.RandomNum)(nil),                             // 60: api.common.RandomNum
+	(*common.RandomNumAndSex)(nil),                       // 61: api.common.RandomNumAndSex
+	(*common.ReportChatRequest)(nil),                     // 62: api.common.ReportChatRequest
+	(*common.UpdateLastScripIDRequest)(nil),              // 63: api.common.UpdateLastScripIDRequest
+	(*common.FindScripRequest)(nil),                      // 64: api.common.FindScripRequest
+	(*common.RoomIDRequest)(nil),                         // 65: api.common.RoomIDRequest
+	(*common.PartnerIDParam)(nil),                        // 66: api.common.PartnerIDParam
+	(*common.ManagerFindPersonListRequest)(nil),          // 67: api.common.ManagerFindPersonListRequest
+	(*common.ManagerFindCanHandpickUserListRequest)(nil), // 68: api.common.ManagerFindCanHandpickUserListRequest
+	(*common.PersonIDParam)(nil),                         // 69: api.common.PersonIDParam
+	(*common.PersonIDList)(nil),                          // 70: api.common.PersonIDList
+	(*common.ManagerUpdatePersonVoiceRequest)(nil),       // 71: api.common.ManagerUpdatePersonVoiceRequest
+	(*common.ManagerUpdatePersonPicturesRequest)(nil),    // 72: api.common.ManagerUpdatePersonPicturesRequest
+	(*common.ManagerUpdatePersonSignatureRequest)(nil),   // 73: api.common.ManagerUpdatePersonSignatureRequest
+	(*common.ManagerUpdatePersonAvatarRequest)(nil),      // 74: api.common.ManagerUpdatePersonAvatarRequest
+	(*common.ManagerUpdatePersonNameRequest)(nil),        // 75: api.common.ManagerUpdatePersonNameRequest
+	(*common.ManagerUpdatePersonWeightRequest)(nil),      // 76: api.common.ManagerUpdatePersonWeightRequest
+	(*common.ManagerUpdatePersonIsBlackRequest)(nil),     // 77: api.common.ManagerUpdatePersonIsBlackRequest
+	(*common.UpdateLastScripIDDBRequest)(nil),            // 78: api.common.UpdateLastScripIDDBRequest
+	(*common.FindRecommendRequest)(nil),                  // 79: api.common.FindRecommendRequest
+	(*common.IDParam)(nil),                               // 80: api.common.IDParam
+	(*chat.RoomReply)(nil),                               // 81: api.chat.RoomReply
+	(*common.HomeInfo)(nil),                              // 82: api.common.HomeInfo
+	(*common.LookedAndLikedNum)(nil),                     // 83: api.common.LookedAndLikedNum
+	(*statistics.LookAndLikeListReply)(nil),              // 84: api.statistics.LookAndLikeListReply
+	(*common.WxConfResponse)(nil),                        // 85: api.common.WxConfResponse
+	(*common.TagListReply)(nil),                          // 86: api.common.TagListReply
+	(*common.RecommendPersonListReply)(nil),              // 87: api.common.RecommendPersonListReply
+	(*common.ChatRecordListReply)(nil),                   // 88: api.common.ChatRecordListReply
+	(*common.ChatRoomMsg)(nil),                           // 89: api.common.ChatRoomMsg
+	(*common.IsLike)(nil),                                // 90: api.common.IsLike
+	(*common.MemeList)(nil),                              // 91: api.common.MemeList
+	(*common.ChatTopicList)(nil),                         // 92: api.common.ChatTopicList
+	(*common.CommonTextList)(nil),                        // 93: api.common.CommonTextList
+	(*common.MemeTitleList)(nil),                         // 94: api.common.MemeTitleList
+	(*common.ChatCardInfo)(nil),                          // 95: api.common.ChatCardInfo
+	(*common.FindOverSevenDayAvatarReply)(nil),           // 96: api.common.FindOverSevenDayAvatarReply
+	(*common.ScripID)(nil),                               // 97: api.common.ScripID
+	(*common.ScripReply)(nil),                            // 98: api.common.ScripReply
+	(*common.ScripInfo)(nil),                             // 99: api.common.ScripInfo
+	(*common.ChatRecordInfo)(nil),                        // 100: api.common.ChatRecordInfo
+	(*chat.UnreadNumReply)(nil),                          // 101: api.chat.UnreadNumReply
+	(*chat.UserRoomInfo)(nil),                            // 102: api.chat.UserRoomInfo
+	(*chat.CheckUserPartnerIsRelationshipReply)(nil),     // 103: api.chat.CheckUserPartnerIsRelationshipReply
+	(*common.AddFriendMessageInfo)(nil),                  // 104: api.common.AddFriendMessageInfo
+	(*statistics.LookAndLikeMessageReply)(nil),           // 105: api.statistics.LookAndLikeMessageReply
+	(*statistics.LookMessageReply)(nil),                  // 106: api.statistics.LookMessageReply
+	(*chat.WindowInfo)(nil),                              // 107: api.chat.WindowInfo
+	(*chat.GetRandomMatchingReply)(nil),                  // 108: api.chat.GetRandomMatchingReply
+	(*common.SendMessageReply)(nil),                      // 109: api.common.SendMessageReply
+	(*common.ManagerFindPersonListReply)(nil),            // 110: api.common.ManagerFindPersonListReply
+	(*common.ManagerFindPersonListReply2)(nil),           // 111: api.common.ManagerFindPersonListReply2
+	(*common.ManagerFindCanHandpickUserListReply)(nil),   // 112: api.common.ManagerFindCanHandpickUserListReply
+	(*common.PersonMsg)(nil),                             // 113: api.common.PersonMsg
+	(*common.PersonDBReply)(nil),                         // 114: api.common.PersonDBReply
+	(*common.PersonDB)(nil),                              // 115: api.common.PersonDB
 }
 var file_user_proto_depIdxs = []int32{
 	43,  // 0: api.user.FindUserVipListDBReply.vipMap:type_name -> api.user.FindUserVipListDBReply.VipMapEntry
@@ -4221,148 +4234,150 @@ var file_user_proto_depIdxs = []int32{
 	67,  // 78: api.user.User.ManagerFindInformationUserList:input_type -> api.common.ManagerFindPersonListRequest
 	8,   // 79: api.user.User.ManagerFindIsCheckQualityUserList:input_type -> api.user.ManagerFindIsCheckQualityUserListRequest
 	67,  // 80: api.user.User.ManagerFindHighQualityUserList:input_type -> api.common.ManagerFindPersonListRequest
-	10,  // 81: api.user.User.ManagerMarkHighQualityUser:input_type -> api.user.ManagerMarkHighQualityUserRequest
-	68,  // 82: api.user.User.ManagerMarkHighQualityUserOne:input_type -> api.common.PersonIDParam
-	69,  // 83: api.user.User.ManagerSetUserBlack:input_type -> api.common.PersonIDList
-	68,  // 84: api.user.User.ManagerDeleteHighQualityUser:input_type -> api.common.PersonIDParam
-	70,  // 85: api.user.User.ManagerUpdateUserVoice:input_type -> api.common.ManagerUpdatePersonVoiceRequest
-	71,  // 86: api.user.User.ManagerUpdateUserPictures:input_type -> api.common.ManagerUpdatePersonPicturesRequest
-	72,  // 87: api.user.User.ManagerUpdateUserSignature:input_type -> api.common.ManagerUpdatePersonSignatureRequest
-	73,  // 88: api.user.User.ManagerUpdateUserAvatar:input_type -> api.common.ManagerUpdatePersonAvatarRequest
-	74,  // 89: api.user.User.ManagerUpdateUserName:input_type -> api.common.ManagerUpdatePersonNameRequest
-	75,  // 90: api.user.User.ManagerUpdateUserWeight:input_type -> api.common.ManagerUpdatePersonWeightRequest
-	76,  // 91: api.user.User.ManagerUpdateUserIsBlack:input_type -> api.common.ManagerUpdatePersonIsBlackRequest
-	9,   // 92: api.user.User.ManagerUpdateUserCredit:input_type -> api.user.ManagerUpdateUserCreditRequest
-	68,  // 93: api.user.User.GetUserDBMsg:input_type -> api.common.PersonIDParam
-	69,  // 94: api.user.User.FindUserDBList:input_type -> api.common.PersonIDList
-	77,  // 95: api.user.User.UpdateLastScripIDDB:input_type -> api.common.UpdateLastScripIDDBRequest
-	78,  // 96: api.user.User.FindRecommendUserDBList:input_type -> api.common.FindRecommendRequest
-	68,  // 97: api.user.User.UpdateUserLastLoginTime:input_type -> api.common.PersonIDParam
-	79,  // 98: api.user.User.GetUserDBMsgByAccountID:input_type -> api.common.IDParam
-	12,  // 99: api.user.User.FindRecommendHighQualityUserDBList:input_type -> api.user.FindRecommendHighQualityUserRequest
-	68,  // 100: api.user.User.GetUserDBMsgFromWebsocket:input_type -> api.common.PersonIDParam
-	2,   // 101: api.user.User.SendMsgReduceCredit:input_type -> api.user.SendMsgReduceCreditRequest
-	51,  // 102: api.user.User.LookBackScripReduceCredit:input_type -> api.common.PersonParam
-	51,  // 103: api.user.User.CreateScripReduceCredit:input_type -> api.common.PersonParam
-	51,  // 104: api.user.User.ReplyScripReduceCredit:input_type -> api.common.PersonParam
-	51,  // 105: api.user.User.MatchingCredit:input_type -> api.common.PersonParam
-	17,  // 106: api.user.User.SendNewMessageUnreadReminder:input_type -> api.user.SendNewMessageUnreadReminderRequest
-	68,  // 107: api.user.User.SendNewVisitorTemplateReminder:input_type -> api.common.PersonIDParam
-	16,  // 108: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:input_type -> api.user.UpdateUserMatchedNumRequest
-	11,  // 109: api.user.User.GetRecommendUserDB:input_type -> api.user.GetRecommendUserDBRequest
-	6,   // 110: api.user.User.ReportUserBlack:input_type -> api.user.ReportUserBlackRequest
-	5,   // 111: api.user.User.AddUserCredit:input_type -> api.user.AddUserCreditRequest
-	68,  // 112: api.user.User.UserInformationStatusDB:input_type -> api.common.PersonIDParam
-	3,   // 113: api.user.User.UserGetInformationAwardByActivity:input_type -> api.user.UserGetInformationAwardByActivityRequest
-	69,  // 114: api.user.User.FindUserVipDBList:input_type -> api.common.PersonIDList
-	35,  // 115: api.user.User.GetUserInfo:output_type -> api.user.UserInfo
-	46,  // 116: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty
-	46,  // 117: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty
-	46,  // 118: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty
-	80,  // 119: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply
-	32,  // 120: api.user.User.GetUserBalance:output_type -> api.user.UserBalance
-	81,  // 121: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo
-	82,  // 122: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum
-	83,  // 123: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply
-	84,  // 124: api.user.User.WxConf:output_type -> api.common.WxConfResponse
-	85,  // 125: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply
-	86,  // 126: api.user.User.FindOnlineList:output_type -> api.common.RecommendPersonListReply
-	33,  // 127: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply
-	33,  // 128: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply
-	33,  // 129: api.user.User.FindCloseFriendRoomList:output_type -> api.user.UserFindChatListReply
-	87,  // 130: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply
-	88,  // 131: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
-	89,  // 132: api.user.User.GetUserIsLike:output_type -> api.common.IsLike
-	90,  // 133: api.user.User.FindMemeByType:output_type -> api.common.MemeList
-	91,  // 134: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList
-	92,  // 135: api.user.User.RandomMeme:output_type -> api.common.CommonTextList
-	92,  // 136: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList
-	93,  // 137: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList
-	94,  // 138: api.user.User.UserGetChatCard:output_type -> api.common.ChatCardInfo
-	93,  // 139: api.user.User.FindChatTopicTitle:output_type -> api.common.MemeTitleList
-	46,  // 140: api.user.User.UserLike:output_type -> google.protobuf.Empty
-	46,  // 141: api.user.User.UserUnLike:output_type -> google.protobuf.Empty
-	46,  // 142: api.user.User.Report:output_type -> google.protobuf.Empty
-	95,  // 143: api.user.User.FindOverSevenDayAvatar:output_type -> api.common.FindOverSevenDayAvatarReply
-	46,  // 144: api.user.User.UpdateLastScripID:output_type -> google.protobuf.Empty
-	96,  // 145: api.user.User.CreateScrip:output_type -> api.common.ScripID
-	46,  // 146: api.user.User.DeleteScrip:output_type -> google.protobuf.Empty
-	97,  // 147: api.user.User.FindMyScrip:output_type -> api.common.ScripReply
-	97,  // 148: api.user.User.FindOtherScrip:output_type -> api.common.ScripReply
-	97,  // 149: api.user.User.FindRecommendScrip:output_type -> api.common.ScripReply
-	46,  // 150: api.user.User.PersonLookScrip:output_type -> google.protobuf.Empty
-	98,  // 151: api.user.User.PersonClickLookBack:output_type -> api.common.ScripInfo
-	99,  // 152: api.user.User.PersonReplyScrip:output_type -> api.common.ChatRecordInfo
-	46,  // 153: api.user.User.UserDeleteChat:output_type -> google.protobuf.Empty
-	100, // 154: api.user.User.GetUserAllUnreadNum:output_type -> api.chat.UnreadNumReply
-	101, // 155: api.user.User.GetUserRoomByPerson:output_type -> api.chat.UserRoomInfo
-	83,  // 156: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply
-	83,  // 157: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply
-	46,  // 158: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty
-	102, // 159: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
-	103, // 160: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo
-	104, // 161: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply
-	105, // 162: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply
-	46,  // 163: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty
-	31,  // 164: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus
-	46,  // 165: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty
-	46,  // 166: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty
-	38,  // 167: api.user.User.UserRecharge:output_type -> api.user.PayInfo
-	38,  // 168: api.user.User.UserRechargeVip:output_type -> api.user.PayInfo
-	27,  // 169: api.user.User.FindRechargeList:output_type -> api.user.RechargeList
-	28,  // 170: api.user.User.FindVipRechargeList:output_type -> api.user.VipRechargeList
-	40,  // 171: api.user.User.FindPayList:output_type -> api.user.PayOrderList
-	86,  // 172: api.user.User.FindRecommendPersonList:output_type -> api.common.RecommendPersonListReply
-	25,  // 173: api.user.User.FindMatchingAvatarAndNum:output_type -> api.user.FindMatchingAvatarAndNumReply
-	106, // 174: api.user.User.GetWindowInfo:output_type -> api.chat.WindowInfo
-	19,  // 175: api.user.User.GetUserFreeNum:output_type -> api.user.UserFreeNum
-	107, // 176: api.user.User.GetRandomMatching:output_type -> api.chat.GetRandomMatchingReply
-	46,  // 177: api.user.User.UnlockVoice:output_type -> google.protobuf.Empty
-	46,  // 178: api.user.User.UnlockPicture:output_type -> google.protobuf.Empty
-	46,  // 179: api.user.User.UpdateUserIsRegister:output_type -> google.protobuf.Empty
-	80,  // 180: api.user.User.CreateUserPartnerRoom:output_type -> api.chat.RoomReply
-	108, // 181: api.user.User.SendMessage:output_type -> api.common.SendMessageReply
-	1,   // 182: api.user.User.GetVipInfo:output_type -> api.user.VipInfo
-	109, // 183: api.user.User.ManagerFindUserList:output_type -> api.common.ManagerFindPersonListReply
-	109, // 184: api.user.User.ManagerFindInformationUserList:output_type -> api.common.ManagerFindPersonListReply
-	110, // 185: api.user.User.ManagerFindIsCheckQualityUserList:output_type -> api.common.ManagerFindPersonListReply2
-	109, // 186: api.user.User.ManagerFindHighQualityUserList:output_type -> api.common.ManagerFindPersonListReply
-	46,  // 187: api.user.User.ManagerMarkHighQualityUser:output_type -> google.protobuf.Empty
-	46,  // 188: api.user.User.ManagerMarkHighQualityUserOne:output_type -> google.protobuf.Empty
-	46,  // 189: api.user.User.ManagerSetUserBlack:output_type -> google.protobuf.Empty
-	46,  // 190: api.user.User.ManagerDeleteHighQualityUser:output_type -> google.protobuf.Empty
-	46,  // 191: api.user.User.ManagerUpdateUserVoice:output_type -> google.protobuf.Empty
-	46,  // 192: api.user.User.ManagerUpdateUserPictures:output_type -> google.protobuf.Empty
-	46,  // 193: api.user.User.ManagerUpdateUserSignature:output_type -> google.protobuf.Empty
-	46,  // 194: api.user.User.ManagerUpdateUserAvatar:output_type -> google.protobuf.Empty
-	46,  // 195: api.user.User.ManagerUpdateUserName:output_type -> google.protobuf.Empty
-	46,  // 196: api.user.User.ManagerUpdateUserWeight:output_type -> google.protobuf.Empty
-	46,  // 197: api.user.User.ManagerUpdateUserIsBlack:output_type -> google.protobuf.Empty
-	46,  // 198: api.user.User.ManagerUpdateUserCredit:output_type -> google.protobuf.Empty
-	111, // 199: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg
-	112, // 200: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply
-	46,  // 201: api.user.User.UpdateLastScripIDDB:output_type -> google.protobuf.Empty
-	112, // 202: api.user.User.FindRecommendUserDBList:output_type -> api.common.PersonDBReply
-	46,  // 203: api.user.User.UpdateUserLastLoginTime:output_type -> google.protobuf.Empty
-	111, // 204: api.user.User.GetUserDBMsgByAccountID:output_type -> api.common.PersonMsg
-	13,  // 205: api.user.User.FindRecommendHighQualityUserDBList:output_type -> api.user.FindRecommendHighQualityUserReply
-	15,  // 206: api.user.User.GetUserDBMsgFromWebsocket:output_type -> api.user.GetUserDBMsgFromWebsocketReply
-	46,  // 207: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty
-	46,  // 208: api.user.User.LookBackScripReduceCredit:output_type -> google.protobuf.Empty
-	46,  // 209: api.user.User.CreateScripReduceCredit:output_type -> google.protobuf.Empty
-	46,  // 210: api.user.User.ReplyScripReduceCredit:output_type -> google.protobuf.Empty
-	46,  // 211: api.user.User.MatchingCredit:output_type -> google.protobuf.Empty
-	46,  // 212: api.user.User.SendNewMessageUnreadReminder:output_type -> google.protobuf.Empty
-	46,  // 213: api.user.User.SendNewVisitorTemplateReminder:output_type -> google.protobuf.Empty
-	14,  // 214: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:output_type -> api.user.UpdateUserMatchedNumAndReturnUserMsgReply
-	113, // 215: api.user.User.GetRecommendUserDB:output_type -> api.common.PersonDB
-	46,  // 216: api.user.User.ReportUserBlack:output_type -> google.protobuf.Empty
-	46,  // 217: api.user.User.AddUserCredit:output_type -> google.protobuf.Empty
-	31,  // 218: api.user.User.UserInformationStatusDB:output_type -> api.user.InformationStatus
-	4,   // 219: api.user.User.UserGetInformationAwardByActivity:output_type -> api.user.UserGetInformationAwardByActivityReply
-	0,   // 220: api.user.User.FindUserVipDBList:output_type -> api.user.FindUserVipListDBReply
-	115, // [115:221] is the sub-list for method output_type
-	9,   // [9:115] is the sub-list for method input_type
+	68,  // 81: api.user.User.ManagerFindCanHandpickUserList:input_type -> api.common.ManagerFindCanHandpickUserListRequest
+	10,  // 82: api.user.User.ManagerMarkHighQualityUser:input_type -> api.user.ManagerMarkHighQualityUserRequest
+	69,  // 83: api.user.User.ManagerMarkHighQualityUserOne:input_type -> api.common.PersonIDParam
+	70,  // 84: api.user.User.ManagerSetUserBlack:input_type -> api.common.PersonIDList
+	69,  // 85: api.user.User.ManagerDeleteHighQualityUser:input_type -> api.common.PersonIDParam
+	71,  // 86: api.user.User.ManagerUpdateUserVoice:input_type -> api.common.ManagerUpdatePersonVoiceRequest
+	72,  // 87: api.user.User.ManagerUpdateUserPictures:input_type -> api.common.ManagerUpdatePersonPicturesRequest
+	73,  // 88: api.user.User.ManagerUpdateUserSignature:input_type -> api.common.ManagerUpdatePersonSignatureRequest
+	74,  // 89: api.user.User.ManagerUpdateUserAvatar:input_type -> api.common.ManagerUpdatePersonAvatarRequest
+	75,  // 90: api.user.User.ManagerUpdateUserName:input_type -> api.common.ManagerUpdatePersonNameRequest
+	76,  // 91: api.user.User.ManagerUpdateUserWeight:input_type -> api.common.ManagerUpdatePersonWeightRequest
+	77,  // 92: api.user.User.ManagerUpdateUserIsBlack:input_type -> api.common.ManagerUpdatePersonIsBlackRequest
+	9,   // 93: api.user.User.ManagerUpdateUserCredit:input_type -> api.user.ManagerUpdateUserCreditRequest
+	69,  // 94: api.user.User.GetUserDBMsg:input_type -> api.common.PersonIDParam
+	70,  // 95: api.user.User.FindUserDBList:input_type -> api.common.PersonIDList
+	78,  // 96: api.user.User.UpdateLastScripIDDB:input_type -> api.common.UpdateLastScripIDDBRequest
+	79,  // 97: api.user.User.FindRecommendUserDBList:input_type -> api.common.FindRecommendRequest
+	69,  // 98: api.user.User.UpdateUserLastLoginTime:input_type -> api.common.PersonIDParam
+	80,  // 99: api.user.User.GetUserDBMsgByAccountID:input_type -> api.common.IDParam
+	12,  // 100: api.user.User.FindRecommendHighQualityUserDBList:input_type -> api.user.FindRecommendHighQualityUserRequest
+	69,  // 101: api.user.User.GetUserDBMsgFromWebsocket:input_type -> api.common.PersonIDParam
+	2,   // 102: api.user.User.SendMsgReduceCredit:input_type -> api.user.SendMsgReduceCreditRequest
+	51,  // 103: api.user.User.LookBackScripReduceCredit:input_type -> api.common.PersonParam
+	51,  // 104: api.user.User.CreateScripReduceCredit:input_type -> api.common.PersonParam
+	51,  // 105: api.user.User.ReplyScripReduceCredit:input_type -> api.common.PersonParam
+	51,  // 106: api.user.User.MatchingCredit:input_type -> api.common.PersonParam
+	17,  // 107: api.user.User.SendNewMessageUnreadReminder:input_type -> api.user.SendNewMessageUnreadReminderRequest
+	69,  // 108: api.user.User.SendNewVisitorTemplateReminder:input_type -> api.common.PersonIDParam
+	16,  // 109: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:input_type -> api.user.UpdateUserMatchedNumRequest
+	11,  // 110: api.user.User.GetRecommendUserDB:input_type -> api.user.GetRecommendUserDBRequest
+	6,   // 111: api.user.User.ReportUserBlack:input_type -> api.user.ReportUserBlackRequest
+	5,   // 112: api.user.User.AddUserCredit:input_type -> api.user.AddUserCreditRequest
+	69,  // 113: api.user.User.UserInformationStatusDB:input_type -> api.common.PersonIDParam
+	3,   // 114: api.user.User.UserGetInformationAwardByActivity:input_type -> api.user.UserGetInformationAwardByActivityRequest
+	70,  // 115: api.user.User.FindUserVipDBList:input_type -> api.common.PersonIDList
+	35,  // 116: api.user.User.GetUserInfo:output_type -> api.user.UserInfo
+	46,  // 117: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty
+	46,  // 118: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty
+	46,  // 119: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty
+	81,  // 120: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply
+	32,  // 121: api.user.User.GetUserBalance:output_type -> api.user.UserBalance
+	82,  // 122: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo
+	83,  // 123: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum
+	84,  // 124: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply
+	85,  // 125: api.user.User.WxConf:output_type -> api.common.WxConfResponse
+	86,  // 126: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply
+	87,  // 127: api.user.User.FindOnlineList:output_type -> api.common.RecommendPersonListReply
+	33,  // 128: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply
+	33,  // 129: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply
+	33,  // 130: api.user.User.FindCloseFriendRoomList:output_type -> api.user.UserFindChatListReply
+	88,  // 131: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply
+	89,  // 132: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
+	90,  // 133: api.user.User.GetUserIsLike:output_type -> api.common.IsLike
+	91,  // 134: api.user.User.FindMemeByType:output_type -> api.common.MemeList
+	92,  // 135: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList
+	93,  // 136: api.user.User.RandomMeme:output_type -> api.common.CommonTextList
+	93,  // 137: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList
+	94,  // 138: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList
+	95,  // 139: api.user.User.UserGetChatCard:output_type -> api.common.ChatCardInfo
+	94,  // 140: api.user.User.FindChatTopicTitle:output_type -> api.common.MemeTitleList
+	46,  // 141: api.user.User.UserLike:output_type -> google.protobuf.Empty
+	46,  // 142: api.user.User.UserUnLike:output_type -> google.protobuf.Empty
+	46,  // 143: api.user.User.Report:output_type -> google.protobuf.Empty
+	96,  // 144: api.user.User.FindOverSevenDayAvatar:output_type -> api.common.FindOverSevenDayAvatarReply
+	46,  // 145: api.user.User.UpdateLastScripID:output_type -> google.protobuf.Empty
+	97,  // 146: api.user.User.CreateScrip:output_type -> api.common.ScripID
+	46,  // 147: api.user.User.DeleteScrip:output_type -> google.protobuf.Empty
+	98,  // 148: api.user.User.FindMyScrip:output_type -> api.common.ScripReply
+	98,  // 149: api.user.User.FindOtherScrip:output_type -> api.common.ScripReply
+	98,  // 150: api.user.User.FindRecommendScrip:output_type -> api.common.ScripReply
+	46,  // 151: api.user.User.PersonLookScrip:output_type -> google.protobuf.Empty
+	99,  // 152: api.user.User.PersonClickLookBack:output_type -> api.common.ScripInfo
+	100, // 153: api.user.User.PersonReplyScrip:output_type -> api.common.ChatRecordInfo
+	46,  // 154: api.user.User.UserDeleteChat:output_type -> google.protobuf.Empty
+	101, // 155: api.user.User.GetUserAllUnreadNum:output_type -> api.chat.UnreadNumReply
+	102, // 156: api.user.User.GetUserRoomByPerson:output_type -> api.chat.UserRoomInfo
+	84,  // 157: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply
+	84,  // 158: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply
+	46,  // 159: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty
+	103, // 160: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
+	104, // 161: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo
+	105, // 162: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply
+	106, // 163: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply
+	46,  // 164: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty
+	31,  // 165: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus
+	46,  // 166: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty
+	46,  // 167: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty
+	38,  // 168: api.user.User.UserRecharge:output_type -> api.user.PayInfo
+	38,  // 169: api.user.User.UserRechargeVip:output_type -> api.user.PayInfo
+	27,  // 170: api.user.User.FindRechargeList:output_type -> api.user.RechargeList
+	28,  // 171: api.user.User.FindVipRechargeList:output_type -> api.user.VipRechargeList
+	40,  // 172: api.user.User.FindPayList:output_type -> api.user.PayOrderList
+	87,  // 173: api.user.User.FindRecommendPersonList:output_type -> api.common.RecommendPersonListReply
+	25,  // 174: api.user.User.FindMatchingAvatarAndNum:output_type -> api.user.FindMatchingAvatarAndNumReply
+	107, // 175: api.user.User.GetWindowInfo:output_type -> api.chat.WindowInfo
+	19,  // 176: api.user.User.GetUserFreeNum:output_type -> api.user.UserFreeNum
+	108, // 177: api.user.User.GetRandomMatching:output_type -> api.chat.GetRandomMatchingReply
+	46,  // 178: api.user.User.UnlockVoice:output_type -> google.protobuf.Empty
+	46,  // 179: api.user.User.UnlockPicture:output_type -> google.protobuf.Empty
+	46,  // 180: api.user.User.UpdateUserIsRegister:output_type -> google.protobuf.Empty
+	81,  // 181: api.user.User.CreateUserPartnerRoom:output_type -> api.chat.RoomReply
+	109, // 182: api.user.User.SendMessage:output_type -> api.common.SendMessageReply
+	1,   // 183: api.user.User.GetVipInfo:output_type -> api.user.VipInfo
+	110, // 184: api.user.User.ManagerFindUserList:output_type -> api.common.ManagerFindPersonListReply
+	110, // 185: api.user.User.ManagerFindInformationUserList:output_type -> api.common.ManagerFindPersonListReply
+	111, // 186: api.user.User.ManagerFindIsCheckQualityUserList:output_type -> api.common.ManagerFindPersonListReply2
+	110, // 187: api.user.User.ManagerFindHighQualityUserList:output_type -> api.common.ManagerFindPersonListReply
+	112, // 188: api.user.User.ManagerFindCanHandpickUserList:output_type -> api.common.ManagerFindCanHandpickUserListReply
+	46,  // 189: api.user.User.ManagerMarkHighQualityUser:output_type -> google.protobuf.Empty
+	46,  // 190: api.user.User.ManagerMarkHighQualityUserOne:output_type -> google.protobuf.Empty
+	46,  // 191: api.user.User.ManagerSetUserBlack:output_type -> google.protobuf.Empty
+	46,  // 192: api.user.User.ManagerDeleteHighQualityUser:output_type -> google.protobuf.Empty
+	46,  // 193: api.user.User.ManagerUpdateUserVoice:output_type -> google.protobuf.Empty
+	46,  // 194: api.user.User.ManagerUpdateUserPictures:output_type -> google.protobuf.Empty
+	46,  // 195: api.user.User.ManagerUpdateUserSignature:output_type -> google.protobuf.Empty
+	46,  // 196: api.user.User.ManagerUpdateUserAvatar:output_type -> google.protobuf.Empty
+	46,  // 197: api.user.User.ManagerUpdateUserName:output_type -> google.protobuf.Empty
+	46,  // 198: api.user.User.ManagerUpdateUserWeight:output_type -> google.protobuf.Empty
+	46,  // 199: api.user.User.ManagerUpdateUserIsBlack:output_type -> google.protobuf.Empty
+	46,  // 200: api.user.User.ManagerUpdateUserCredit:output_type -> google.protobuf.Empty
+	113, // 201: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg
+	114, // 202: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply
+	46,  // 203: api.user.User.UpdateLastScripIDDB:output_type -> google.protobuf.Empty
+	114, // 204: api.user.User.FindRecommendUserDBList:output_type -> api.common.PersonDBReply
+	46,  // 205: api.user.User.UpdateUserLastLoginTime:output_type -> google.protobuf.Empty
+	113, // 206: api.user.User.GetUserDBMsgByAccountID:output_type -> api.common.PersonMsg
+	13,  // 207: api.user.User.FindRecommendHighQualityUserDBList:output_type -> api.user.FindRecommendHighQualityUserReply
+	15,  // 208: api.user.User.GetUserDBMsgFromWebsocket:output_type -> api.user.GetUserDBMsgFromWebsocketReply
+	46,  // 209: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty
+	46,  // 210: api.user.User.LookBackScripReduceCredit:output_type -> google.protobuf.Empty
+	46,  // 211: api.user.User.CreateScripReduceCredit:output_type -> google.protobuf.Empty
+	46,  // 212: api.user.User.ReplyScripReduceCredit:output_type -> google.protobuf.Empty
+	46,  // 213: api.user.User.MatchingCredit:output_type -> google.protobuf.Empty
+	46,  // 214: api.user.User.SendNewMessageUnreadReminder:output_type -> google.protobuf.Empty
+	46,  // 215: api.user.User.SendNewVisitorTemplateReminder:output_type -> google.protobuf.Empty
+	14,  // 216: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:output_type -> api.user.UpdateUserMatchedNumAndReturnUserMsgReply
+	115, // 217: api.user.User.GetRecommendUserDB:output_type -> api.common.PersonDB
+	46,  // 218: api.user.User.ReportUserBlack:output_type -> google.protobuf.Empty
+	46,  // 219: api.user.User.AddUserCredit:output_type -> google.protobuf.Empty
+	31,  // 220: api.user.User.UserInformationStatusDB:output_type -> api.user.InformationStatus
+	4,   // 221: api.user.User.UserGetInformationAwardByActivity:output_type -> api.user.UserGetInformationAwardByActivityReply
+	0,   // 222: api.user.User.FindUserVipDBList:output_type -> api.user.FindUserVipListDBReply
+	116, // [116:223] is the sub-list for method output_type
+	9,   // [9:116] is the sub-list for method input_type
 	9,   // [9:9] is the sub-list for extension type_name
 	9,   // [9:9] is the sub-list for extension extendee
 	0,   // [0:9] is the sub-list for field type_name

+ 8 - 1
api/user/user.proto

@@ -526,6 +526,14 @@ service User {
       body:"*"
     };
   };
+  // 管理员查询精选用户
+  rpc ManagerFindCanHandpickUserList (common.ManagerFindCanHandpickUserListRequest) returns (common.ManagerFindCanHandpickUserListReply){
+    option (google.api.http) = {
+      post: "/api/manager/handpick/user/list",
+      body:"*"
+    };
+  };
+
   // 管理员标记优质用户
   rpc ManagerMarkHighQualityUser (ManagerMarkHighQualityUserRequest) returns (google.protobuf.Empty){
     option (google.api.http) = {
@@ -610,7 +618,6 @@ service User {
       body:"*"
     };
   };
-
   // ---rpc---
   // 1、获取用户详情
   rpc GetUserDBMsg (common.PersonIDParam) returns (common.PersonMsg);

+ 38 - 0
api/user/user_grpc.pb.go

@@ -169,6 +169,8 @@ type UserClient interface {
 	ManagerFindIsCheckQualityUserList(ctx context.Context, in *ManagerFindIsCheckQualityUserListRequest, opts ...grpc.CallOption) (*common.ManagerFindPersonListReply2, error)
 	// 管理员查询优质用户列表
 	ManagerFindHighQualityUserList(ctx context.Context, in *common.ManagerFindPersonListRequest, opts ...grpc.CallOption) (*common.ManagerFindPersonListReply, error)
+	// 管理员查询精选用户
+	ManagerFindCanHandpickUserList(ctx context.Context, in *common.ManagerFindCanHandpickUserListRequest, opts ...grpc.CallOption) (*common.ManagerFindCanHandpickUserListReply, error)
 	// 管理员标记优质用户
 	ManagerMarkHighQualityUser(ctx context.Context, in *ManagerMarkHighQualityUserRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	// 管理员标记单个优质用户
@@ -896,6 +898,15 @@ func (c *userClient) ManagerFindHighQualityUserList(ctx context.Context, in *com
 	return out, nil
 }
 
+func (c *userClient) ManagerFindCanHandpickUserList(ctx context.Context, in *common.ManagerFindCanHandpickUserListRequest, opts ...grpc.CallOption) (*common.ManagerFindCanHandpickUserListReply, error) {
+	out := new(common.ManagerFindCanHandpickUserListReply)
+	err := c.cc.Invoke(ctx, "/api.user.User/ManagerFindCanHandpickUserList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *userClient) ManagerMarkHighQualityUser(ctx context.Context, in *ManagerMarkHighQualityUserRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
 	err := c.cc.Invoke(ctx, "/api.user.User/ManagerMarkHighQualityUser", in, out, opts...)
@@ -1353,6 +1364,8 @@ type UserServer interface {
 	ManagerFindIsCheckQualityUserList(context.Context, *ManagerFindIsCheckQualityUserListRequest) (*common.ManagerFindPersonListReply2, error)
 	// 管理员查询优质用户列表
 	ManagerFindHighQualityUserList(context.Context, *common.ManagerFindPersonListRequest) (*common.ManagerFindPersonListReply, error)
+	// 管理员查询精选用户
+	ManagerFindCanHandpickUserList(context.Context, *common.ManagerFindCanHandpickUserListRequest) (*common.ManagerFindCanHandpickUserListReply, error)
 	// 管理员标记优质用户
 	ManagerMarkHighQualityUser(context.Context, *ManagerMarkHighQualityUserRequest) (*emptypb.Empty, error)
 	// 管理员标记单个优质用户
@@ -1645,6 +1658,9 @@ func (UnimplementedUserServer) ManagerFindIsCheckQualityUserList(context.Context
 func (UnimplementedUserServer) ManagerFindHighQualityUserList(context.Context, *common.ManagerFindPersonListRequest) (*common.ManagerFindPersonListReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ManagerFindHighQualityUserList not implemented")
 }
+func (UnimplementedUserServer) ManagerFindCanHandpickUserList(context.Context, *common.ManagerFindCanHandpickUserListRequest) (*common.ManagerFindCanHandpickUserListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ManagerFindCanHandpickUserList not implemented")
+}
 func (UnimplementedUserServer) ManagerMarkHighQualityUser(context.Context, *ManagerMarkHighQualityUserRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ManagerMarkHighQualityUser not implemented")
 }
@@ -3056,6 +3072,24 @@ func _User_ManagerFindHighQualityUserList_Handler(srv interface{}, ctx context.C
 	return interceptor(ctx, in, info, handler)
 }
 
+func _User_ManagerFindCanHandpickUserList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.ManagerFindCanHandpickUserListRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(UserServer).ManagerFindCanHandpickUserList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.user.User/ManagerFindCanHandpickUserList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(UserServer).ManagerFindCanHandpickUserList(ctx, req.(*common.ManagerFindCanHandpickUserListRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _User_ManagerMarkHighQualityUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ManagerMarkHighQualityUserRequest)
 	if err := dec(in); err != nil {
@@ -3963,6 +3997,10 @@ var User_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "ManagerFindHighQualityUserList",
 			Handler:    _User_ManagerFindHighQualityUserList_Handler,
 		},
+		{
+			MethodName: "ManagerFindCanHandpickUserList",
+			Handler:    _User_ManagerFindCanHandpickUserList_Handler,
+		},
 		{
 			MethodName: "ManagerMarkHighQualityUser",
 			Handler:    _User_ManagerMarkHighQualityUser_Handler,

+ 43 - 0
api/user/user_http.pb.go

@@ -72,6 +72,7 @@ type UserHTTPServer interface {
 	GetVipInfo(context.Context, *emptypb.Empty) (*VipInfo, error)
 	GetWindowInfo(context.Context, *emptypb.Empty) (*chat.WindowInfo, error)
 	ManagerDeleteHighQualityUser(context.Context, *common.PersonIDParam) (*emptypb.Empty, error)
+	ManagerFindCanHandpickUserList(context.Context, *common.ManagerFindCanHandpickUserListRequest) (*common.ManagerFindCanHandpickUserListReply, error)
 	ManagerFindHighQualityUserList(context.Context, *common.ManagerFindPersonListRequest) (*common.ManagerFindPersonListReply, error)
 	ManagerFindInformationUserList(context.Context, *common.ManagerFindPersonListRequest) (*common.ManagerFindPersonListReply, error)
 	ManagerFindIsCheckQualityUserList(context.Context, *ManagerFindIsCheckQualityUserListRequest) (*common.ManagerFindPersonListReply2, error)
@@ -190,6 +191,7 @@ func RegisterUserHTTPServer(s *http.Server, srv UserHTTPServer) {
 	r.POST("/api/manager/user/list/information", _User_ManagerFindInformationUserList0_HTTP_Handler(srv))
 	r.POST("/api/manager/user/list/ischeckquality", _User_ManagerFindIsCheckQualityUserList0_HTTP_Handler(srv))
 	r.POST("/api/manager/quality/user/list", _User_ManagerFindHighQualityUserList0_HTTP_Handler(srv))
+	r.POST("/api/manager/handpick/user/list", _User_ManagerFindCanHandpickUserList0_HTTP_Handler(srv))
 	r.POST("/api/manager/quality/user/set", _User_ManagerMarkHighQualityUser0_HTTP_Handler(srv))
 	r.POST("/api/manager/quality/user/set/one", _User_ManagerMarkHighQualityUserOne0_HTTP_Handler(srv))
 	r.POST("/api/manager/black/user/more", _User_ManagerSetUserBlack0_HTTP_Handler(srv))
@@ -2148,6 +2150,33 @@ func _User_ManagerFindHighQualityUserList0_HTTP_Handler(srv UserHTTPServer) func
 	}
 }
 
+func _User_ManagerFindCanHandpickUserList0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in common.ManagerFindCanHandpickUserListRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.user.User/ManagerFindCanHandpickUserList")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.ManagerFindCanHandpickUserList(ctx, req.(*common.ManagerFindCanHandpickUserListRequest))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
 func _User_ManagerMarkHighQualityUser0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context) error {
 	return func(ctx http.Context) error {
 		var in ManagerMarkHighQualityUserRequest
@@ -2515,6 +2544,7 @@ type UserHTTPClient interface {
 	GetVipInfo(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *VipInfo, err error)
 	GetWindowInfo(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *chat.WindowInfo, err error)
 	ManagerDeleteHighQualityUser(ctx context.Context, req *common.PersonIDParam, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
+	ManagerFindCanHandpickUserList(ctx context.Context, req *common.ManagerFindCanHandpickUserListRequest, opts ...http.CallOption) (rsp *common.ManagerFindCanHandpickUserListReply, err error)
 	ManagerFindHighQualityUserList(ctx context.Context, req *common.ManagerFindPersonListRequest, opts ...http.CallOption) (rsp *common.ManagerFindPersonListReply, err error)
 	ManagerFindInformationUserList(ctx context.Context, req *common.ManagerFindPersonListRequest, opts ...http.CallOption) (rsp *common.ManagerFindPersonListReply, err error)
 	ManagerFindIsCheckQualityUserList(ctx context.Context, req *ManagerFindIsCheckQualityUserListRequest, opts ...http.CallOption) (rsp *common.ManagerFindPersonListReply2, err error)
@@ -3113,6 +3143,19 @@ func (c *UserHTTPClientImpl) ManagerDeleteHighQualityUser(ctx context.Context, i
 	return &out, err
 }
 
+func (c *UserHTTPClientImpl) ManagerFindCanHandpickUserList(ctx context.Context, in *common.ManagerFindCanHandpickUserListRequest, opts ...http.CallOption) (*common.ManagerFindCanHandpickUserListReply, error) {
+	var out common.ManagerFindCanHandpickUserListReply
+	pattern := "/api/manager/handpick/user/list"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.user.User/ManagerFindCanHandpickUserList"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *UserHTTPClientImpl) ManagerFindHighQualityUserList(ctx context.Context, in *common.ManagerFindPersonListRequest, opts ...http.CallOption) (*common.ManagerFindPersonListReply, error) {
 	var out common.ManagerFindPersonListReply
 	pattern := "/api/manager/quality/user/list"

+ 59 - 0
js/api/common/common_pb.ts

@@ -1017,4 +1017,63 @@ export interface SendMessageReply{
     /**  自己是否在线 */
     isSelfOnline?:boolean;
 }
+export interface ManagerFindCanHandpickUserListRequest{
+    nextId?:string;
+    offset?:number;
+    isHandpickUser?:boolean;
+}
+export interface ManagerFindCanHandpickUserListReply{
+    list?:Array<ManagerFindCanHandpickUserInfo>;
+    nextId?:string;
+    total?:number;
+}
+export interface ManagerFindCanHandpickUserInfo{
+    id?:string;
+    /**  昵称 */
+    nickname?:string;
+    /**  头像链接 */
+    avatarUrl?:string;
+    /**  性别 */
+    sex?:number;
+    /**  图片 */
+    pictures?:Array<string>;
+    /**  年龄 */
+    age?:number;
+    /**  星座 */
+    constellation?:string;
+    /**  积分 */
+    credit?:number;
+    /**  签名 */
+    signature?:string;
+    /**  介绍语音 */
+    introduceVoice?:string;
+    /**  省 */
+    province?:string;
+    /**  市 */
+    city?:string;
+    /**  用户id(Number) */
+    personId?:number;
+    /**  是否是优质用户 */
+    isHighQuality?:boolean;
+    /**  是否被封禁 */
+    isBlack?:boolean;
+    /**  权重 */
+    weight?:number;
+    /**  上次登录时间 */
+    lastLoginTime?:number;
+    /**  拉黑理由(只有被拉黑的用户才会有) */
+    blackDetails?:string;
+    /**  是否是Vip */
+    isVip?:boolean;
+    /**  vip等级 */
+    vipLevel?:number;
+    /**  是否是年费Vip */
+    isYearVip?:boolean;
+    /**  vip功能 */
+    vipFunctions?:Array<string>;
+    /**  是否是精选 */
+    isHandpickUser?:boolean;
+    /**  精选图片 */
+    handpickPicture?:string;
+}
 

+ 6 - 1
js/api/user/user_http_pb.ts

@@ -1,7 +1,7 @@
 // @ts-ignore
 import request from '@/libs/request';
 import {UserInfo,UserBalance,UserFindChatListReply,CreateScripRequest,DeleteScripRequest,UserFindScripRequest,PersonLookScripRequest,ReplyScripRequest,KeyRequest,InformationStatus,UserRechargeRequest,PayInfo,RechargeList,VipRechargeList,FindPayOrderListRequest,PayOrderList,FindMatchingAvatarAndNumReply,UserFreeNum,SendMessageRequest,VipInfo,ManagerFindIsCheckQualityUserListRequest,ManagerMarkHighQualityUserRequest,ManagerUpdateUserCreditRequest,FindRecommendHighQualityUserRequest,FindRecommendHighQualityUserReply,GetUserDBMsgFromWebsocketReply,SendMsgReduceCreditRequest,SendNewMessageUnreadReminderRequest,UpdateUserMatchedNumRequest,UpdateUserMatchedNumAndReturnUserMsgReply,GetRecommendUserDBRequest,ReportUserBlackRequest,AddUserCreditRequest,UserGetInformationAwardByActivityRequest,UserGetInformationAwardByActivityReply,FindUserVipListDBReply} from "./user_pb";
-import {SendPhoneCodeRequest,CheckPhoneCodeRequest,UpdateInformationRequest,CreateChatRoomParam,PersonParam,HomeInfo,LookedAndLikedNum,ListPageRequest,WxConfReq,WxConfResponse,SexReq,TagListReply,ListPage2Request,RecommendPersonListReply,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList,ChatCardInfo,ReportChatRequest,FindOverSevenDayAvatarReply,UpdateLastScripIDRequest,ScripID,ScripReply,FindScripRequest,ScripInfo,ChatRecordInfo,RoomIDRequest,PartnerIDParam,AddFriendMessageInfo,SendMessageReply,ManagerFindPersonListRequest,ManagerFindPersonListReply,ManagerFindPersonListReply2,PersonIDParam,PersonIDList,ManagerUpdatePersonVoiceRequest,ManagerUpdatePersonPicturesRequest,ManagerUpdatePersonSignatureRequest,ManagerUpdatePersonAvatarRequest,ManagerUpdatePersonNameRequest,ManagerUpdatePersonWeightRequest,ManagerUpdatePersonIsBlackRequest,PersonMsg,PersonDBReply,UpdateLastScripIDDBRequest,FindRecommendRequest,IDParam,PersonDB} from "../common/common_pb";
+import {SendPhoneCodeRequest,CheckPhoneCodeRequest,UpdateInformationRequest,CreateChatRoomParam,PersonParam,HomeInfo,LookedAndLikedNum,ListPageRequest,WxConfReq,WxConfResponse,SexReq,TagListReply,ListPage2Request,RecommendPersonListReply,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList,ChatCardInfo,ReportChatRequest,FindOverSevenDayAvatarReply,UpdateLastScripIDRequest,ScripID,ScripReply,FindScripRequest,ScripInfo,ChatRecordInfo,RoomIDRequest,PartnerIDParam,AddFriendMessageInfo,SendMessageReply,ManagerFindPersonListRequest,ManagerFindPersonListReply,ManagerFindPersonListReply2,ManagerFindCanHandpickUserListRequest,ManagerFindCanHandpickUserListReply,PersonIDParam,PersonIDList,ManagerUpdatePersonVoiceRequest,ManagerUpdatePersonPicturesRequest,ManagerUpdatePersonSignatureRequest,ManagerUpdatePersonAvatarRequest,ManagerUpdatePersonNameRequest,ManagerUpdatePersonWeightRequest,ManagerUpdatePersonIsBlackRequest,PersonMsg,PersonDBReply,UpdateLastScripIDDBRequest,FindRecommendRequest,IDParam,PersonDB} from "../common/common_pb";
 import {RoomReply,UnreadNumReply,UserRoomInfo,CheckUserPartnerIsRelationshipReply,WindowInfo,GetRandomMatchingReply} from "../chat/chat_pb";
 import {LookAndLikeListReply,LookAndLikeMessageReply,LookMessageReply} from "../statistics/statistics_pb";
 
@@ -369,6 +369,11 @@ const UserService = {
 	const res = await request.post<{ data: ManagerFindPersonListReply, code: string, message: string }>('/api/manager/quality/user/list', req);
     return res.data.data;
   },
+  /**  管理员查询精选用户 */
+  ManagerFindCanHandpickUserList: async (req?: ManagerFindCanHandpickUserListRequest) => {
+	const res = await request.post<{ data: ManagerFindCanHandpickUserListReply, code: string, message: string }>('/api/manager/handpick/user/list', req);
+    return res.data.data;
+  },
   /**  管理员标记优质用户 */
   ManagerMarkHighQualityUser: async (req?: ManagerMarkHighQualityUserRequest) => {
 	const res = await request.post('/api/manager/quality/user/set', req);