// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1 // protoc v3.19.4 // source: user_center.proto package pb import ( vars "dcg/game/pb/vars" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type GiftType int32 const ( GiftType_starter GiftType = 0 // 新手礼包 GiftType_subsistence GiftType = 1 // 低保 ) // Enum value maps for GiftType. var ( GiftType_name = map[int32]string{ 0: "starter", 1: "subsistence", } GiftType_value = map[string]int32{ "starter": 0, "subsistence": 1, } ) func (x GiftType) Enum() *GiftType { p := new(GiftType) *p = x return p } func (x GiftType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GiftType) Descriptor() protoreflect.EnumDescriptor { return file_user_center_proto_enumTypes[0].Descriptor() } func (GiftType) Type() protoreflect.EnumType { return &file_user_center_proto_enumTypes[0] } func (x GiftType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GiftType.Descriptor instead. func (GiftType) EnumDescriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{0} } type StatPvPReportResp_GradeResult int32 const ( StatPvPReportResp_Keep StatPvPReportResp_GradeResult = 0 // 不变(因为骁勇分抵扣) StatPvPReportResp_GradeUp StatPvPReportResp_GradeResult = 1 // 段位提升 StatPvPReportResp_LevelUp StatPvPReportResp_GradeResult = 2 // 段位等级提升 StatPvPReportResp_StarUp StatPvPReportResp_GradeResult = 3 // 等级星级提升 StatPvPReportResp_GradeDown StatPvPReportResp_GradeResult = 4 // 掉段 StatPvPReportResp_LevelDown StatPvPReportResp_GradeResult = 5 // 降级 StatPvPReportResp_StarDown StatPvPReportResp_GradeResult = 6 // 掉星 ) // Enum value maps for StatPvPReportResp_GradeResult. var ( StatPvPReportResp_GradeResult_name = map[int32]string{ 0: "Keep", 1: "GradeUp", 2: "LevelUp", 3: "StarUp", 4: "GradeDown", 5: "LevelDown", 6: "StarDown", } StatPvPReportResp_GradeResult_value = map[string]int32{ "Keep": 0, "GradeUp": 1, "LevelUp": 2, "StarUp": 3, "GradeDown": 4, "LevelDown": 5, "StarDown": 6, } ) func (x StatPvPReportResp_GradeResult) Enum() *StatPvPReportResp_GradeResult { p := new(StatPvPReportResp_GradeResult) *p = x return p } func (x StatPvPReportResp_GradeResult) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (StatPvPReportResp_GradeResult) Descriptor() protoreflect.EnumDescriptor { return file_user_center_proto_enumTypes[1].Descriptor() } func (StatPvPReportResp_GradeResult) Type() protoreflect.EnumType { return &file_user_center_proto_enumTypes[1] } func (x StatPvPReportResp_GradeResult) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use StatPvPReportResp_GradeResult.Descriptor instead. func (StatPvPReportResp_GradeResult) EnumDescriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{17, 0} } type StatPvPReportResp_GradeReason int32 const ( StatPvPReportResp_Win StatPvPReportResp_GradeReason = 0 // 因为获胜 StatPvPReportResp_Lost StatPvPReportResp_GradeReason = 1 // 因为战败 StatPvPReportResp_BravePoint StatPvPReportResp_GradeReason = 2 // 因为骁勇分保护,所以不掉星 ) // Enum value maps for StatPvPReportResp_GradeReason. var ( StatPvPReportResp_GradeReason_name = map[int32]string{ 0: "Win", 1: "Lost", 2: "BravePoint", } StatPvPReportResp_GradeReason_value = map[string]int32{ "Win": 0, "Lost": 1, "BravePoint": 2, } ) func (x StatPvPReportResp_GradeReason) Enum() *StatPvPReportResp_GradeReason { p := new(StatPvPReportResp_GradeReason) *p = x return p } func (x StatPvPReportResp_GradeReason) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (StatPvPReportResp_GradeReason) Descriptor() protoreflect.EnumDescriptor { return file_user_center_proto_enumTypes[2].Descriptor() } func (StatPvPReportResp_GradeReason) Type() protoreflect.EnumType { return &file_user_center_proto_enumTypes[2] } func (x StatPvPReportResp_GradeReason) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use StatPvPReportResp_GradeReason.Descriptor instead. func (StatPvPReportResp_GradeReason) EnumDescriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{17, 1} } // model type Empty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Empty) String() string { return protoimpl.X.MessageStringOf(x) } func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[0] 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 Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{0} } type Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // code Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // msg } func (x *Response) Reset() { *x = Response{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Response) String() string { return protoimpl.X.MessageStringOf(x) } func (*Response) ProtoMessage() {} func (x *Response) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[1] 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 Response.ProtoReflect.Descriptor instead. func (*Response) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{1} } func (x *Response) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *Response) GetMsg() string { if x != nil { return x.Msg } return "" } // req type PlatformUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` PUid string `protobuf:"bytes,2,opt,name=pUid,proto3" json:"pUid,omitempty"` PUname string `protobuf:"bytes,3,opt,name=pUname,proto3" json:"pUname,omitempty"` PAvatar string `protobuf:"bytes,4,opt,name=pAvatar,proto3" json:"pAvatar,omitempty"` } func (x *PlatformUserReq) Reset() { *x = PlatformUserReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlatformUserReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlatformUserReq) ProtoMessage() {} func (x *PlatformUserReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[2] 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 PlatformUserReq.ProtoReflect.Descriptor instead. func (*PlatformUserReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{2} } func (x *PlatformUserReq) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *PlatformUserReq) GetPUid() string { if x != nil { return x.PUid } return "" } func (x *PlatformUserReq) GetPUname() string { if x != nil { return x.PUname } return "" } func (x *PlatformUserReq) GetPAvatar() string { if x != nil { return x.PAvatar } return "" } type PlatformUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // platform Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` PUid string `protobuf:"bytes,4,opt,name=pUid,proto3" json:"pUid,omitempty"` PUname string `protobuf:"bytes,5,opt,name=pUname,proto3" json:"pUname,omitempty"` PAvatar string `protobuf:"bytes,6,opt,name=pAvatar,proto3" json:"pAvatar,omitempty"` } func (x *PlatformUserResp) Reset() { *x = PlatformUserResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlatformUserResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlatformUserResp) ProtoMessage() {} func (x *PlatformUserResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[3] 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 PlatformUserResp.ProtoReflect.Descriptor instead. func (*PlatformUserResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{3} } func (x *PlatformUserResp) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *PlatformUserResp) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *PlatformUserResp) GetPUid() string { if x != nil { return x.PUid } return "" } func (x *PlatformUserResp) GetPUname() string { if x != nil { return x.PUname } return "" } func (x *PlatformUserResp) GetPAvatar() string { if x != nil { return x.PAvatar } return "" } // 用户详细信息返回 type UserDetailsResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 系统用户ID NobilityLevel int32 `protobuf:"varint,2,opt,name=nobilityLevel,proto3" json:"nobilityLevel,omitempty"` // 贵族等级 Coin int64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` // 金币 CurrentTitle *UserDetailsResp_TitleItem `protobuf:"bytes,4,opt,name=currentTitle,proto3" json:"currentTitle,omitempty"` // 当前佩戴的称号ID CurrentElite *UserDetailsResp_EliteItem `protobuf:"bytes,5,opt,name=currentElite,proto3" json:"currentElite,omitempty"` // 当前使用的精英单位ID Titles []*UserDetailsResp_TitleItem `protobuf:"bytes,6,rep,name=titles,proto3" json:"titles,omitempty"` // 拥有的称号列表 Elites []*UserDetailsResp_EliteItem `protobuf:"bytes,7,rep,name=elites,proto3" json:"elites,omitempty"` // 拥有的精英单位列表 } func (x *UserDetailsResp) Reset() { *x = UserDetailsResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserDetailsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserDetailsResp) ProtoMessage() {} func (x *UserDetailsResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[4] 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 UserDetailsResp.ProtoReflect.Descriptor instead. func (*UserDetailsResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{4} } func (x *UserDetailsResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserDetailsResp) GetNobilityLevel() int32 { if x != nil { return x.NobilityLevel } return 0 } func (x *UserDetailsResp) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *UserDetailsResp) GetCurrentTitle() *UserDetailsResp_TitleItem { if x != nil { return x.CurrentTitle } return nil } func (x *UserDetailsResp) GetCurrentElite() *UserDetailsResp_EliteItem { if x != nil { return x.CurrentElite } return nil } func (x *UserDetailsResp) GetTitles() []*UserDetailsResp_TitleItem { if x != nil { return x.Titles } return nil } func (x *UserDetailsResp) GetElites() []*UserDetailsResp_EliteItem { if x != nil { return x.Elites } return nil } // 用户ID请求 type UserIdReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` } func (x *UserIdReq) Reset() { *x = UserIdReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserIdReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserIdReq) ProtoMessage() {} func (x *UserIdReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[5] 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 UserIdReq.ProtoReflect.Descriptor instead. func (*UserIdReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{5} } func (x *UserIdReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } // 用户ID回复 type UserIdResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` } func (x *UserIdResp) Reset() { *x = UserIdResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserIdResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserIdResp) ProtoMessage() {} func (x *UserIdResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[6] 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 UserIdResp.ProtoReflect.Descriptor instead. func (*UserIdResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{6} } func (x *UserIdResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } type GetUserCoinResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` Current int64 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"` // 当前量 } func (x *GetUserCoinResp) Reset() { *x = GetUserCoinResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserCoinResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserCoinResp) ProtoMessage() {} func (x *GetUserCoinResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[7] 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 GetUserCoinResp.ProtoReflect.Descriptor instead. func (*GetUserCoinResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{7} } func (x *GetUserCoinResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *GetUserCoinResp) GetCurrent() int64 { if x != nil { return x.Current } return 0 } // 变更弹币请求 type ChangeCoinReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 系统用户ID BattleId int64 `protobuf:"varint,2,opt,name=battleId,proto3" json:"battleId,omitempty"` // 战局ID Change int64 `protobuf:"varint,3,opt,name=change,proto3" json:"change,omitempty"` // 变更数量 Reason vars.UserCoinChangedReason `protobuf:"varint,4,opt,name=reason,proto3,enum=pb.vars.UserCoinChangedReason" json:"reason,omitempty"` // 原因 } func (x *ChangeCoinReq) Reset() { *x = ChangeCoinReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeCoinReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeCoinReq) ProtoMessage() {} func (x *ChangeCoinReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[8] 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 ChangeCoinReq.ProtoReflect.Descriptor instead. func (*ChangeCoinReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{8} } func (x *ChangeCoinReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *ChangeCoinReq) GetBattleId() int64 { if x != nil { return x.BattleId } return 0 } func (x *ChangeCoinReq) GetChange() int64 { if x != nil { return x.Change } return 0 } func (x *ChangeCoinReq) GetReason() vars.UserCoinChangedReason { if x != nil { return x.Reason } return vars.UserCoinChangedReason(0) } // 转移用户弹币 type TransferUserCoinReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 源用户ID TargetUserId int64 `protobuf:"varint,2,opt,name=targetUserId,proto3" json:"targetUserId,omitempty"` // 目标用户 Transfer int64 `protobuf:"varint,3,opt,name=transfer,proto3" json:"transfer,omitempty"` // 待转移量 } func (x *TransferUserCoinReq) Reset() { *x = TransferUserCoinReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransferUserCoinReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransferUserCoinReq) ProtoMessage() {} func (x *TransferUserCoinReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[9] 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 TransferUserCoinReq.ProtoReflect.Descriptor instead. func (*TransferUserCoinReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{9} } func (x *TransferUserCoinReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *TransferUserCoinReq) GetTargetUserId() int64 { if x != nil { return x.TargetUserId } return 0 } func (x *TransferUserCoinReq) GetTransfer() int64 { if x != nil { return x.Transfer } return 0 } // 转移用户弹币 回复 type TransferUserCoinResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"` TargetUserId int64 `protobuf:"varint,4,opt,name=targetUserId,proto3" json:"targetUserId,omitempty"` TargetUname string `protobuf:"bytes,5,opt,name=targetUname,proto3" json:"targetUname,omitempty"` TargetAvatar string `protobuf:"bytes,6,opt,name=targetAvatar,proto3" json:"targetAvatar,omitempty"` UserCoin int64 `protobuf:"varint,10,opt,name=userCoin,proto3" json:"userCoin,omitempty"` // 源用户剩余 TargetUserCoin int64 `protobuf:"varint,11,opt,name=targetUserCoin,proto3" json:"targetUserCoin,omitempty"` // 目标用户剩余 } func (x *TransferUserCoinResp) Reset() { *x = TransferUserCoinResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransferUserCoinResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransferUserCoinResp) ProtoMessage() {} func (x *TransferUserCoinResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[10] 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 TransferUserCoinResp.ProtoReflect.Descriptor instead. func (*TransferUserCoinResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{10} } func (x *TransferUserCoinResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *TransferUserCoinResp) GetUname() string { if x != nil { return x.Uname } return "" } func (x *TransferUserCoinResp) GetAvatar() string { if x != nil { return x.Avatar } return "" } func (x *TransferUserCoinResp) GetTargetUserId() int64 { if x != nil { return x.TargetUserId } return 0 } func (x *TransferUserCoinResp) GetTargetUname() string { if x != nil { return x.TargetUname } return "" } func (x *TransferUserCoinResp) GetTargetAvatar() string { if x != nil { return x.TargetAvatar } return "" } func (x *TransferUserCoinResp) GetUserCoin() int64 { if x != nil { return x.UserCoin } return 0 } func (x *TransferUserCoinResp) GetTargetUserCoin() int64 { if x != nil { return x.TargetUserCoin } return 0 } // 用户打卡(签到)回复 type UserCheckInResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CoinChange int64 `protobuf:"varint,1,opt,name=coinChange,proto3" json:"coinChange,omitempty"` // 弹币变更量 CurrentCoin int64 `protobuf:"varint,2,opt,name=currentCoin,proto3" json:"currentCoin,omitempty"` // 现有弹币量 IsCritical bool `protobuf:"varint,3,opt,name=isCritical,proto3" json:"isCritical,omitempty"` // 是否发生了暴击奖励 } func (x *UserCheckInResp) Reset() { *x = UserCheckInResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserCheckInResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserCheckInResp) ProtoMessage() {} func (x *UserCheckInResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[11] 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 UserCheckInResp.ProtoReflect.Descriptor instead. func (*UserCheckInResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{11} } func (x *UserCheckInResp) GetCoinChange() int64 { if x != nil { return x.CoinChange } return 0 } func (x *UserCheckInResp) GetCurrentCoin() int64 { if x != nil { return x.CurrentCoin } return 0 } func (x *UserCheckInResp) GetIsCritical() bool { if x != nil { return x.IsCritical } return false } // 用户送礼请求 type UserSendGiftReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` // 平台 UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` // 系统用户ID PUid string `protobuf:"bytes,3,opt,name=pUid,proto3" json:"pUid,omitempty"` // 平台用户ID RoomId string `protobuf:"bytes,4,opt,name=roomId,proto3" json:"roomId,omitempty"` // 直播间ID GiftId int64 `protobuf:"varint,5,opt,name=giftId,proto3" json:"giftId,omitempty"` // 礼物ID GiftName string `protobuf:"bytes,6,opt,name=giftName,proto3" json:"giftName,omitempty"` // 礼物名 Num int64 `protobuf:"varint,7,opt,name=num,proto3" json:"num,omitempty"` // 赠送数量 Price int64 `protobuf:"varint,8,opt,name=price,proto3" json:"price,omitempty"` // 礼物单价(系统不存在对应礼物数据时使用) IsPaid bool `protobuf:"varint,9,opt,name=isPaid,proto3" json:"isPaid,omitempty"` // 是否收费礼物 BattleId int64 `protobuf:"varint,10,opt,name=battleId,proto3" json:"battleId,omitempty"` // 战局ID } func (x *UserSendGiftReq) Reset() { *x = UserSendGiftReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserSendGiftReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserSendGiftReq) ProtoMessage() {} func (x *UserSendGiftReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[12] 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 UserSendGiftReq.ProtoReflect.Descriptor instead. func (*UserSendGiftReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{12} } func (x *UserSendGiftReq) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *UserSendGiftReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserSendGiftReq) GetPUid() string { if x != nil { return x.PUid } return "" } func (x *UserSendGiftReq) GetRoomId() string { if x != nil { return x.RoomId } return "" } func (x *UserSendGiftReq) GetGiftId() int64 { if x != nil { return x.GiftId } return 0 } func (x *UserSendGiftReq) GetGiftName() string { if x != nil { return x.GiftName } return "" } func (x *UserSendGiftReq) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *UserSendGiftReq) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *UserSendGiftReq) GetIsPaid() bool { if x != nil { return x.IsPaid } return false } func (x *UserSendGiftReq) GetBattleId() int64 { if x != nil { return x.BattleId } return 0 } // 用户购买舰长请求 type UserBuyNobilityReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` // 平台 UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` // 系统用户ID PUid string `protobuf:"bytes,3,opt,name=pUid,proto3" json:"pUid,omitempty"` // 平台用户ID BattleId int64 `protobuf:"varint,4,opt,name=battleId,proto3" json:"battleId,omitempty"` // 战局ID RoomId string `protobuf:"bytes,5,opt,name=roomId,proto3" json:"roomId,omitempty"` // 直播间ID GiftId int64 `protobuf:"varint,6,opt,name=giftId,proto3" json:"giftId,omitempty"` // 礼物ID GiftName string `protobuf:"bytes,7,opt,name=giftName,proto3" json:"giftName,omitempty"` // 礼物名 Num int64 `protobuf:"varint,8,opt,name=num,proto3" json:"num,omitempty"` // 赠送数量 Price int64 `protobuf:"varint,9,opt,name=price,proto3" json:"price,omitempty"` // 礼物单价(系统不存在对应礼物数据时使用) Level int64 `protobuf:"varint,10,opt,name=level,proto3" json:"level,omitempty"` // 贵族等级 StartTime int64 `protobuf:"varint,11,opt,name=startTime,proto3" json:"startTime,omitempty"` // 开始时间 EndTime int64 `protobuf:"varint,12,opt,name=endTime,proto3" json:"endTime,omitempty"` // 结束时间 } func (x *UserBuyNobilityReq) Reset() { *x = UserBuyNobilityReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserBuyNobilityReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserBuyNobilityReq) ProtoMessage() {} func (x *UserBuyNobilityReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[13] 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 UserBuyNobilityReq.ProtoReflect.Descriptor instead. func (*UserBuyNobilityReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{13} } func (x *UserBuyNobilityReq) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *UserBuyNobilityReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserBuyNobilityReq) GetPUid() string { if x != nil { return x.PUid } return "" } func (x *UserBuyNobilityReq) GetBattleId() int64 { if x != nil { return x.BattleId } return 0 } func (x *UserBuyNobilityReq) GetRoomId() string { if x != nil { return x.RoomId } return "" } func (x *UserBuyNobilityReq) GetGiftId() int64 { if x != nil { return x.GiftId } return 0 } func (x *UserBuyNobilityReq) GetGiftName() string { if x != nil { return x.GiftName } return "" } func (x *UserBuyNobilityReq) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *UserBuyNobilityReq) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *UserBuyNobilityReq) GetLevel() int64 { if x != nil { return x.Level } return 0 } func (x *UserBuyNobilityReq) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *UserBuyNobilityReq) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } type Grade struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Grade int32 `protobuf:"varint,1,opt,name=grade,proto3" json:"grade,omitempty"` // 段位 Level int32 `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"` // 段位等级 Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` // 等级星级 BravePoint int64 `protobuf:"varint,4,opt,name=bravePoint,proto3" json:"bravePoint,omitempty"` // 剩余 骁勇分(历史评分累计) } func (x *Grade) Reset() { *x = Grade{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Grade) String() string { return protoimpl.X.MessageStringOf(x) } func (*Grade) ProtoMessage() {} func (x *Grade) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[14] 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 Grade.ProtoReflect.Descriptor instead. func (*Grade) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{14} } func (x *Grade) GetGrade() int32 { if x != nil { return x.Grade } return 0 } func (x *Grade) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *Grade) GetStar() int32 { if x != nil { return x.Star } return 0 } func (x *Grade) GetBravePoint() int64 { if x != nil { return x.BravePoint } return 0 } type UserGradeResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` Grade *Grade `protobuf:"bytes,2,opt,name=grade,proto3" json:"grade,omitempty"` } func (x *UserGradeResp) Reset() { *x = UserGradeResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserGradeResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserGradeResp) ProtoMessage() {} func (x *UserGradeResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[15] 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 UserGradeResp.ProtoReflect.Descriptor instead. func (*UserGradeResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{15} } func (x *UserGradeResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserGradeResp) GetGrade() *Grade { if x != nil { return x.Grade } return nil } // 通知-PvP战报 statistics.pvp.report type StatPvPReportReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WinCamp int32 `protobuf:"varint,1,opt,name=winCamp,proto3" json:"winCamp,omitempty"` // 获胜阵营 1-蓝 2-红 BattleId int64 `protobuf:"varint,2,opt,name=battleId,proto3" json:"battleId,omitempty"` // 战斗ID WinItems []*StatPvPReportReq_Item `protobuf:"bytes,10,rep,name=winItems,proto3" json:"winItems,omitempty"` // 获胜方数据 LostItems []*StatPvPReportReq_Item `protobuf:"bytes,11,rep,name=lostItems,proto3" json:"lostItems,omitempty"` // 战败方数据 } func (x *StatPvPReportReq) Reset() { *x = StatPvPReportReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatPvPReportReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatPvPReportReq) ProtoMessage() {} func (x *StatPvPReportReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[16] 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 StatPvPReportReq.ProtoReflect.Descriptor instead. func (*StatPvPReportReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{16} } func (x *StatPvPReportReq) GetWinCamp() int32 { if x != nil { return x.WinCamp } return 0 } func (x *StatPvPReportReq) GetBattleId() int64 { if x != nil { return x.BattleId } return 0 } func (x *StatPvPReportReq) GetWinItems() []*StatPvPReportReq_Item { if x != nil { return x.WinItems } return nil } func (x *StatPvPReportReq) GetLostItems() []*StatPvPReportReq_Item { if x != nil { return x.LostItems } return nil } // 通知-PvP战报 回复 type StatPvPReportResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WinCamp int32 `protobuf:"varint,1,opt,name=winCamp,proto3" json:"winCamp,omitempty"` // 获胜阵营 1-蓝 2-红 BattleId int64 `protobuf:"varint,2,opt,name=battleId,proto3" json:"battleId,omitempty"` // 战斗ID WinItems []*StatPvPReportResp_Item `protobuf:"bytes,10,rep,name=winItems,proto3" json:"winItems,omitempty"` // 获胜方数据 LostItems []*StatPvPReportResp_Item `protobuf:"bytes,11,rep,name=lostItems,proto3" json:"lostItems,omitempty"` // 战败方数据 } func (x *StatPvPReportResp) Reset() { *x = StatPvPReportResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatPvPReportResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatPvPReportResp) ProtoMessage() {} func (x *StatPvPReportResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[17] 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 StatPvPReportResp.ProtoReflect.Descriptor instead. func (*StatPvPReportResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{17} } func (x *StatPvPReportResp) GetWinCamp() int32 { if x != nil { return x.WinCamp } return 0 } func (x *StatPvPReportResp) GetBattleId() int64 { if x != nil { return x.BattleId } return 0 } func (x *StatPvPReportResp) GetWinItems() []*StatPvPReportResp_Item { if x != nil { return x.WinItems } return nil } func (x *StatPvPReportResp) GetLostItems() []*StatPvPReportResp_Item { if x != nil { return x.LostItems } return nil } type GiftPackItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PackType string `protobuf:"bytes,1,opt,name=packType,proto3" json:"packType,omitempty"` // 礼包类型 starter:新手礼包 PackName string `protobuf:"bytes,2,opt,name=packName,proto3" json:"packName,omitempty"` // 礼包名称 Coin int64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` // 获取的弹币 Title []string `protobuf:"bytes,4,rep,name=title,proto3" json:"title,omitempty"` // 获取的称号 } func (x *GiftPackItem) Reset() { *x = GiftPackItem{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GiftPackItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*GiftPackItem) ProtoMessage() {} func (x *GiftPackItem) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[18] 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 GiftPackItem.ProtoReflect.Descriptor instead. func (*GiftPackItem) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{18} } func (x *GiftPackItem) GetPackType() string { if x != nil { return x.PackType } return "" } func (x *GiftPackItem) GetPackName() string { if x != nil { return x.PackName } return "" } func (x *GiftPackItem) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *GiftPackItem) GetTitle() []string { if x != nil { return x.Title } return nil } // 领取礼包 type DrawGiftPackReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` GiftType string `protobuf:"bytes,3,opt,name=giftType,proto3" json:"giftType,omitempty"` } func (x *DrawGiftPackReq) Reset() { *x = DrawGiftPackReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DrawGiftPackReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DrawGiftPackReq) ProtoMessage() {} func (x *DrawGiftPackReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[19] 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 DrawGiftPackReq.ProtoReflect.Descriptor instead. func (*DrawGiftPackReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{19} } func (x *DrawGiftPackReq) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *DrawGiftPackReq) GetUname() string { if x != nil { return x.Uname } return "" } func (x *DrawGiftPackReq) GetGiftType() string { if x != nil { return x.GiftType } return "" } type DrawGiftPackResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` Item *GiftPackItem `protobuf:"bytes,10,opt,name=item,proto3" json:"item,omitempty"` } func (x *DrawGiftPackResp) Reset() { *x = DrawGiftPackResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DrawGiftPackResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DrawGiftPackResp) ProtoMessage() {} func (x *DrawGiftPackResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[20] 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 DrawGiftPackResp.ProtoReflect.Descriptor instead. func (*DrawGiftPackResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{20} } func (x *DrawGiftPackResp) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *DrawGiftPackResp) GetUname() string { if x != nil { return x.Uname } return "" } func (x *DrawGiftPackResp) GetItem() *GiftPackItem { if x != nil { return x.Item } return nil } // 往福利池中添加福利,扣除自己积分 type IncreaseWelfareReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` // 用户名 Welfare int64 `protobuf:"varint,3,opt,name=welfare,proto3" json:"welfare,omitempty"` // 投入值 } func (x *IncreaseWelfareReq) Reset() { *x = IncreaseWelfareReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IncreaseWelfareReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*IncreaseWelfareReq) ProtoMessage() {} func (x *IncreaseWelfareReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[21] 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 IncreaseWelfareReq.ProtoReflect.Descriptor instead. func (*IncreaseWelfareReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{21} } func (x *IncreaseWelfareReq) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *IncreaseWelfareReq) GetUname() string { if x != nil { return x.Uname } return "" } func (x *IncreaseWelfareReq) GetWelfare() int64 { if x != nil { return x.Welfare } return 0 } type RankPvpReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type vars.RankType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.vars.RankType" json:"type,omitempty"` // rank类型 TopN int32 `protobuf:"varint,2,opt,name=topN,proto3" json:"topN,omitempty"` // TopN } func (x *RankPvpReq) Reset() { *x = RankPvpReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpReq) ProtoMessage() {} func (x *RankPvpReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[22] 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 RankPvpReq.ProtoReflect.Descriptor instead. func (*RankPvpReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{22} } func (x *RankPvpReq) GetType() vars.RankType { if x != nil { return x.Type } return vars.RankType(0) } func (x *RankPvpReq) GetTopN() int32 { if x != nil { return x.TopN } return 0 } type RankPvpResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type vars.RankType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.vars.RankType" json:"type,omitempty"` // rank类型 Items []*RankPvpResp_Item `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` // rank数据 } func (x *RankPvpResp) Reset() { *x = RankPvpResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpResp) ProtoMessage() {} func (x *RankPvpResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[23] 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 RankPvpResp.ProtoReflect.Descriptor instead. func (*RankPvpResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{23} } func (x *RankPvpResp) GetType() vars.RankType { if x != nil { return x.Type } return vars.RankType(0) } func (x *RankPvpResp) GetItems() []*RankPvpResp_Item { if x != nil { return x.Items } return nil } // RankPvpSubmitReq 手动排行榜结算 type RankPvpSubmitReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankType vars.RankType `protobuf:"varint,1,opt,name=rankType,proto3,enum=pb.vars.RankType" json:"rankType,omitempty"` // 待结算的排行榜类型 AllRankType bool `protobuf:"varint,2,opt,name=allRankType,proto3" json:"allRankType,omitempty"` // 是否直接结算所有排行类型 } func (x *RankPvpSubmitReq) Reset() { *x = RankPvpSubmitReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpSubmitReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpSubmitReq) ProtoMessage() {} func (x *RankPvpSubmitReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[24] 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 RankPvpSubmitReq.ProtoReflect.Descriptor instead. func (*RankPvpSubmitReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{24} } func (x *RankPvpSubmitReq) GetRankType() vars.RankType { if x != nil { return x.RankType } return vars.RankType(0) } func (x *RankPvpSubmitReq) GetAllRankType() bool { if x != nil { return x.AllRankType } return false } type RankPvpSubmitResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items []*RankPvpSubmitResp_Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` } func (x *RankPvpSubmitResp) Reset() { *x = RankPvpSubmitResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpSubmitResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpSubmitResp) ProtoMessage() {} func (x *RankPvpSubmitResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[25] 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 RankPvpSubmitResp.ProtoReflect.Descriptor instead. func (*RankPvpSubmitResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{25} } func (x *RankPvpSubmitResp) GetItems() []*RankPvpSubmitResp_Item { if x != nil { return x.Items } return nil } // UserRankReq 查询用户自己的排行 type UserRankReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 系统用户ID Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` // 用户名 RankType vars.RankType `protobuf:"varint,3,opt,name=rankType,proto3,enum=pb.vars.RankType" json:"rankType,omitempty"` // 排行榜类型 AllRankType bool `protobuf:"varint,4,opt,name=allRankType,proto3" json:"allRankType,omitempty"` // 直接查询所有排行类型 } func (x *UserRankReq) Reset() { *x = UserRankReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRankReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRankReq) ProtoMessage() {} func (x *UserRankReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[26] 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 UserRankReq.ProtoReflect.Descriptor instead. func (*UserRankReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{26} } func (x *UserRankReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserRankReq) GetUsername() string { if x != nil { return x.Username } return "" } func (x *UserRankReq) GetRankType() vars.RankType { if x != nil { return x.RankType } return vars.RankType(0) } func (x *UserRankReq) GetAllRankType() bool { if x != nil { return x.AllRankType } return false } type UserRankResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items []*UserRankResp_Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` } func (x *UserRankResp) Reset() { *x = UserRankResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRankResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRankResp) ProtoMessage() {} func (x *UserRankResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[27] 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 UserRankResp.ProtoReflect.Descriptor instead. func (*UserRankResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{27} } func (x *UserRankResp) GetItems() []*UserRankResp_Item { if x != nil { return x.Items } return nil } /////////////////////////// zhg type EliteReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // ID Sort int32 `protobuf:"varint,2,opt,name=sort,proto3" json:"sort,omitempty"` // 序号 } func (x *EliteReq) Reset() { *x = EliteReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EliteReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*EliteReq) ProtoMessage() {} func (x *EliteReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[28] 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 EliteReq.ProtoReflect.Descriptor instead. func (*EliteReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{28} } func (x *EliteReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *EliteReq) GetSort() int32 { if x != nil { return x.Sort } return 0 } type GiveEliteReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // ID EliteId int64 `protobuf:"varint,2,opt,name=eliteId,proto3" json:"eliteId,omitempty"` // 精英单位ID Duration int32 `protobuf:"varint,3,opt,name=duration,proto3" json:"duration,omitempty"` // 赠送时长(天) Forever bool `protobuf:"varint,4,opt,name=forever,proto3" json:"forever,omitempty"` // 永久赠送 } func (x *GiveEliteReq) Reset() { *x = GiveEliteReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GiveEliteReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GiveEliteReq) ProtoMessage() {} func (x *GiveEliteReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[29] 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 GiveEliteReq.ProtoReflect.Descriptor instead. func (*GiveEliteReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{29} } func (x *GiveEliteReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *GiveEliteReq) GetEliteId() int64 { if x != nil { return x.EliteId } return 0 } func (x *GiveEliteReq) GetDuration() int32 { if x != nil { return x.Duration } return 0 } func (x *GiveEliteReq) GetForever() bool { if x != nil { return x.Forever } return false } type BuyEliteResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // ID EliteId int64 `protobuf:"varint,2,opt,name=eliteId,proto3" json:"eliteId,omitempty"` // 精英单位ID Cost int64 `protobuf:"varint,3,opt,name=cost,proto3" json:"cost,omitempty"` // 花费 Duration int32 `protobuf:"varint,4,opt,name=duration,proto3" json:"duration,omitempty"` // 持续时间 单位(day) } func (x *BuyEliteResp) Reset() { *x = BuyEliteResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuyEliteResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuyEliteResp) ProtoMessage() {} func (x *BuyEliteResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[30] 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 BuyEliteResp.ProtoReflect.Descriptor instead. func (*BuyEliteResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{30} } func (x *BuyEliteResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *BuyEliteResp) GetEliteId() int64 { if x != nil { return x.EliteId } return 0 } func (x *BuyEliteResp) GetCost() int64 { if x != nil { return x.Cost } return 0 } func (x *BuyEliteResp) GetDuration() int32 { if x != nil { return x.Duration } return 0 } type GiveTitleReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // ID TitleId int64 `protobuf:"varint,2,opt,name=titleId,proto3" json:"titleId,omitempty"` // 精英单位ID Duration int32 `protobuf:"varint,3,opt,name=duration,proto3" json:"duration,omitempty"` // 赠送时长(天) Forever bool `protobuf:"varint,4,opt,name=forever,proto3" json:"forever,omitempty"` // 永久赠送 } func (x *GiveTitleReq) Reset() { *x = GiveTitleReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GiveTitleReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GiveTitleReq) ProtoMessage() {} func (x *GiveTitleReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[31] 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 GiveTitleReq.ProtoReflect.Descriptor instead. func (*GiveTitleReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{31} } func (x *GiveTitleReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *GiveTitleReq) GetTitleId() int64 { if x != nil { return x.TitleId } return 0 } func (x *GiveTitleReq) GetDuration() int32 { if x != nil { return x.Duration } return 0 } func (x *GiveTitleReq) GetForever() bool { if x != nil { return x.Forever } return false } type BuyTitleResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // ID TitleId int64 `protobuf:"varint,2,opt,name=titleId,proto3" json:"titleId,omitempty"` // 称号ID Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // 称号名 Cost int64 `protobuf:"varint,4,opt,name=cost,proto3" json:"cost,omitempty"` // 花费 Duration int32 `protobuf:"varint,5,opt,name=duration,proto3" json:"duration,omitempty"` // 持续时间 单位(day) } func (x *BuyTitleResp) Reset() { *x = BuyTitleResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuyTitleResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuyTitleResp) ProtoMessage() {} func (x *BuyTitleResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[32] 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 BuyTitleResp.ProtoReflect.Descriptor instead. func (*BuyTitleResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{32} } func (x *BuyTitleResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *BuyTitleResp) GetTitleId() int64 { if x != nil { return x.TitleId } return 0 } func (x *BuyTitleResp) GetName() string { if x != nil { return x.Name } return "" } func (x *BuyTitleResp) GetCost() int64 { if x != nil { return x.Cost } return 0 } func (x *BuyTitleResp) GetDuration() int32 { if x != nil { return x.Duration } return 0 } type ChangeEliteResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` EliteId int64 `protobuf:"varint,2,opt,name=eliteId,proto3" json:"eliteId,omitempty"` } func (x *ChangeEliteResp) Reset() { *x = ChangeEliteResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeEliteResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeEliteResp) ProtoMessage() {} func (x *ChangeEliteResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[33] 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 ChangeEliteResp.ProtoReflect.Descriptor instead. func (*ChangeEliteResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{33} } func (x *ChangeEliteResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *ChangeEliteResp) GetEliteId() int64 { if x != nil { return x.EliteId } return 0 } type TitleReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // ID Sort int32 `protobuf:"varint,2,opt,name=sort,proto3" json:"sort,omitempty"` // 序号 } func (x *TitleReq) Reset() { *x = TitleReq{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TitleReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*TitleReq) ProtoMessage() {} func (x *TitleReq) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[34] 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 TitleReq.ProtoReflect.Descriptor instead. func (*TitleReq) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{34} } func (x *TitleReq) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *TitleReq) GetSort() int32 { if x != nil { return x.Sort } return 0 } type ChangeTitleResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` TitleId int64 `protobuf:"varint,2,opt,name=titleId,proto3" json:"titleId,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` } func (x *ChangeTitleResp) Reset() { *x = ChangeTitleResp{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeTitleResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeTitleResp) ProtoMessage() {} func (x *ChangeTitleResp) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[35] 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 ChangeTitleResp.ProtoReflect.Descriptor instead. func (*ChangeTitleResp) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{35} } func (x *ChangeTitleResp) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *ChangeTitleResp) GetTitleId() int64 { if x != nil { return x.TitleId } return 0 } func (x *ChangeTitleResp) GetName() string { if x != nil { return x.Name } return "" } // TitleItem 称号 type UserDetailsResp_TitleItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名 Sort int32 `protobuf:"varint,3,opt,name=sort,proto3" json:"sort,omitempty"` // 排序号 Remain int32 `protobuf:"varint,4,opt,name=remain,proto3" json:"remain,omitempty"` // 剩余时长(单位:小时) } func (x *UserDetailsResp_TitleItem) Reset() { *x = UserDetailsResp_TitleItem{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserDetailsResp_TitleItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserDetailsResp_TitleItem) ProtoMessage() {} func (x *UserDetailsResp_TitleItem) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[36] 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 UserDetailsResp_TitleItem.ProtoReflect.Descriptor instead. func (*UserDetailsResp_TitleItem) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{4, 0} } func (x *UserDetailsResp_TitleItem) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *UserDetailsResp_TitleItem) GetName() string { if x != nil { return x.Name } return "" } func (x *UserDetailsResp_TitleItem) GetSort() int32 { if x != nil { return x.Sort } return 0 } func (x *UserDetailsResp_TitleItem) GetRemain() int32 { if x != nil { return x.Remain } return 0 } // 精英单位 type UserDetailsResp_EliteItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // ID 1000(普通x) 1001(弓骑兵) 1002(牧师) Sort int32 `protobuf:"varint,2,opt,name=sort,proto3" json:"sort,omitempty"` // 排序号 Remain int32 `protobuf:"varint,3,opt,name=remain,proto3" json:"remain,omitempty"` // 剩余时长(单位:天)-1无限制 } func (x *UserDetailsResp_EliteItem) Reset() { *x = UserDetailsResp_EliteItem{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserDetailsResp_EliteItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserDetailsResp_EliteItem) ProtoMessage() {} func (x *UserDetailsResp_EliteItem) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[37] 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 UserDetailsResp_EliteItem.ProtoReflect.Descriptor instead. func (*UserDetailsResp_EliteItem) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{4, 1} } func (x *UserDetailsResp_EliteItem) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *UserDetailsResp_EliteItem) GetSort() int32 { if x != nil { return x.Sort } return 0 } func (x *UserDetailsResp_EliteItem) GetRemain() int32 { if x != nil { return x.Remain } return 0 } type StatPvPReportReq_Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` // 用户名 Damage int64 `protobuf:"varint,3,opt,name=damage,proto3" json:"damage,omitempty"` // 伤害量 DeDamage int64 `protobuf:"varint,4,opt,name=deDamage,proto3" json:"deDamage,omitempty"` // 承受伤害 KillUnit int64 `protobuf:"varint,5,opt,name=killUnit,proto3" json:"killUnit,omitempty"` // 击杀单位数量 DeKillUnit int64 `protobuf:"varint,6,opt,name=deKillUnit,proto3" json:"deKillUnit,omitempty"` // 被杀单位数量 FirstBlood bool `protobuf:"varint,7,opt,name=firstBlood,proto3" json:"firstBlood,omitempty"` // 拿到一血 DeFirstBlood bool `protobuf:"varint,8,opt,name=deFirstBlood,proto3" json:"deFirstBlood,omitempty"` // 被拿一血 KillPlayer int64 `protobuf:"varint,9,opt,name=killPlayer,proto3" json:"killPlayer,omitempty"` // 击杀玩家数 DeKillPlayer bool `protobuf:"varint,10,opt,name=deKillPlayer,proto3" json:"deKillPlayer,omitempty"` // 是否被击杀 IsGeneral bool `protobuf:"varint,11,opt,name=isGeneral,proto3" json:"isGeneral,omitempty"` // 是否上一把名将? } func (x *StatPvPReportReq_Item) Reset() { *x = StatPvPReportReq_Item{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatPvPReportReq_Item) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatPvPReportReq_Item) ProtoMessage() {} func (x *StatPvPReportReq_Item) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[38] 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 StatPvPReportReq_Item.ProtoReflect.Descriptor instead. func (*StatPvPReportReq_Item) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{16, 0} } func (x *StatPvPReportReq_Item) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *StatPvPReportReq_Item) GetUname() string { if x != nil { return x.Uname } return "" } func (x *StatPvPReportReq_Item) GetDamage() int64 { if x != nil { return x.Damage } return 0 } func (x *StatPvPReportReq_Item) GetDeDamage() int64 { if x != nil { return x.DeDamage } return 0 } func (x *StatPvPReportReq_Item) GetKillUnit() int64 { if x != nil { return x.KillUnit } return 0 } func (x *StatPvPReportReq_Item) GetDeKillUnit() int64 { if x != nil { return x.DeKillUnit } return 0 } func (x *StatPvPReportReq_Item) GetFirstBlood() bool { if x != nil { return x.FirstBlood } return false } func (x *StatPvPReportReq_Item) GetDeFirstBlood() bool { if x != nil { return x.DeFirstBlood } return false } func (x *StatPvPReportReq_Item) GetKillPlayer() int64 { if x != nil { return x.KillPlayer } return 0 } func (x *StatPvPReportReq_Item) GetDeKillPlayer() bool { if x != nil { return x.DeKillPlayer } return false } func (x *StatPvPReportReq_Item) GetIsGeneral() bool { if x != nil { return x.IsGeneral } return false } type StatPvPReportResp_Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` // 用户名 Position int32 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` // 名次(特指在某一方的名次) Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` // 评分(一位小数) // grade Grade *Grade `protobuf:"bytes,5,opt,name=grade,proto3" json:"grade,omitempty"` GradeResult StatPvPReportResp_GradeResult `protobuf:"varint,6,opt,name=gradeResult,proto3,enum=pb.StatPvPReportResp_GradeResult" json:"gradeResult,omitempty"` // 段位结果 GradeReason StatPvPReportResp_GradeReason `protobuf:"varint,7,opt,name=gradeReason,proto3,enum=pb.StatPvPReportResp_GradeReason" json:"gradeReason,omitempty"` // 段位结果原因 } func (x *StatPvPReportResp_Item) Reset() { *x = StatPvPReportResp_Item{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatPvPReportResp_Item) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatPvPReportResp_Item) ProtoMessage() {} func (x *StatPvPReportResp_Item) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[39] 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 StatPvPReportResp_Item.ProtoReflect.Descriptor instead. func (*StatPvPReportResp_Item) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{17, 0} } func (x *StatPvPReportResp_Item) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *StatPvPReportResp_Item) GetUname() string { if x != nil { return x.Uname } return "" } func (x *StatPvPReportResp_Item) GetPosition() int32 { if x != nil { return x.Position } return 0 } func (x *StatPvPReportResp_Item) GetScore() float32 { if x != nil { return x.Score } return 0 } func (x *StatPvPReportResp_Item) GetGrade() *Grade { if x != nil { return x.Grade } return nil } func (x *StatPvPReportResp_Item) GetGradeResult() StatPvPReportResp_GradeResult { if x != nil { return x.GradeResult } return StatPvPReportResp_Keep } func (x *StatPvPReportResp_Item) GetGradeReason() StatPvPReportResp_GradeReason { if x != nil { return x.GradeReason } return StatPvPReportResp_Win } type RankPvpResp_Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` Score int64 `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"` Avatar string `protobuf:"bytes,4,opt,name=avatar,proto3" json:"avatar,omitempty"` } func (x *RankPvpResp_Item) Reset() { *x = RankPvpResp_Item{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpResp_Item) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpResp_Item) ProtoMessage() {} func (x *RankPvpResp_Item) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[40] 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 RankPvpResp_Item.ProtoReflect.Descriptor instead. func (*RankPvpResp_Item) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{23, 0} } func (x *RankPvpResp_Item) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *RankPvpResp_Item) GetUname() string { if x != nil { return x.Uname } return "" } func (x *RankPvpResp_Item) GetScore() int64 { if x != nil { return x.Score } return 0 } func (x *RankPvpResp_Item) GetAvatar() string { if x != nil { return x.Avatar } return "" } type RankPvpSubmitResp_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Avatar string `protobuf:"bytes,3,opt,name=avatar,proto3" json:"avatar,omitempty"` Coin int64 `protobuf:"varint,4,opt,name=coin,proto3" json:"coin,omitempty"` // 获取到的积分数 Title int64 `protobuf:"varint,5,opt,name=title,proto3" json:"title,omitempty"` // 获取到的称号ID } func (x *RankPvpSubmitResp_Result) Reset() { *x = RankPvpSubmitResp_Result{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpSubmitResp_Result) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpSubmitResp_Result) ProtoMessage() {} func (x *RankPvpSubmitResp_Result) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[41] 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 RankPvpSubmitResp_Result.ProtoReflect.Descriptor instead. func (*RankPvpSubmitResp_Result) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{25, 0} } func (x *RankPvpSubmitResp_Result) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *RankPvpSubmitResp_Result) GetUsername() string { if x != nil { return x.Username } return "" } func (x *RankPvpSubmitResp_Result) GetAvatar() string { if x != nil { return x.Avatar } return "" } func (x *RankPvpSubmitResp_Result) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *RankPvpSubmitResp_Result) GetTitle() int64 { if x != nil { return x.Title } return 0 } type RankPvpSubmitResp_Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankType vars.RankType `protobuf:"varint,1,opt,name=rankType,proto3,enum=pb.vars.RankType" json:"rankType,omitempty"` // 排行榜类型 Results []*RankPvpSubmitResp_Result `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` // 上榜玩家? } func (x *RankPvpSubmitResp_Item) Reset() { *x = RankPvpSubmitResp_Item{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankPvpSubmitResp_Item) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankPvpSubmitResp_Item) ProtoMessage() {} func (x *RankPvpSubmitResp_Item) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[42] 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 RankPvpSubmitResp_Item.ProtoReflect.Descriptor instead. func (*RankPvpSubmitResp_Item) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{25, 1} } func (x *RankPvpSubmitResp_Item) GetRankType() vars.RankType { if x != nil { return x.RankType } return vars.RankType(0) } func (x *RankPvpSubmitResp_Item) GetResults() []*RankPvpSubmitResp_Result { if x != nil { return x.Results } return nil } type UserRankResp_Item struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankType vars.RankType `protobuf:"varint,1,opt,name=rankType,proto3,enum=pb.vars.RankType" json:"rankType,omitempty"` // 排行类型 Pos int32 `protobuf:"varint,2,opt,name=pos,proto3" json:"pos,omitempty"` // 名次 Score int64 `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"` // 分数 } func (x *UserRankResp_Item) Reset() { *x = UserRankResp_Item{} if protoimpl.UnsafeEnabled { mi := &file_user_center_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRankResp_Item) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRankResp_Item) ProtoMessage() {} func (x *UserRankResp_Item) ProtoReflect() protoreflect.Message { mi := &file_user_center_proto_msgTypes[43] 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 UserRankResp_Item.ProtoReflect.Descriptor instead. func (*UserRankResp_Item) Descriptor() ([]byte, []int) { return file_user_center_proto_rawDescGZIP(), []int{27, 0} } func (x *UserRankResp_Item) GetRankType() vars.RankType { if x != nil { return x.RankType } return vars.RankType(0) } func (x *UserRankResp_Item) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *UserRankResp_Item) GetScore() int64 { if x != nil { return x.Score } return 0 } var File_user_center_proto protoreflect.FileDescriptor var file_user_center_proto_rawDesc = []byte{ 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x0f, 0x76, 0x61, 0x72, 0x73, 0x2f, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x73, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0xfd, 0x03, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x1a, 0x5b, 0x0a, 0x09, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x1a, 0x47, 0x0a, 0x09, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x6d, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x22, 0x8a, 0x02, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x73, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x22, 0x81, 0x02, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x48, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x22, 0xff, 0x03, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xc4, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22, 0xe6, 0x04, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x8b, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x4b, 0x65, 0x65, 0x70, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x64, 0x65, 0x55, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x72, 0x55, 0x70, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x72, 0x61, 0x64, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, 0x30, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x69, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x22, 0x70, 0x0a, 0x0c, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x55, 0x0a, 0x0f, 0x44, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x10, 0x44, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x56, 0x0a, 0x12, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x22, 0x47, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x22, 0xbe, 0x01, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5c, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x63, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb4, 0x02, 0x0a, 0x11, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x7e, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0x6d, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x76, 0x61, 0x72, 0x73, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x36, 0x0a, 0x08, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x57, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0x28, 0x0a, 0x08, 0x47, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x10, 0x01, 0x32, 0xe1, 0x08, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0e, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x79, 0x50, 0x55, 0x69, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x72, 0x61, 0x77, 0x47, 0x69, 0x66, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x09, 0x67, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x09, 0x67, 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x76, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_user_center_proto_rawDescOnce sync.Once file_user_center_proto_rawDescData = file_user_center_proto_rawDesc ) func file_user_center_proto_rawDescGZIP() []byte { file_user_center_proto_rawDescOnce.Do(func() { file_user_center_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_center_proto_rawDescData) }) return file_user_center_proto_rawDescData } var file_user_center_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_user_center_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_user_center_proto_goTypes = []interface{}{ (GiftType)(0), // 0: pb.GiftType (StatPvPReportResp_GradeResult)(0), // 1: pb.StatPvPReportResp.GradeResult (StatPvPReportResp_GradeReason)(0), // 2: pb.StatPvPReportResp.GradeReason (*Empty)(nil), // 3: pb.Empty (*Response)(nil), // 4: pb.Response (*PlatformUserReq)(nil), // 5: pb.PlatformUserReq (*PlatformUserResp)(nil), // 6: pb.PlatformUserResp (*UserDetailsResp)(nil), // 7: pb.UserDetailsResp (*UserIdReq)(nil), // 8: pb.UserIdReq (*UserIdResp)(nil), // 9: pb.UserIdResp (*GetUserCoinResp)(nil), // 10: pb.GetUserCoinResp (*ChangeCoinReq)(nil), // 11: pb.ChangeCoinReq (*TransferUserCoinReq)(nil), // 12: pb.TransferUserCoinReq (*TransferUserCoinResp)(nil), // 13: pb.TransferUserCoinResp (*UserCheckInResp)(nil), // 14: pb.UserCheckInResp (*UserSendGiftReq)(nil), // 15: pb.UserSendGiftReq (*UserBuyNobilityReq)(nil), // 16: pb.UserBuyNobilityReq (*Grade)(nil), // 17: pb.Grade (*UserGradeResp)(nil), // 18: pb.UserGradeResp (*StatPvPReportReq)(nil), // 19: pb.StatPvPReportReq (*StatPvPReportResp)(nil), // 20: pb.StatPvPReportResp (*GiftPackItem)(nil), // 21: pb.GiftPackItem (*DrawGiftPackReq)(nil), // 22: pb.DrawGiftPackReq (*DrawGiftPackResp)(nil), // 23: pb.DrawGiftPackResp (*IncreaseWelfareReq)(nil), // 24: pb.IncreaseWelfareReq (*RankPvpReq)(nil), // 25: pb.RankPvpReq (*RankPvpResp)(nil), // 26: pb.RankPvpResp (*RankPvpSubmitReq)(nil), // 27: pb.RankPvpSubmitReq (*RankPvpSubmitResp)(nil), // 28: pb.RankPvpSubmitResp (*UserRankReq)(nil), // 29: pb.UserRankReq (*UserRankResp)(nil), // 30: pb.UserRankResp (*EliteReq)(nil), // 31: pb.EliteReq (*GiveEliteReq)(nil), // 32: pb.GiveEliteReq (*BuyEliteResp)(nil), // 33: pb.BuyEliteResp (*GiveTitleReq)(nil), // 34: pb.GiveTitleReq (*BuyTitleResp)(nil), // 35: pb.BuyTitleResp (*ChangeEliteResp)(nil), // 36: pb.ChangeEliteResp (*TitleReq)(nil), // 37: pb.TitleReq (*ChangeTitleResp)(nil), // 38: pb.ChangeTitleResp (*UserDetailsResp_TitleItem)(nil), // 39: pb.UserDetailsResp.TitleItem (*UserDetailsResp_EliteItem)(nil), // 40: pb.UserDetailsResp.EliteItem (*StatPvPReportReq_Item)(nil), // 41: pb.StatPvPReportReq.Item (*StatPvPReportResp_Item)(nil), // 42: pb.StatPvPReportResp.Item (*RankPvpResp_Item)(nil), // 43: pb.RankPvpResp.Item (*RankPvpSubmitResp_Result)(nil), // 44: pb.RankPvpSubmitResp.Result (*RankPvpSubmitResp_Item)(nil), // 45: pb.RankPvpSubmitResp.Item (*UserRankResp_Item)(nil), // 46: pb.UserRankResp.Item (vars.UserCoinChangedReason)(0), // 47: pb.vars.UserCoinChangedReason (vars.RankType)(0), // 48: pb.vars.RankType } var file_user_center_proto_depIdxs = []int32{ 39, // 0: pb.UserDetailsResp.currentTitle:type_name -> pb.UserDetailsResp.TitleItem 40, // 1: pb.UserDetailsResp.currentElite:type_name -> pb.UserDetailsResp.EliteItem 39, // 2: pb.UserDetailsResp.titles:type_name -> pb.UserDetailsResp.TitleItem 40, // 3: pb.UserDetailsResp.elites:type_name -> pb.UserDetailsResp.EliteItem 47, // 4: pb.ChangeCoinReq.reason:type_name -> pb.vars.UserCoinChangedReason 17, // 5: pb.UserGradeResp.grade:type_name -> pb.Grade 41, // 6: pb.StatPvPReportReq.winItems:type_name -> pb.StatPvPReportReq.Item 41, // 7: pb.StatPvPReportReq.lostItems:type_name -> pb.StatPvPReportReq.Item 42, // 8: pb.StatPvPReportResp.winItems:type_name -> pb.StatPvPReportResp.Item 42, // 9: pb.StatPvPReportResp.lostItems:type_name -> pb.StatPvPReportResp.Item 21, // 10: pb.DrawGiftPackResp.item:type_name -> pb.GiftPackItem 48, // 11: pb.RankPvpReq.type:type_name -> pb.vars.RankType 48, // 12: pb.RankPvpResp.type:type_name -> pb.vars.RankType 43, // 13: pb.RankPvpResp.items:type_name -> pb.RankPvpResp.Item 48, // 14: pb.RankPvpSubmitReq.rankType:type_name -> pb.vars.RankType 45, // 15: pb.RankPvpSubmitResp.items:type_name -> pb.RankPvpSubmitResp.Item 48, // 16: pb.UserRankReq.rankType:type_name -> pb.vars.RankType 46, // 17: pb.UserRankResp.items:type_name -> pb.UserRankResp.Item 17, // 18: pb.StatPvPReportResp.Item.grade:type_name -> pb.Grade 1, // 19: pb.StatPvPReportResp.Item.gradeResult:type_name -> pb.StatPvPReportResp.GradeResult 2, // 20: pb.StatPvPReportResp.Item.gradeReason:type_name -> pb.StatPvPReportResp.GradeReason 48, // 21: pb.RankPvpSubmitResp.Item.rankType:type_name -> pb.vars.RankType 44, // 22: pb.RankPvpSubmitResp.Item.results:type_name -> pb.RankPvpSubmitResp.Result 48, // 23: pb.UserRankResp.Item.rankType:type_name -> pb.vars.RankType 5, // 24: pb.userCenter.retrievePlatformUser:input_type -> pb.PlatformUserReq 8, // 25: pb.userCenter.getUserDetails:input_type -> pb.UserIdReq 5, // 26: pb.userCenter.getUserIdByPUid:input_type -> pb.PlatformUserReq 8, // 27: pb.userCenter.userCheckIn:input_type -> pb.UserIdReq 11, // 28: pb.userCenter.changeCoin:input_type -> pb.ChangeCoinReq 8, // 29: pb.userCenter.getUserCoin:input_type -> pb.UserIdReq 12, // 30: pb.userCenter.transferUserCoin:input_type -> pb.TransferUserCoinReq 15, // 31: pb.userCenter.userSendGift:input_type -> pb.UserSendGiftReq 16, // 32: pb.userCenter.userBuyNobility:input_type -> pb.UserBuyNobilityReq 19, // 33: pb.userCenter.statPvpReport:input_type -> pb.StatPvPReportReq 22, // 34: pb.userCenter.drawGiftPack:input_type -> pb.DrawGiftPackReq 8, // 35: pb.userCenter.getUserGrade:input_type -> pb.UserIdReq 25, // 36: pb.userCenter.rankPvp:input_type -> pb.RankPvpReq 27, // 37: pb.userCenter.rankPvpSubmit:input_type -> pb.RankPvpSubmitReq 29, // 38: pb.userCenter.userRankPvp:input_type -> pb.UserRankReq 32, // 39: pb.userCenter.giveElite:input_type -> pb.GiveEliteReq 31, // 40: pb.userCenter.buyElite:input_type -> pb.EliteReq 34, // 41: pb.userCenter.giveTitle:input_type -> pb.GiveTitleReq 37, // 42: pb.userCenter.buyTitle:input_type -> pb.TitleReq 31, // 43: pb.userCenter.changeElite:input_type -> pb.EliteReq 37, // 44: pb.userCenter.changeTitle:input_type -> pb.TitleReq 6, // 45: pb.userCenter.retrievePlatformUser:output_type -> pb.PlatformUserResp 7, // 46: pb.userCenter.getUserDetails:output_type -> pb.UserDetailsResp 9, // 47: pb.userCenter.getUserIdByPUid:output_type -> pb.UserIdResp 14, // 48: pb.userCenter.userCheckIn:output_type -> pb.UserCheckInResp 3, // 49: pb.userCenter.changeCoin:output_type -> pb.Empty 10, // 50: pb.userCenter.getUserCoin:output_type -> pb.GetUserCoinResp 13, // 51: pb.userCenter.transferUserCoin:output_type -> pb.TransferUserCoinResp 3, // 52: pb.userCenter.userSendGift:output_type -> pb.Empty 3, // 53: pb.userCenter.userBuyNobility:output_type -> pb.Empty 20, // 54: pb.userCenter.statPvpReport:output_type -> pb.StatPvPReportResp 23, // 55: pb.userCenter.drawGiftPack:output_type -> pb.DrawGiftPackResp 18, // 56: pb.userCenter.getUserGrade:output_type -> pb.UserGradeResp 26, // 57: pb.userCenter.rankPvp:output_type -> pb.RankPvpResp 28, // 58: pb.userCenter.rankPvpSubmit:output_type -> pb.RankPvpSubmitResp 30, // 59: pb.userCenter.userRankPvp:output_type -> pb.UserRankResp 33, // 60: pb.userCenter.giveElite:output_type -> pb.BuyEliteResp 33, // 61: pb.userCenter.buyElite:output_type -> pb.BuyEliteResp 35, // 62: pb.userCenter.giveTitle:output_type -> pb.BuyTitleResp 35, // 63: pb.userCenter.buyTitle:output_type -> pb.BuyTitleResp 36, // 64: pb.userCenter.changeElite:output_type -> pb.ChangeEliteResp 38, // 65: pb.userCenter.changeTitle:output_type -> pb.ChangeTitleResp 45, // [45:66] is the sub-list for method output_type 24, // [24:45] is the sub-list for method input_type 24, // [24:24] is the sub-list for extension type_name 24, // [24:24] is the sub-list for extension extendee 0, // [0:24] is the sub-list for field type_name } func init() { file_user_center_proto_init() } func file_user_center_proto_init() { if File_user_center_proto != nil { return } if !protoimpl.UnsafeEnabled { file_user_center_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Empty); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Response); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlatformUserReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlatformUserResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserDetailsResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserIdReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserIdResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserCoinResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeCoinReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransferUserCoinReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransferUserCoinResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserCheckInResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserSendGiftReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserBuyNobilityReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Grade); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserGradeResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatPvPReportReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatPvPReportResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GiftPackItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DrawGiftPackReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DrawGiftPackResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IncreaseWelfareReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpSubmitReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpSubmitResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRankReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRankResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EliteReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GiveEliteReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuyEliteResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GiveTitleReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuyTitleResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeEliteResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TitleReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeTitleResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserDetailsResp_TitleItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserDetailsResp_EliteItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatPvPReportReq_Item); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatPvPReportResp_Item); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpResp_Item); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpSubmitResp_Result); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankPvpSubmitResp_Item); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_center_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRankResp_Item); 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{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_center_proto_rawDesc, NumEnums: 3, NumMessages: 44, NumExtensions: 0, NumServices: 1, }, GoTypes: file_user_center_proto_goTypes, DependencyIndexes: file_user_center_proto_depIdxs, EnumInfos: file_user_center_proto_enumTypes, MessageInfos: file_user_center_proto_msgTypes, }.Build() File_user_center_proto = out.File file_user_center_proto_rawDesc = nil file_user_center_proto_goTypes = nil file_user_center_proto_depIdxs = nil }