// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        v3.21.12
// source: user.proto

package pb

import (
	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 UpdateUserCountMapReq_CountType int32

const (
	UpdateUserCountMapReq_friendCount      UpdateUserCountMapReq_CountType = 0 // 好友数量
	UpdateUserCountMapReq_joinGroupCount   UpdateUserCountMapReq_CountType = 1 // 加入群数量
	UpdateUserCountMapReq_createGroupCount UpdateUserCountMapReq_CountType = 2 // 创建群数量
)

// Enum value maps for UpdateUserCountMapReq_CountType.
var (
	UpdateUserCountMapReq_CountType_name = map[int32]string{
		0: "friendCount",
		1: "joinGroupCount",
		2: "createGroupCount",
	}
	UpdateUserCountMapReq_CountType_value = map[string]int32{
		"friendCount":      0,
		"joinGroupCount":   1,
		"createGroupCount": 2,
	}
)

func (x UpdateUserCountMapReq_CountType) Enum() *UpdateUserCountMapReq_CountType {
	p := new(UpdateUserCountMapReq_CountType)
	*p = x
	return p
}

func (x UpdateUserCountMapReq_CountType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (UpdateUserCountMapReq_CountType) Descriptor() protoreflect.EnumDescriptor {
	return file_user_proto_enumTypes[0].Descriptor()
}

func (UpdateUserCountMapReq_CountType) Type() protoreflect.EnumType {
	return &file_user_proto_enumTypes[0]
}

func (x UpdateUserCountMapReq_CountType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use UpdateUserCountMapReq_CountType.Descriptor instead.
func (UpdateUserCountMapReq_CountType) EnumDescriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{16, 0}
}

type UpdateUserCountMapReq_Algorithm int32

const (
	UpdateUserCountMapReq_add   UpdateUserCountMapReq_Algorithm = 0 // 加
	UpdateUserCountMapReq_sub   UpdateUserCountMapReq_Algorithm = 1 // 减
	UpdateUserCountMapReq_fixed UpdateUserCountMapReq_Algorithm = 2 // 固定
)

// Enum value maps for UpdateUserCountMapReq_Algorithm.
var (
	UpdateUserCountMapReq_Algorithm_name = map[int32]string{
		0: "add",
		1: "sub",
		2: "fixed",
	}
	UpdateUserCountMapReq_Algorithm_value = map[string]int32{
		"add":   0,
		"sub":   1,
		"fixed": 2,
	}
)

func (x UpdateUserCountMapReq_Algorithm) Enum() *UpdateUserCountMapReq_Algorithm {
	p := new(UpdateUserCountMapReq_Algorithm)
	*p = x
	return p
}

func (x UpdateUserCountMapReq_Algorithm) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (UpdateUserCountMapReq_Algorithm) Descriptor() protoreflect.EnumDescriptor {
	return file_user_proto_enumTypes[1].Descriptor()
}

func (UpdateUserCountMapReq_Algorithm) Type() protoreflect.EnumType {
	return &file_user_proto_enumTypes[1]
}

func (x UpdateUserCountMapReq_Algorithm) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use UpdateUserCountMapReq_Algorithm.Descriptor instead.
func (UpdateUserCountMapReq_Algorithm) EnumDescriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{16, 1}
}

//UserRegisterReq 用户注册请求
type UserRegisterReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header       *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId       string            `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"`                                                                                                 // 用户id 唯一
	RegisterTime *int64            `protobuf:"varint,3,opt,name=registerTime,proto3,oneof" json:"registerTime"`                                                                              // 注册时间 13位时间戳 如果不传 默认为当前时间
	Nickname     *string           `protobuf:"bytes,4,opt,name=nickname,proto3,oneof" json:"nickname"`                                                                                       // 昵称
	Avatar       *string           `protobuf:"bytes,5,opt,name=avatar,proto3,oneof" json:"avatar"`                                                                                           // 头像url
	AccountMap   map[string]string `protobuf:"bytes,6,rep,name=accountMap,proto3" json:"accountMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 账号信息 你可以存放password、email、phone等等
	ProfileMap   map[string]string `protobuf:"bytes,7,rep,name=profileMap,proto3" json:"profileMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 个人信息 你可以存放性别、年龄、生日等等
	ExtraMap     map[string]string `protobuf:"bytes,8,rep,name=extraMap,proto3" json:"extraMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`     // 扩展信息 你可以存放等级、积分、金币等等
	VerifyMap    map[string]string `protobuf:"bytes,9,rep,name=verifyMap,proto3" json:"verifyMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`   // 验证信息 你可以存放smsCode、emailCode等等
}

func (x *UserRegisterReq) Reset() {
	*x = UserRegisterReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserRegisterReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserRegisterReq) ProtoMessage() {}

func (x *UserRegisterReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserRegisterReq.ProtoReflect.Descriptor instead.
func (*UserRegisterReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{0}
}

func (x *UserRegisterReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserRegisterReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *UserRegisterReq) GetRegisterTime() int64 {
	if x != nil && x.RegisterTime != nil {
		return *x.RegisterTime
	}
	return 0
}

func (x *UserRegisterReq) GetNickname() string {
	if x != nil && x.Nickname != nil {
		return *x.Nickname
	}
	return ""
}

func (x *UserRegisterReq) GetAvatar() string {
	if x != nil && x.Avatar != nil {
		return *x.Avatar
	}
	return ""
}

func (x *UserRegisterReq) GetAccountMap() map[string]string {
	if x != nil {
		return x.AccountMap
	}
	return nil
}

func (x *UserRegisterReq) GetProfileMap() map[string]string {
	if x != nil {
		return x.ProfileMap
	}
	return nil
}

func (x *UserRegisterReq) GetExtraMap() map[string]string {
	if x != nil {
		return x.ExtraMap
	}
	return nil
}

func (x *UserRegisterReq) GetVerifyMap() map[string]string {
	if x != nil {
		return x.VerifyMap
	}
	return nil
}

//UserRegisterResp 用户注册响应
type UserRegisterResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserRegisterResp) Reset() {
	*x = UserRegisterResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserRegisterResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserRegisterResp) ProtoMessage() {}

func (x *UserRegisterResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserRegisterResp.ProtoReflect.Descriptor instead.
func (*UserRegisterResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{1}
}

func (x *UserRegisterResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserDestroyReq 用户注销请求
type UserDestroyReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string         `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // // 用户id 唯一
}

func (x *UserDestroyReq) Reset() {
	*x = UserDestroyReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserDestroyReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserDestroyReq) ProtoMessage() {}

func (x *UserDestroyReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserDestroyReq.ProtoReflect.Descriptor instead.
func (*UserDestroyReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{2}
}

func (x *UserDestroyReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserDestroyReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

//UserDestroyResp 用户注销响应
type UserDestroyResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserDestroyResp) Reset() {
	*x = UserDestroyResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserDestroyResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserDestroyResp) ProtoMessage() {}

func (x *UserDestroyResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserDestroyResp.ProtoReflect.Descriptor instead.
func (*UserDestroyResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{3}
}

func (x *UserDestroyResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserAccessTokenReq 用户登录请求
type UserAccessTokenReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	AccountMap map[string]string `protobuf:"bytes,2,rep,name=accountMap,proto3" json:"accountMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 账号信息 你可以存放password、email、phone等等
	VerifyMap  map[string]string `protobuf:"bytes,3,rep,name=verifyMap,proto3" json:"verifyMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`   // 验证信息 你可以存放smsCode、emailCode等等
	ExpireTime *int64            `protobuf:"varint,4,opt,name=expireTime,proto3,oneof" json:"expireTime"`                                                                                  // 过期时间 13位时间戳
}

func (x *UserAccessTokenReq) Reset() {
	*x = UserAccessTokenReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAccessTokenReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAccessTokenReq) ProtoMessage() {}

func (x *UserAccessTokenReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAccessTokenReq.ProtoReflect.Descriptor instead.
func (*UserAccessTokenReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{4}
}

func (x *UserAccessTokenReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserAccessTokenReq) GetAccountMap() map[string]string {
	if x != nil {
		return x.AccountMap
	}
	return nil
}

func (x *UserAccessTokenReq) GetVerifyMap() map[string]string {
	if x != nil {
		return x.VerifyMap
	}
	return nil
}

func (x *UserAccessTokenReq) GetExpireTime() int64 {
	if x != nil && x.ExpireTime != nil {
		return *x.ExpireTime
	}
	return 0
}

//UserAccessTokenResp 用户登录响应
type UserAccessTokenResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header      *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId      string          `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"`           // 用户id 唯一
	AccessToken string          `protobuf:"bytes,3,opt,name=accessToken,proto3" json:"accessToken"` // 用户token
}

func (x *UserAccessTokenResp) Reset() {
	*x = UserAccessTokenResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAccessTokenResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAccessTokenResp) ProtoMessage() {}

func (x *UserAccessTokenResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAccessTokenResp.ProtoReflect.Descriptor instead.
func (*UserAccessTokenResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{5}
}

func (x *UserAccessTokenResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserAccessTokenResp) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *UserAccessTokenResp) GetAccessToken() string {
	if x != nil {
		return x.AccessToken
	}
	return ""
}

//RefreshUserAccessTokenReq 刷新用户token请求
type RefreshUserAccessTokenReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string         `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // 用户id 唯一
}

func (x *RefreshUserAccessTokenReq) Reset() {
	*x = RefreshUserAccessTokenReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshUserAccessTokenReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshUserAccessTokenReq) ProtoMessage() {}

func (x *RefreshUserAccessTokenReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 RefreshUserAccessTokenReq.ProtoReflect.Descriptor instead.
func (*RefreshUserAccessTokenReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{6}
}

func (x *RefreshUserAccessTokenReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *RefreshUserAccessTokenReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

//RefreshUserAccessTokenResp 刷新用户token响应
type RefreshUserAccessTokenResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *RefreshUserAccessTokenResp) Reset() {
	*x = RefreshUserAccessTokenResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshUserAccessTokenResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshUserAccessTokenResp) ProtoMessage() {}

func (x *RefreshUserAccessTokenResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 RefreshUserAccessTokenResp.ProtoReflect.Descriptor instead.
func (*RefreshUserAccessTokenResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{7}
}

func (x *RefreshUserAccessTokenResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//RevokeUserAccessTokenReq 注销用户token
type RevokeUserAccessTokenReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *RevokeUserAccessTokenReq) Reset() {
	*x = RevokeUserAccessTokenReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RevokeUserAccessTokenReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RevokeUserAccessTokenReq) ProtoMessage() {}

func (x *RevokeUserAccessTokenReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 RevokeUserAccessTokenReq.ProtoReflect.Descriptor instead.
func (*RevokeUserAccessTokenReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{8}
}

func (x *RevokeUserAccessTokenReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//RevokeUserAccessTokenResp 注销用户token
type RevokeUserAccessTokenResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *RevokeUserAccessTokenResp) Reset() {
	*x = RevokeUserAccessTokenResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RevokeUserAccessTokenResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RevokeUserAccessTokenResp) ProtoMessage() {}

func (x *RevokeUserAccessTokenResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 RevokeUserAccessTokenResp.ProtoReflect.Descriptor instead.
func (*RevokeUserAccessTokenResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{9}
}

func (x *RevokeUserAccessTokenResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UpdateUserAccountMapReq 更新用户账号信息请求
type UpdateUserAccountMapReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	AccountMap map[string]string `protobuf:"bytes,2,rep,name=accountMap,proto3" json:"accountMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 账号信息 你可以存放password、email、phone等等
	VerifyMap  map[string]string `protobuf:"bytes,3,rep,name=verifyMap,proto3" json:"verifyMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`   // 验证信息 你可以存放oldPassword、smsCode、emailCode等等
}

func (x *UpdateUserAccountMapReq) Reset() {
	*x = UpdateUserAccountMapReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserAccountMapReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserAccountMapReq) ProtoMessage() {}

func (x *UpdateUserAccountMapReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserAccountMapReq.ProtoReflect.Descriptor instead.
func (*UpdateUserAccountMapReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{10}
}

func (x *UpdateUserAccountMapReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateUserAccountMapReq) GetAccountMap() map[string]string {
	if x != nil {
		return x.AccountMap
	}
	return nil
}

func (x *UpdateUserAccountMapReq) GetVerifyMap() map[string]string {
	if x != nil {
		return x.VerifyMap
	}
	return nil
}

//UpdateUserAccountMapResp 更新用户账号信息响应
type UpdateUserAccountMapResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UpdateUserAccountMapResp) Reset() {
	*x = UpdateUserAccountMapResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserAccountMapResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserAccountMapResp) ProtoMessage() {}

func (x *UpdateUserAccountMapResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserAccountMapResp.ProtoReflect.Descriptor instead.
func (*UpdateUserAccountMapResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{11}
}

func (x *UpdateUserAccountMapResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UpdateUserProfileMapReq 更新用户个人信息请求
type UpdateUserProfileMapReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	ProfileMap map[string]string `protobuf:"bytes,2,rep,name=profileMap,proto3" json:"profileMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 个人信息 你可以存放性别、年龄、生日等等
}

func (x *UpdateUserProfileMapReq) Reset() {
	*x = UpdateUserProfileMapReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserProfileMapReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserProfileMapReq) ProtoMessage() {}

func (x *UpdateUserProfileMapReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserProfileMapReq.ProtoReflect.Descriptor instead.
func (*UpdateUserProfileMapReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{12}
}

func (x *UpdateUserProfileMapReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateUserProfileMapReq) GetProfileMap() map[string]string {
	if x != nil {
		return x.ProfileMap
	}
	return nil
}

//UpdateUserProfileMapResp 更新用户个人信息响应
type UpdateUserProfileMapResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UpdateUserProfileMapResp) Reset() {
	*x = UpdateUserProfileMapResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserProfileMapResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserProfileMapResp) ProtoMessage() {}

func (x *UpdateUserProfileMapResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserProfileMapResp.ProtoReflect.Descriptor instead.
func (*UpdateUserProfileMapResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{13}
}

func (x *UpdateUserProfileMapResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UpdateUserExtraMapReq 更新用户扩展信息请求
type UpdateUserExtraMapReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header   *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	ExtraMap map[string]string `protobuf:"bytes,2,rep,name=extraMap,proto3" json:"extraMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 扩展信息 你可以存放等级、积分、金币等等
}

func (x *UpdateUserExtraMapReq) Reset() {
	*x = UpdateUserExtraMapReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserExtraMapReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserExtraMapReq) ProtoMessage() {}

func (x *UpdateUserExtraMapReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserExtraMapReq.ProtoReflect.Descriptor instead.
func (*UpdateUserExtraMapReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{14}
}

func (x *UpdateUserExtraMapReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateUserExtraMapReq) GetExtraMap() map[string]string {
	if x != nil {
		return x.ExtraMap
	}
	return nil
}

//UpdateUserExtraMapResp 更新用户扩展信息响应
type UpdateUserExtraMapResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UpdateUserExtraMapResp) Reset() {
	*x = UpdateUserExtraMapResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserExtraMapResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserExtraMapResp) ProtoMessage() {}

func (x *UpdateUserExtraMapResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserExtraMapResp.ProtoReflect.Descriptor instead.
func (*UpdateUserExtraMapResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{15}
}

func (x *UpdateUserExtraMapResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UpdateUserCountMapReq 更新用户计数信息请求
type UpdateUserCountMapReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header    *RequestHeader                  `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	CountType UpdateUserCountMapReq_CountType `protobuf:"varint,2,opt,name=countType,proto3,enum=pb.UpdateUserCountMapReq_CountType" json:"countType"`
	Algorithm UpdateUserCountMapReq_Algorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=pb.UpdateUserCountMapReq_Algorithm" json:"algorithm"`
	Count     int64                           `protobuf:"varint,4,opt,name=count,proto3" json:"count"`
	//是否统计 统计后同步到数据库
	Statistics bool `protobuf:"varint,5,opt,name=statistics,proto3" json:"statistics"`
}

func (x *UpdateUserCountMapReq) Reset() {
	*x = UpdateUserCountMapReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserCountMapReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserCountMapReq) ProtoMessage() {}

func (x *UpdateUserCountMapReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserCountMapReq.ProtoReflect.Descriptor instead.
func (*UpdateUserCountMapReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{16}
}

func (x *UpdateUserCountMapReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpdateUserCountMapReq) GetCountType() UpdateUserCountMapReq_CountType {
	if x != nil {
		return x.CountType
	}
	return UpdateUserCountMapReq_friendCount
}

func (x *UpdateUserCountMapReq) GetAlgorithm() UpdateUserCountMapReq_Algorithm {
	if x != nil {
		return x.Algorithm
	}
	return UpdateUserCountMapReq_add
}

func (x *UpdateUserCountMapReq) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *UpdateUserCountMapReq) GetStatistics() bool {
	if x != nil {
		return x.Statistics
	}
	return false
}

//UpdateUserCountMapResp 更新用户计数信息响应
type UpdateUserCountMapResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UpdateUserCountMapResp) Reset() {
	*x = UpdateUserCountMapResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateUserCountMapResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateUserCountMapResp) ProtoMessage() {}

func (x *UpdateUserCountMapResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UpdateUserCountMapResp.ProtoReflect.Descriptor instead.
func (*UpdateUserCountMapResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{17}
}

func (x *UpdateUserCountMapResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//GetSelfUserInfoReq 获取自己的用户信息请求
type GetSelfUserInfoReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *GetSelfUserInfoReq) Reset() {
	*x = GetSelfUserInfoReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSelfUserInfoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSelfUserInfoReq) ProtoMessage() {}

func (x *GetSelfUserInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetSelfUserInfoReq.ProtoReflect.Descriptor instead.
func (*GetSelfUserInfoReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{18}
}

func (x *GetSelfUserInfoReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//GetSelfUserInfoResp 获取自己的用户信息响应
type GetSelfUserInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header       *ResponseHeader   `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId       string            `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"`                                                                                                 // 用户id 唯一
	RegisterTime *int64            `protobuf:"varint,3,opt,name=registerTime,proto3,oneof" json:"registerTime"`                                                                              // 注册时间 13位时间戳 如果不传 默认为当前时间
	Nickname     *string           `protobuf:"bytes,4,opt,name=nickname,proto3,oneof" json:"nickname"`                                                                                       // 昵称
	Avatar       *string           `protobuf:"bytes,5,opt,name=avatar,proto3,oneof" json:"avatar"`                                                                                           // 头像url
	AccountMap   map[string]string `protobuf:"bytes,6,rep,name=accountMap,proto3" json:"accountMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 账号信息 你可以存放password、email、phone等等
	ProfileMap   map[string]string `protobuf:"bytes,7,rep,name=profileMap,proto3" json:"profileMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 个人信息 你可以存放性别、年龄、生日等等
	ExtraMap     map[string]string `protobuf:"bytes,8,rep,name=extraMap,proto3" json:"extraMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`     // 扩展信息 你可以存放等级、积分、金币等等
}

func (x *GetSelfUserInfoResp) Reset() {
	*x = GetSelfUserInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSelfUserInfoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSelfUserInfoResp) ProtoMessage() {}

func (x *GetSelfUserInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetSelfUserInfoResp.ProtoReflect.Descriptor instead.
func (*GetSelfUserInfoResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{19}
}

func (x *GetSelfUserInfoResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetSelfUserInfoResp) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *GetSelfUserInfoResp) GetRegisterTime() int64 {
	if x != nil && x.RegisterTime != nil {
		return *x.RegisterTime
	}
	return 0
}

func (x *GetSelfUserInfoResp) GetNickname() string {
	if x != nil && x.Nickname != nil {
		return *x.Nickname
	}
	return ""
}

func (x *GetSelfUserInfoResp) GetAvatar() string {
	if x != nil && x.Avatar != nil {
		return *x.Avatar
	}
	return ""
}

func (x *GetSelfUserInfoResp) GetAccountMap() map[string]string {
	if x != nil {
		return x.AccountMap
	}
	return nil
}

func (x *GetSelfUserInfoResp) GetProfileMap() map[string]string {
	if x != nil {
		return x.ProfileMap
	}
	return nil
}

func (x *GetSelfUserInfoResp) GetExtraMap() map[string]string {
	if x != nil {
		return x.ExtraMap
	}
	return nil
}

//GetUserInfoReq 获取用户信息请求
type GetUserInfoReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string         `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // 用户id 唯一
}

func (x *GetUserInfoReq) Reset() {
	*x = GetUserInfoReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserInfoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserInfoReq) ProtoMessage() {}

func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetUserInfoReq.ProtoReflect.Descriptor instead.
func (*GetUserInfoReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{20}
}

func (x *GetUserInfoReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetUserInfoReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

//GetUserInfoResp 获取用户信息响应
type GetUserInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header       *ResponseHeader   `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId       string            `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"`                                                                                                 // 用户id 唯一
	RegisterTime *int64            `protobuf:"varint,3,opt,name=registerTime,proto3,oneof" json:"registerTime"`                                                                              // 注册时间 13位时间戳 如果不传 默认为当前时间
	Nickname     *string           `protobuf:"bytes,4,opt,name=nickname,proto3,oneof" json:"nickname"`                                                                                       // 昵称
	Avatar       *string           `protobuf:"bytes,5,opt,name=avatar,proto3,oneof" json:"avatar"`                                                                                           // 头像url
	ProfileMap   map[string]string `protobuf:"bytes,6,rep,name=profileMap,proto3" json:"profileMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 个人信息 你可以存放性别、年龄、生日等等
}

func (x *GetUserInfoResp) Reset() {
	*x = GetUserInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserInfoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserInfoResp) ProtoMessage() {}

func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetUserInfoResp.ProtoReflect.Descriptor instead.
func (*GetUserInfoResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{21}
}

func (x *GetUserInfoResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetUserInfoResp) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *GetUserInfoResp) GetRegisterTime() int64 {
	if x != nil && x.RegisterTime != nil {
		return *x.RegisterTime
	}
	return 0
}

func (x *GetUserInfoResp) GetNickname() string {
	if x != nil && x.Nickname != nil {
		return *x.Nickname
	}
	return ""
}

func (x *GetUserInfoResp) GetAvatar() string {
	if x != nil && x.Avatar != nil {
		return *x.Avatar
	}
	return ""
}

func (x *GetUserInfoResp) GetProfileMap() map[string]string {
	if x != nil {
		return x.ProfileMap
	}
	return nil
}

//ResetUserAccountMapReq 重置用户账号信息请求
type ResetUserAccountMapReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	AccountMap map[string]string `protobuf:"bytes,2,rep,name=accountMap,proto3" json:"accountMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 账号信息 你可以存放password、email、phone等等
	VerifyMap  map[string]string `protobuf:"bytes,3,rep,name=verifyMap,proto3" json:"verifyMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`   // 验证信息 你可以存放smsCode、emailCode等等
}

func (x *ResetUserAccountMapReq) Reset() {
	*x = ResetUserAccountMapReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResetUserAccountMapReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetUserAccountMapReq) ProtoMessage() {}

func (x *ResetUserAccountMapReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 ResetUserAccountMapReq.ProtoReflect.Descriptor instead.
func (*ResetUserAccountMapReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{22}
}

func (x *ResetUserAccountMapReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ResetUserAccountMapReq) GetAccountMap() map[string]string {
	if x != nil {
		return x.AccountMap
	}
	return nil
}

func (x *ResetUserAccountMapReq) GetVerifyMap() map[string]string {
	if x != nil {
		return x.VerifyMap
	}
	return nil
}

//ResetUserAccountMapResp 重置用户账号信息响应
type ResetUserAccountMapResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *ResetUserAccountMapResp) Reset() {
	*x = ResetUserAccountMapResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResetUserAccountMapResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetUserAccountMapResp) ProtoMessage() {}

func (x *ResetUserAccountMapResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 ResetUserAccountMapResp.ProtoReflect.Descriptor instead.
func (*ResetUserAccountMapResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{23}
}

func (x *ResetUserAccountMapResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserAfterOnlineReq 用户上线回调请求
type UserAfterOnlineReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserAfterOnlineReq) Reset() {
	*x = UserAfterOnlineReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAfterOnlineReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAfterOnlineReq) ProtoMessage() {}

func (x *UserAfterOnlineReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAfterOnlineReq.ProtoReflect.Descriptor instead.
func (*UserAfterOnlineReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{24}
}

func (x *UserAfterOnlineReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserAfterOnlineResp 用户上线回调响应
type UserAfterOnlineResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserAfterOnlineResp) Reset() {
	*x = UserAfterOnlineResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAfterOnlineResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAfterOnlineResp) ProtoMessage() {}

func (x *UserAfterOnlineResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAfterOnlineResp.ProtoReflect.Descriptor instead.
func (*UserAfterOnlineResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{25}
}

func (x *UserAfterOnlineResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserAfterOfflineReq 用户下线回调请求
type UserAfterOfflineReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string         `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // 用户id 唯一
}

func (x *UserAfterOfflineReq) Reset() {
	*x = UserAfterOfflineReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAfterOfflineReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAfterOfflineReq) ProtoMessage() {}

func (x *UserAfterOfflineReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAfterOfflineReq.ProtoReflect.Descriptor instead.
func (*UserAfterOfflineReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{26}
}

func (x *UserAfterOfflineReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserAfterOfflineReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

//UserAfterOfflineResp 用户下线回调响应
type UserAfterOfflineResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserAfterOfflineResp) Reset() {
	*x = UserAfterOfflineResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAfterOfflineResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAfterOfflineResp) ProtoMessage() {}

func (x *UserAfterOfflineResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAfterOfflineResp.ProtoReflect.Descriptor instead.
func (*UserAfterOfflineResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{27}
}

func (x *UserAfterOfflineResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserBeforeConnectReq 服务端连接前的回调
type UserBeforeConnectReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string         `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // 用户id 唯一
	Token  string         `protobuf:"bytes,3,opt,name=token,proto3" json:"token"`   // 用户token
}

func (x *UserBeforeConnectReq) Reset() {
	*x = UserBeforeConnectReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserBeforeConnectReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserBeforeConnectReq) ProtoMessage() {}

func (x *UserBeforeConnectReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserBeforeConnectReq.ProtoReflect.Descriptor instead.
func (*UserBeforeConnectReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{28}
}

func (x *UserBeforeConnectReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserBeforeConnectReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *UserBeforeConnectReq) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

//UserBeforeConnectResp 服务端连接前的回调
type UserBeforeConnectResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	// 是否允许建立连接
	Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success"`
	// 如果不允许建立连接，返回的错误码
	CloseCode WebsocketCustomCloseCode `protobuf:"varint,3,opt,name=closeCode,proto3,enum=pb.WebsocketCustomCloseCode" json:"closeCode"`
	// 如果不允许建立连接，返回的错误信息
	CloseReason string `protobuf:"bytes,4,opt,name=closeReason,proto3" json:"closeReason"`
	UserId      string `protobuf:"bytes,5,opt,name=userId,proto3" json:"userId"` // 成功的话返回用户id
}

func (x *UserBeforeConnectResp) Reset() {
	*x = UserBeforeConnectResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserBeforeConnectResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserBeforeConnectResp) ProtoMessage() {}

func (x *UserBeforeConnectResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserBeforeConnectResp.ProtoReflect.Descriptor instead.
func (*UserBeforeConnectResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{29}
}

func (x *UserBeforeConnectResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserBeforeConnectResp) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *UserBeforeConnectResp) GetCloseCode() WebsocketCustomCloseCode {
	if x != nil {
		return x.CloseCode
	}
	return WebsocketCustomCloseCode_CloseCodeZero
}

func (x *UserBeforeConnectResp) GetCloseReason() string {
	if x != nil {
		return x.CloseReason
	}
	return ""
}

func (x *UserBeforeConnectResp) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

//UserBeforeRequestReq 用户请求前的回调请求
type UserBeforeRequestReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	Path   string         `protobuf:"bytes,2,opt,name=path,proto3" json:"path"` // 请求路径
}

func (x *UserBeforeRequestReq) Reset() {
	*x = UserBeforeRequestReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserBeforeRequestReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserBeforeRequestReq) ProtoMessage() {}

func (x *UserBeforeRequestReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserBeforeRequestReq.ProtoReflect.Descriptor instead.
func (*UserBeforeRequestReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{30}
}

func (x *UserBeforeRequestReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserBeforeRequestReq) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

//UserBeforeRequestResp 用户请求前的回调响应
type UserBeforeRequestResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string          `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // 用户id
}

func (x *UserBeforeRequestResp) Reset() {
	*x = UserBeforeRequestResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserBeforeRequestResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserBeforeRequestResp) ProtoMessage() {}

func (x *UserBeforeRequestResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserBeforeRequestResp.ProtoReflect.Descriptor instead.
func (*UserBeforeRequestResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{31}
}

func (x *UserBeforeRequestResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UserBeforeRequestResp) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

//UserAfterKeepAliveReq 用户保活回调请求
type UserAfterKeepAliveReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserAfterKeepAliveReq) Reset() {
	*x = UserAfterKeepAliveReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAfterKeepAliveReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAfterKeepAliveReq) ProtoMessage() {}

func (x *UserAfterKeepAliveReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAfterKeepAliveReq.ProtoReflect.Descriptor instead.
func (*UserAfterKeepAliveReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{32}
}

func (x *UserAfterKeepAliveReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserAfterKeepAliveResp 用户保活回调响应
type UserAfterKeepAliveResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UserAfterKeepAliveResp) Reset() {
	*x = UserAfterKeepAliveResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserAfterKeepAliveResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserAfterKeepAliveResp) ProtoMessage() {}

func (x *UserAfterKeepAliveResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 UserAfterKeepAliveResp.ProtoReflect.Descriptor instead.
func (*UserAfterKeepAliveResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{33}
}

func (x *UserAfterKeepAliveResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//CreateRobotReq 创建机器人请求
type CreateRobotReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header   *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	RobotId  string         `protobuf:"bytes,2,opt,name=robotId,proto3" json:"robotId"`         // 机器人id 唯一
	Nickname *string        `protobuf:"bytes,3,opt,name=nickname,proto3,oneof" json:"nickname"` // 昵称
	Avatar   *string        `protobuf:"bytes,4,opt,name=avatar,proto3,oneof" json:"avatar"`     // 头像url
}

func (x *CreateRobotReq) Reset() {
	*x = CreateRobotReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRobotReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRobotReq) ProtoMessage() {}

func (x *CreateRobotReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 CreateRobotReq.ProtoReflect.Descriptor instead.
func (*CreateRobotReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{34}
}

func (x *CreateRobotReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *CreateRobotReq) GetRobotId() string {
	if x != nil {
		return x.RobotId
	}
	return ""
}

func (x *CreateRobotReq) GetNickname() string {
	if x != nil && x.Nickname != nil {
		return *x.Nickname
	}
	return ""
}

func (x *CreateRobotReq) GetAvatar() string {
	if x != nil && x.Avatar != nil {
		return *x.Avatar
	}
	return ""
}

//CreateRobotResp 创建机器人响应
type CreateRobotResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header      *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	AccessToken string          `protobuf:"bytes,2,opt,name=accessToken,proto3" json:"accessToken"` // 机器人token
}

func (x *CreateRobotResp) Reset() {
	*x = CreateRobotResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRobotResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRobotResp) ProtoMessage() {}

func (x *CreateRobotResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 CreateRobotResp.ProtoReflect.Descriptor instead.
func (*CreateRobotResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{35}
}

func (x *CreateRobotResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *CreateRobotResp) GetAccessToken() string {
	if x != nil {
		return x.AccessToken
	}
	return ""
}

//GetUserModelReq 获取用户模型请求
type GetUserModelByIdReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader           `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string                   `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` // 用户id 唯一
	Opt    *GetUserModelByIdReq_Opt `protobuf:"bytes,3,opt,name=opt,proto3,oneof" json:"opt"`
}

func (x *GetUserModelByIdReq) Reset() {
	*x = GetUserModelByIdReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserModelByIdReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserModelByIdReq) ProtoMessage() {}

func (x *GetUserModelByIdReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetUserModelByIdReq.ProtoReflect.Descriptor instead.
func (*GetUserModelByIdReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{36}
}

func (x *GetUserModelByIdReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetUserModelByIdReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *GetUserModelByIdReq) GetOpt() *GetUserModelByIdReq_Opt {
	if x != nil {
		return x.Opt
	}
	return nil
}

//GetUserModelByIdResp 获取用户模型响应
type GetUserModelByIdResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header           *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserModelJson    []byte          `protobuf:"bytes,2,opt,name=userModelJson,proto3" json:"userModelJson"`       // 用户模型json
	UserSettingsJson []byte          `protobuf:"bytes,3,opt,name=userSettingsJson,proto3" json:"userSettingsJson"` // 用户设置json 他是map[string]usermodel.UserSetting的json
}

func (x *GetUserModelByIdResp) Reset() {
	*x = GetUserModelByIdResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserModelByIdResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserModelByIdResp) ProtoMessage() {}

func (x *GetUserModelByIdResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetUserModelByIdResp.ProtoReflect.Descriptor instead.
func (*GetUserModelByIdResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{37}
}

func (x *GetUserModelByIdResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetUserModelByIdResp) GetUserModelJson() []byte {
	if x != nil {
		return x.UserModelJson
	}
	return nil
}

func (x *GetUserModelByIdResp) GetUserSettingsJson() []byte {
	if x != nil {
		return x.UserSettingsJson
	}
	return nil
}

//GetUserModelByIdsReq 批量获取用户模型请求
type GetUserModelByIdsReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header  *RequestHeader            `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserIds []string                  `protobuf:"bytes,2,rep,name=userIds,proto3" json:"userIds"` // 用户id列表
	Opt     *GetUserModelByIdsReq_Opt `protobuf:"bytes,3,opt,name=opt,proto3,oneof" json:"opt"`
}

func (x *GetUserModelByIdsReq) Reset() {
	*x = GetUserModelByIdsReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserModelByIdsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserModelByIdsReq) ProtoMessage() {}

func (x *GetUserModelByIdsReq) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetUserModelByIdsReq.ProtoReflect.Descriptor instead.
func (*GetUserModelByIdsReq) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{38}
}

func (x *GetUserModelByIdsReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetUserModelByIdsReq) GetUserIds() []string {
	if x != nil {
		return x.UserIds
	}
	return nil
}

func (x *GetUserModelByIdsReq) GetOpt() *GetUserModelByIdsReq_Opt {
	if x != nil {
		return x.Opt
	}
	return nil
}

//GetUserModelByIdsResp 批量获取用户模型响应
type GetUserModelByIdsResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header            *ResponseHeader   `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserModelJsons    map[string][]byte `protobuf:"bytes,2,rep,name=userModelJsons,proto3" json:"userModelJsons" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`       // 用户模型json列表
	UserSettingsJsons map[string][]byte `protobuf:"bytes,3,rep,name=userSettingsJsons,proto3" json:"userSettingsJsons" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 用户设置json列表 value是map[string]usermodel.UserSetting的json
}

func (x *GetUserModelByIdsResp) Reset() {
	*x = GetUserModelByIdsResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserModelByIdsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserModelByIdsResp) ProtoMessage() {}

func (x *GetUserModelByIdsResp) ProtoReflect() protoreflect.Message {
	mi := &file_user_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 GetUserModelByIdsResp.ProtoReflect.Descriptor instead.
func (*GetUserModelByIdsResp) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{39}
}

func (x *GetUserModelByIdsResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GetUserModelByIdsResp) GetUserModelJsons() map[string][]byte {
	if x != nil {
		return x.UserModelJsons
	}
	return nil
}

func (x *GetUserModelByIdsResp) GetUserSettingsJsons() map[string][]byte {
	if x != nil {
		return x.UserSettingsJsons
	}
	return nil
}

type GetUserModelByIdReq_Opt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 是否携带用户设置列表
	WithUserSettings bool     `protobuf:"varint,1,opt,name=withUserSettings,proto3" json:"withUserSettings"`
	UserSettingKeys  []string `protobuf:"bytes,2,rep,name=userSettingKeys,proto3" json:"userSettingKeys"` // 用户设置key列表 如果withUserSettings为false 则该字段无效
}

func (x *GetUserModelByIdReq_Opt) Reset() {
	*x = GetUserModelByIdReq_Opt{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserModelByIdReq_Opt) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserModelByIdReq_Opt) ProtoMessage() {}

func (x *GetUserModelByIdReq_Opt) ProtoReflect() protoreflect.Message {
	mi := &file_user_proto_msgTypes[56]
	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 GetUserModelByIdReq_Opt.ProtoReflect.Descriptor instead.
func (*GetUserModelByIdReq_Opt) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{36, 0}
}

func (x *GetUserModelByIdReq_Opt) GetWithUserSettings() bool {
	if x != nil {
		return x.WithUserSettings
	}
	return false
}

func (x *GetUserModelByIdReq_Opt) GetUserSettingKeys() []string {
	if x != nil {
		return x.UserSettingKeys
	}
	return nil
}

type GetUserModelByIdsReq_Opt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 是否携带用户设置列表
	WithUserSettings bool     `protobuf:"varint,1,opt,name=withUserSettings,proto3" json:"withUserSettings"`
	UserSettingKeys  []string `protobuf:"bytes,2,rep,name=userSettingKeys,proto3" json:"userSettingKeys"` // 用户设置key列表 如果withUserSettings为false 则该字段无效
}

func (x *GetUserModelByIdsReq_Opt) Reset() {
	*x = GetUserModelByIdsReq_Opt{}
	if protoimpl.UnsafeEnabled {
		mi := &file_user_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserModelByIdsReq_Opt) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserModelByIdsReq_Opt) ProtoMessage() {}

func (x *GetUserModelByIdsReq_Opt) ProtoReflect() protoreflect.Message {
	mi := &file_user_proto_msgTypes[57]
	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 GetUserModelByIdsReq_Opt.ProtoReflect.Descriptor instead.
func (*GetUserModelByIdsReq_Opt) Descriptor() ([]byte, []int) {
	return file_user_proto_rawDescGZIP(), []int{38, 0}
}

func (x *GetUserModelByIdsReq_Opt) GetWithUserSettings() bool {
	if x != nil {
		return x.WithUserSettings
	}
	return false
}

func (x *GetUserModelByIdsReq_Opt) GetUserSettingKeys() []string {
	if x != nil {
		return x.UserSettingKeys
	}
	return nil
}

var File_user_proto protoreflect.FileDescriptor

var file_user_proto_rawDesc = []byte{
	0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62,
	0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe8,
	0x05, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f,
	0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12,
	0x1b, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x02, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0a,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61,
	0x70, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x18,
	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d,
	0x61, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x45, 0x78,
	0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x78, 0x74,
	0x72, 0x61, 0x4d, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d,
	0x61, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x56, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x76, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61,
	0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d,
	0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09,
	0x0a, 0x07, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x3e, 0x0a, 0x10, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x0e, 0x55, 0x73, 0x65,
	0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d,
	0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfd, 0x02,
	0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
	0x46, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x43, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66,
	0x79, 0x4d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x62, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52,
	0x65, 0x71, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x12, 0x23, 0x0a, 0x0a,
	0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
	0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01,
	0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d,
	0x0a, 0x0b, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7b, 0x0a,
	0x13, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5e, 0x0a, 0x19, 0x52, 0x65,
	0x66, 0x72, 0x65, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x1a, 0x52, 0x65,
	0x66, 0x72, 0x65, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x22, 0x45, 0x0a, 0x18, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71,
	0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x47, 0x0a, 0x19, 0x52,
	0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x22, 0xd8, 0x02, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55,
	0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71,
	0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0a, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x2e, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x48, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x69,
	0x66, 0x79, 0x4d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d,
	0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d,
	0x61, 0x70, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0x46, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xd0, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70,
	0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4b,
	0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73,
	0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x2e,
	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x1a, 0x3d, 0x0a, 0x0f, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x18, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d,
	0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x22, 0xc4, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65,
	0x72, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70,
	0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61,
	0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61,
	0x70, 0x52, 0x65, 0x71, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d,
	0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x44, 0x0a, 0x16, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22,
	0xf0, 0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52,
	0x65, 0x71, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72,
	0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d,
	0x61, 0x70, 0x52, 0x65, 0x71, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52,
	0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73,
	0x22, 0x46, 0x0a, 0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a,
	0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x00, 0x12, 0x12,
	0x0a, 0x0e, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x22, 0x28, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f,
	0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x64, 0x64, 0x10, 0x00, 0x12, 0x07,
	0x0a, 0x03, 0x73, 0x75, 0x62, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64,
	0x10, 0x02, 0x22, 0x44, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70,
	0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53,
	0x65, 0x6c, 0x66, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x29,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xf9, 0x04, 0x0a, 0x13, 0x47, 0x65,
	0x74, 0x53, 0x65, 0x6c, 0x66, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f,
	0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x01, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12,
	0x1b, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x02, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0a,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x4d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x47,
	0x65, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
	0x73, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x41,
	0x0a, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d,
	0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61,
	0x70, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
	0x3b, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d,
	0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a,
	0x09, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61,
	0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xe9, 0x02, 0x0a, 0x0f, 0x47,
	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52,
	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06,
	0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06,
	0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e,
	0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
	0x73, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x1a, 0x3d,
	0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a,
	0x0d, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0b,
	0x0a, 0x09, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f,
	0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0xd5, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x65, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65,
	0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0a,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x2e, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x69,
	0x66, 0x79, 0x4d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61,
	0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61,
	0x70, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x45,
	0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3f, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74,
	0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x41, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66,
	0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x58, 0x0a, 0x13, 0x55, 0x73, 0x65,
	0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71,
	0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
	0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72,
	0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x6f, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x42,
	0x65, 0x66, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12,
	0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd3, 0x01, 0x0a, 0x15, 0x55, 0x73, 0x65,
	0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18,
	0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x73,
	0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x62,
	0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x63, 0x6c, 0x6f, 0x73, 0x65,
	0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65,
	0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55,
	0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x5b, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x42, 0x65, 0x66,
	0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x64, 0x22, 0x42, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4b,
	0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66,
	0x74, 0x65, 0x72, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xab, 0x01, 0x0a,
	0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x12,
	0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f,
	0x62, 0x6f, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x62,
	0x6f, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61,
	0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88,
	0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x42,
	0x09, 0x0a, 0x07, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x5f, 0x0a, 0x0f, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf1, 0x01, 0x0a, 0x13,
	0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64,
	0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16,
	0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x03, 0x6f, 0x70, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x70, 0x74,
	0x48, 0x00, 0x52, 0x03, 0x6f, 0x70, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x5b, 0x0a, 0x03, 0x4f, 0x70,
	0x74, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x77, 0x69, 0x74,
	0x68, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x28, 0x0a,
	0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x70, 0x74, 0x22,
	0x94, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
	0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65,
	0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x75, 0x73, 0x65,
	0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x73,
	0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
	0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12,
	0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65,
	0x72, 0x49, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x6f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f,
	0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x70, 0x74, 0x48,
	0x00, 0x52, 0x03, 0x6f, 0x70, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x5b, 0x0a, 0x03, 0x4f, 0x70, 0x74,
	0x12, 0x2a, 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68,
	0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f,
	0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x70, 0x74, 0x22, 0x83,
	0x03, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42,
	0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65,
	0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70,
	0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79,
	0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65,
	0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x75, 0x73, 0x65,
	0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x11, 0x75,
	0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73,
	0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65,
	0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44,
	0x0a, 0x16, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73,
	0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x32, 0xd1, 0x04, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70,
	0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f,
	0x79, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72,
	0x6f, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44,
	0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0f, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x2e,
	0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57,
	0x0a, 0x16, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x66, 0x72, 0x65, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x66,
	0x72, 0x65, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x15, 0x52, 0x65, 0x76, 0x6f, 0x6b,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1d,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63,
	0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a,
	0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52,
	0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x4e, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70,
	0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x36, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12,
	0x12, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74,
	0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
	0x6f, 0x62, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x32, 0x87, 0x04, 0x0a, 0x0b, 0x69, 0x6e, 0x66,
	0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70,
	0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e,
	0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x12, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61,
	0x70, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65,
	0x72, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70,
	0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x74, 0x72,
	0x61, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x19,
	0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61,
	0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x66,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65,
	0x74, 0x53, 0x65, 0x6c, 0x66, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71,
	0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x47, 0x65, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65,
	0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70,
	0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65,
	0x6c, 0x42, 0x79, 0x49, 0x64, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x18,
	0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
	0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x73, 0x12, 0x18, 0x2e,
	0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42,
	0x79, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x64, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x32, 0xfd, 0x02, 0x0a, 0x0f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66,
	0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65,
	0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72,
	0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x10, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x17,
	0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66,
	0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65,
	0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x48, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x43,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65,
	0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x11, 0x55,
	0x73, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e,
	0x55, 0x73, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74,
	0x65, 0x72, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c,
	0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x41, 0x66, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_user_proto_rawDescOnce sync.Once
	file_user_proto_rawDescData = file_user_proto_rawDesc
)

func file_user_proto_rawDescGZIP() []byte {
	file_user_proto_rawDescOnce.Do(func() {
		file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData)
	})
	return file_user_proto_rawDescData
}

var file_user_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 60)
var file_user_proto_goTypes = []interface{}{
	(UpdateUserCountMapReq_CountType)(0), // 0: pb.UpdateUserCountMapReq.CountType
	(UpdateUserCountMapReq_Algorithm)(0), // 1: pb.UpdateUserCountMapReq.Algorithm
	(*UserRegisterReq)(nil),              // 2: pb.UserRegisterReq
	(*UserRegisterResp)(nil),             // 3: pb.UserRegisterResp
	(*UserDestroyReq)(nil),               // 4: pb.UserDestroyReq
	(*UserDestroyResp)(nil),              // 5: pb.UserDestroyResp
	(*UserAccessTokenReq)(nil),           // 6: pb.UserAccessTokenReq
	(*UserAccessTokenResp)(nil),          // 7: pb.UserAccessTokenResp
	(*RefreshUserAccessTokenReq)(nil),    // 8: pb.RefreshUserAccessTokenReq
	(*RefreshUserAccessTokenResp)(nil),   // 9: pb.RefreshUserAccessTokenResp
	(*RevokeUserAccessTokenReq)(nil),     // 10: pb.RevokeUserAccessTokenReq
	(*RevokeUserAccessTokenResp)(nil),    // 11: pb.RevokeUserAccessTokenResp
	(*UpdateUserAccountMapReq)(nil),      // 12: pb.UpdateUserAccountMapReq
	(*UpdateUserAccountMapResp)(nil),     // 13: pb.UpdateUserAccountMapResp
	(*UpdateUserProfileMapReq)(nil),      // 14: pb.UpdateUserProfileMapReq
	(*UpdateUserProfileMapResp)(nil),     // 15: pb.UpdateUserProfileMapResp
	(*UpdateUserExtraMapReq)(nil),        // 16: pb.UpdateUserExtraMapReq
	(*UpdateUserExtraMapResp)(nil),       // 17: pb.UpdateUserExtraMapResp
	(*UpdateUserCountMapReq)(nil),        // 18: pb.UpdateUserCountMapReq
	(*UpdateUserCountMapResp)(nil),       // 19: pb.UpdateUserCountMapResp
	(*GetSelfUserInfoReq)(nil),           // 20: pb.GetSelfUserInfoReq
	(*GetSelfUserInfoResp)(nil),          // 21: pb.GetSelfUserInfoResp
	(*GetUserInfoReq)(nil),               // 22: pb.GetUserInfoReq
	(*GetUserInfoResp)(nil),              // 23: pb.GetUserInfoResp
	(*ResetUserAccountMapReq)(nil),       // 24: pb.ResetUserAccountMapReq
	(*ResetUserAccountMapResp)(nil),      // 25: pb.ResetUserAccountMapResp
	(*UserAfterOnlineReq)(nil),           // 26: pb.UserAfterOnlineReq
	(*UserAfterOnlineResp)(nil),          // 27: pb.UserAfterOnlineResp
	(*UserAfterOfflineReq)(nil),          // 28: pb.UserAfterOfflineReq
	(*UserAfterOfflineResp)(nil),         // 29: pb.UserAfterOfflineResp
	(*UserBeforeConnectReq)(nil),         // 30: pb.UserBeforeConnectReq
	(*UserBeforeConnectResp)(nil),        // 31: pb.UserBeforeConnectResp
	(*UserBeforeRequestReq)(nil),         // 32: pb.UserBeforeRequestReq
	(*UserBeforeRequestResp)(nil),        // 33: pb.UserBeforeRequestResp
	(*UserAfterKeepAliveReq)(nil),        // 34: pb.UserAfterKeepAliveReq
	(*UserAfterKeepAliveResp)(nil),       // 35: pb.UserAfterKeepAliveResp
	(*CreateRobotReq)(nil),               // 36: pb.CreateRobotReq
	(*CreateRobotResp)(nil),              // 37: pb.CreateRobotResp
	(*GetUserModelByIdReq)(nil),          // 38: pb.GetUserModelByIdReq
	(*GetUserModelByIdResp)(nil),         // 39: pb.GetUserModelByIdResp
	(*GetUserModelByIdsReq)(nil),         // 40: pb.GetUserModelByIdsReq
	(*GetUserModelByIdsResp)(nil),        // 41: pb.GetUserModelByIdsResp
	nil,                                  // 42: pb.UserRegisterReq.AccountMapEntry
	nil,                                  // 43: pb.UserRegisterReq.ProfileMapEntry
	nil,                                  // 44: pb.UserRegisterReq.ExtraMapEntry
	nil,                                  // 45: pb.UserRegisterReq.VerifyMapEntry
	nil,                                  // 46: pb.UserAccessTokenReq.AccountMapEntry
	nil,                                  // 47: pb.UserAccessTokenReq.VerifyMapEntry
	nil,                                  // 48: pb.UpdateUserAccountMapReq.AccountMapEntry
	nil,                                  // 49: pb.UpdateUserAccountMapReq.VerifyMapEntry
	nil,                                  // 50: pb.UpdateUserProfileMapReq.ProfileMapEntry
	nil,                                  // 51: pb.UpdateUserExtraMapReq.ExtraMapEntry
	nil,                                  // 52: pb.GetSelfUserInfoResp.AccountMapEntry
	nil,                                  // 53: pb.GetSelfUserInfoResp.ProfileMapEntry
	nil,                                  // 54: pb.GetSelfUserInfoResp.ExtraMapEntry
	nil,                                  // 55: pb.GetUserInfoResp.ProfileMapEntry
	nil,                                  // 56: pb.ResetUserAccountMapReq.AccountMapEntry
	nil,                                  // 57: pb.ResetUserAccountMapReq.VerifyMapEntry
	(*GetUserModelByIdReq_Opt)(nil),      // 58: pb.GetUserModelByIdReq.Opt
	(*GetUserModelByIdsReq_Opt)(nil),     // 59: pb.GetUserModelByIdsReq.Opt
	nil,                                  // 60: pb.GetUserModelByIdsResp.UserModelJsonsEntry
	nil,                                  // 61: pb.GetUserModelByIdsResp.UserSettingsJsonsEntry
	(*RequestHeader)(nil),                // 62: pb.RequestHeader
	(*ResponseHeader)(nil),               // 63: pb.ResponseHeader
	(WebsocketCustomCloseCode)(0),        // 64: pb.WebsocketCustomCloseCode
}
var file_user_proto_depIdxs = []int32{
	62, // 0: pb.UserRegisterReq.header:type_name -> pb.RequestHeader
	42, // 1: pb.UserRegisterReq.accountMap:type_name -> pb.UserRegisterReq.AccountMapEntry
	43, // 2: pb.UserRegisterReq.profileMap:type_name -> pb.UserRegisterReq.ProfileMapEntry
	44, // 3: pb.UserRegisterReq.extraMap:type_name -> pb.UserRegisterReq.ExtraMapEntry
	45, // 4: pb.UserRegisterReq.verifyMap:type_name -> pb.UserRegisterReq.VerifyMapEntry
	63, // 5: pb.UserRegisterResp.header:type_name -> pb.ResponseHeader
	62, // 6: pb.UserDestroyReq.header:type_name -> pb.RequestHeader
	63, // 7: pb.UserDestroyResp.header:type_name -> pb.ResponseHeader
	62, // 8: pb.UserAccessTokenReq.header:type_name -> pb.RequestHeader
	46, // 9: pb.UserAccessTokenReq.accountMap:type_name -> pb.UserAccessTokenReq.AccountMapEntry
	47, // 10: pb.UserAccessTokenReq.verifyMap:type_name -> pb.UserAccessTokenReq.VerifyMapEntry
	63, // 11: pb.UserAccessTokenResp.header:type_name -> pb.ResponseHeader
	62, // 12: pb.RefreshUserAccessTokenReq.header:type_name -> pb.RequestHeader
	63, // 13: pb.RefreshUserAccessTokenResp.header:type_name -> pb.ResponseHeader
	62, // 14: pb.RevokeUserAccessTokenReq.header:type_name -> pb.RequestHeader
	63, // 15: pb.RevokeUserAccessTokenResp.header:type_name -> pb.ResponseHeader
	62, // 16: pb.UpdateUserAccountMapReq.header:type_name -> pb.RequestHeader
	48, // 17: pb.UpdateUserAccountMapReq.accountMap:type_name -> pb.UpdateUserAccountMapReq.AccountMapEntry
	49, // 18: pb.UpdateUserAccountMapReq.verifyMap:type_name -> pb.UpdateUserAccountMapReq.VerifyMapEntry
	63, // 19: pb.UpdateUserAccountMapResp.header:type_name -> pb.ResponseHeader
	62, // 20: pb.UpdateUserProfileMapReq.header:type_name -> pb.RequestHeader
	50, // 21: pb.UpdateUserProfileMapReq.profileMap:type_name -> pb.UpdateUserProfileMapReq.ProfileMapEntry
	63, // 22: pb.UpdateUserProfileMapResp.header:type_name -> pb.ResponseHeader
	62, // 23: pb.UpdateUserExtraMapReq.header:type_name -> pb.RequestHeader
	51, // 24: pb.UpdateUserExtraMapReq.extraMap:type_name -> pb.UpdateUserExtraMapReq.ExtraMapEntry
	63, // 25: pb.UpdateUserExtraMapResp.header:type_name -> pb.ResponseHeader
	62, // 26: pb.UpdateUserCountMapReq.header:type_name -> pb.RequestHeader
	0,  // 27: pb.UpdateUserCountMapReq.countType:type_name -> pb.UpdateUserCountMapReq.CountType
	1,  // 28: pb.UpdateUserCountMapReq.algorithm:type_name -> pb.UpdateUserCountMapReq.Algorithm
	63, // 29: pb.UpdateUserCountMapResp.header:type_name -> pb.ResponseHeader
	62, // 30: pb.GetSelfUserInfoReq.header:type_name -> pb.RequestHeader
	63, // 31: pb.GetSelfUserInfoResp.header:type_name -> pb.ResponseHeader
	52, // 32: pb.GetSelfUserInfoResp.accountMap:type_name -> pb.GetSelfUserInfoResp.AccountMapEntry
	53, // 33: pb.GetSelfUserInfoResp.profileMap:type_name -> pb.GetSelfUserInfoResp.ProfileMapEntry
	54, // 34: pb.GetSelfUserInfoResp.extraMap:type_name -> pb.GetSelfUserInfoResp.ExtraMapEntry
	62, // 35: pb.GetUserInfoReq.header:type_name -> pb.RequestHeader
	63, // 36: pb.GetUserInfoResp.header:type_name -> pb.ResponseHeader
	55, // 37: pb.GetUserInfoResp.profileMap:type_name -> pb.GetUserInfoResp.ProfileMapEntry
	62, // 38: pb.ResetUserAccountMapReq.header:type_name -> pb.RequestHeader
	56, // 39: pb.ResetUserAccountMapReq.accountMap:type_name -> pb.ResetUserAccountMapReq.AccountMapEntry
	57, // 40: pb.ResetUserAccountMapReq.verifyMap:type_name -> pb.ResetUserAccountMapReq.VerifyMapEntry
	63, // 41: pb.ResetUserAccountMapResp.header:type_name -> pb.ResponseHeader
	62, // 42: pb.UserAfterOnlineReq.header:type_name -> pb.RequestHeader
	63, // 43: pb.UserAfterOnlineResp.header:type_name -> pb.ResponseHeader
	62, // 44: pb.UserAfterOfflineReq.header:type_name -> pb.RequestHeader
	63, // 45: pb.UserAfterOfflineResp.header:type_name -> pb.ResponseHeader
	62, // 46: pb.UserBeforeConnectReq.header:type_name -> pb.RequestHeader
	63, // 47: pb.UserBeforeConnectResp.header:type_name -> pb.ResponseHeader
	64, // 48: pb.UserBeforeConnectResp.closeCode:type_name -> pb.WebsocketCustomCloseCode
	62, // 49: pb.UserBeforeRequestReq.header:type_name -> pb.RequestHeader
	63, // 50: pb.UserBeforeRequestResp.header:type_name -> pb.ResponseHeader
	62, // 51: pb.UserAfterKeepAliveReq.header:type_name -> pb.RequestHeader
	63, // 52: pb.UserAfterKeepAliveResp.header:type_name -> pb.ResponseHeader
	62, // 53: pb.CreateRobotReq.header:type_name -> pb.RequestHeader
	63, // 54: pb.CreateRobotResp.header:type_name -> pb.ResponseHeader
	62, // 55: pb.GetUserModelByIdReq.header:type_name -> pb.RequestHeader
	58, // 56: pb.GetUserModelByIdReq.opt:type_name -> pb.GetUserModelByIdReq.Opt
	63, // 57: pb.GetUserModelByIdResp.header:type_name -> pb.ResponseHeader
	62, // 58: pb.GetUserModelByIdsReq.header:type_name -> pb.RequestHeader
	59, // 59: pb.GetUserModelByIdsReq.opt:type_name -> pb.GetUserModelByIdsReq.Opt
	63, // 60: pb.GetUserModelByIdsResp.header:type_name -> pb.ResponseHeader
	60, // 61: pb.GetUserModelByIdsResp.userModelJsons:type_name -> pb.GetUserModelByIdsResp.UserModelJsonsEntry
	61, // 62: pb.GetUserModelByIdsResp.userSettingsJsons:type_name -> pb.GetUserModelByIdsResp.UserSettingsJsonsEntry
	2,  // 63: pb.accountService.UserRegister:input_type -> pb.UserRegisterReq
	4,  // 64: pb.accountService.UserDestroy:input_type -> pb.UserDestroyReq
	6,  // 65: pb.accountService.UserAccessToken:input_type -> pb.UserAccessTokenReq
	8,  // 66: pb.accountService.RefreshUserAccessToken:input_type -> pb.RefreshUserAccessTokenReq
	10, // 67: pb.accountService.RevokeUserAccessToken:input_type -> pb.RevokeUserAccessTokenReq
	12, // 68: pb.accountService.UpdateUserAccountMap:input_type -> pb.UpdateUserAccountMapReq
	24, // 69: pb.accountService.ResetUserAccountMap:input_type -> pb.ResetUserAccountMapReq
	36, // 70: pb.accountService.CreateRobot:input_type -> pb.CreateRobotReq
	14, // 71: pb.infoService.UpdateUserProfileMap:input_type -> pb.UpdateUserProfileMapReq
	16, // 72: pb.infoService.UpdateUserExtraMap:input_type -> pb.UpdateUserExtraMapReq
	18, // 73: pb.infoService.UpdateUserCountMap:input_type -> pb.UpdateUserCountMapReq
	20, // 74: pb.infoService.GetSelfUserInfo:input_type -> pb.GetSelfUserInfoReq
	22, // 75: pb.infoService.GetUserInfo:input_type -> pb.GetUserInfoReq
	38, // 76: pb.infoService.GetUserModelById:input_type -> pb.GetUserModelByIdReq
	40, // 77: pb.infoService.GetUserModelByIds:input_type -> pb.GetUserModelByIdsReq
	26, // 78: pb.callbackService.UserAfterOnline:input_type -> pb.UserAfterOnlineReq
	28, // 79: pb.callbackService.UserAfterOffline:input_type -> pb.UserAfterOfflineReq
	30, // 80: pb.callbackService.UserBeforeConnect:input_type -> pb.UserBeforeConnectReq
	32, // 81: pb.callbackService.UserBeforeRequest:input_type -> pb.UserBeforeRequestReq
	34, // 82: pb.callbackService.UserAfterKeepAlive:input_type -> pb.UserAfterKeepAliveReq
	3,  // 83: pb.accountService.UserRegister:output_type -> pb.UserRegisterResp
	5,  // 84: pb.accountService.UserDestroy:output_type -> pb.UserDestroyResp
	7,  // 85: pb.accountService.UserAccessToken:output_type -> pb.UserAccessTokenResp
	9,  // 86: pb.accountService.RefreshUserAccessToken:output_type -> pb.RefreshUserAccessTokenResp
	11, // 87: pb.accountService.RevokeUserAccessToken:output_type -> pb.RevokeUserAccessTokenResp
	13, // 88: pb.accountService.UpdateUserAccountMap:output_type -> pb.UpdateUserAccountMapResp
	25, // 89: pb.accountService.ResetUserAccountMap:output_type -> pb.ResetUserAccountMapResp
	37, // 90: pb.accountService.CreateRobot:output_type -> pb.CreateRobotResp
	15, // 91: pb.infoService.UpdateUserProfileMap:output_type -> pb.UpdateUserProfileMapResp
	17, // 92: pb.infoService.UpdateUserExtraMap:output_type -> pb.UpdateUserExtraMapResp
	19, // 93: pb.infoService.UpdateUserCountMap:output_type -> pb.UpdateUserCountMapResp
	21, // 94: pb.infoService.GetSelfUserInfo:output_type -> pb.GetSelfUserInfoResp
	23, // 95: pb.infoService.GetUserInfo:output_type -> pb.GetUserInfoResp
	39, // 96: pb.infoService.GetUserModelById:output_type -> pb.GetUserModelByIdResp
	41, // 97: pb.infoService.GetUserModelByIds:output_type -> pb.GetUserModelByIdsResp
	27, // 98: pb.callbackService.UserAfterOnline:output_type -> pb.UserAfterOnlineResp
	29, // 99: pb.callbackService.UserAfterOffline:output_type -> pb.UserAfterOfflineResp
	31, // 100: pb.callbackService.UserBeforeConnect:output_type -> pb.UserBeforeConnectResp
	33, // 101: pb.callbackService.UserBeforeRequest:output_type -> pb.UserBeforeRequestResp
	35, // 102: pb.callbackService.UserAfterKeepAlive:output_type -> pb.UserAfterKeepAliveResp
	83, // [83:103] is the sub-list for method output_type
	63, // [63:83] is the sub-list for method input_type
	63, // [63:63] is the sub-list for extension type_name
	63, // [63:63] is the sub-list for extension extendee
	0,  // [0:63] is the sub-list for field type_name
}

func init() { file_user_proto_init() }
func file_user_proto_init() {
	if File_user_proto != nil {
		return
	}
	file_common_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRegisterReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserRegisterResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDestroyReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserDestroyResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAccessTokenReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAccessTokenResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshUserAccessTokenReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshUserAccessTokenResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RevokeUserAccessTokenReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RevokeUserAccessTokenResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserAccountMapReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserAccountMapResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserProfileMapReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserProfileMapResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserExtraMapReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserExtraMapResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserCountMapReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateUserCountMapResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSelfUserInfoReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSelfUserInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserInfoReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetUserAccountMapReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetUserAccountMapResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAfterOnlineReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAfterOnlineResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAfterOfflineReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAfterOfflineResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserBeforeConnectReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserBeforeConnectResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserBeforeRequestReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserBeforeRequestResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAfterKeepAliveReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserAfterKeepAliveResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRobotReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRobotResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserModelByIdReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserModelByIdResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserModelByIdsReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserModelByIdsResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserModelByIdReq_Opt); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_user_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserModelByIdsReq_Opt); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_user_proto_msgTypes[0].OneofWrappers = []interface{}{}
	file_user_proto_msgTypes[4].OneofWrappers = []interface{}{}
	file_user_proto_msgTypes[19].OneofWrappers = []interface{}{}
	file_user_proto_msgTypes[21].OneofWrappers = []interface{}{}
	file_user_proto_msgTypes[34].OneofWrappers = []interface{}{}
	file_user_proto_msgTypes[36].OneofWrappers = []interface{}{}
	file_user_proto_msgTypes[38].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_user_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   60,
			NumExtensions: 0,
			NumServices:   3,
		},
		GoTypes:           file_user_proto_goTypes,
		DependencyIndexes: file_user_proto_depIdxs,
		EnumInfos:         file_user_proto_enumTypes,
		MessageInfos:      file_user_proto_msgTypes,
	}.Build()
	File_user_proto = out.File
	file_user_proto_rawDesc = nil
	file_user_proto_goTypes = nil
	file_user_proto_depIdxs = nil
}
