diff --git a/api/internal/cron/aiCronTask.go b/api/internal/cron/aiCronTask.go index b325e6be..08cf14b2 100644 --- a/api/internal/cron/aiCronTask.go +++ b/api/internal/cron/aiCronTask.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/zrpc" - "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" + hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/executor" diff --git a/api/internal/scheduler/service/aiService.go b/api/internal/scheduler/service/aiService.go index 3b34bd5a..e2f27be7 100644 --- a/api/internal/scheduler/service/aiService.go +++ b/api/internal/scheduler/service/aiService.go @@ -2,7 +2,7 @@ package service import ( "github.com/zeromicro/go-zero/zrpc" - "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" + hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector" diff --git a/api/internal/storeLink/shuguangHpc.go b/api/internal/storeLink/shuguangHpc.go index 9b16401f..afb1fdd5 100644 --- a/api/internal/storeLink/shuguangHpc.go +++ b/api/internal/storeLink/shuguangHpc.go @@ -5,7 +5,7 @@ import ( "errors" "fmt" "gitlink.org.cn/JointCloud/pcm-ac/hpcAC" - "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" + hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils" "strconv" diff --git a/api/internal/storeLink/shuguangai.go b/api/internal/storeLink/shuguangai.go index d29427d2..5c5145d9 100644 --- a/api/internal/storeLink/shuguangai.go +++ b/api/internal/storeLink/shuguangai.go @@ -18,7 +18,7 @@ import ( "context" "errors" "gitlink.org.cn/JointCloud/pcm-ac/hpcAC" - "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" + hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/common" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/schedulers/option" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector" @@ -98,7 +98,7 @@ type ShuguangAi struct { participantId int64 } -func NewShuguangAi(aCRpc hpcacclient.HpcAC, name string, id int64) *ShuguangAi { +func NewShuguangAi(aCRpc hpcAC.HpcACClient, name string, id int64) *ShuguangAi { return &ShuguangAi{aCRpc: aCRpc, platform: name, participantId: id} } @@ -732,9 +732,17 @@ func (s *ShuguangAi) generateParams(option *option.AiOption) error { func (s *ShuguangAi) GetImageInferUrl(ctx context.Context, option *option.InferOption) ([]*collector.ImageInferUrl, error) { var imageUrls []*collector.ImageInferUrl + + urlReq := &hpcAC.GetInferUrlReq{ + ModelName: option.ModelName, + Type: option.ModelType, + Card: "dcu", + } + + urlResp, _ := s.aCRpc.GetInferUrl(ctx, urlReq) imageUrl := &collector.ImageInferUrl{ - Url: "http://0.0.0.0:8888/image", - Card: "dcu", + Url: urlResp.Url, + Card: option.ComputeCard, } imageUrls = append(imageUrls, imageUrl) diff --git a/api/internal/storeLink/storeLink.go b/api/internal/storeLink/storeLink.go index 24958177..976aa54a 100644 --- a/api/internal/storeLink/storeLink.go +++ b/api/internal/storeLink/storeLink.go @@ -19,7 +19,7 @@ import ( "fmt" "github.com/pkg/errors" "gitlink.org.cn/JointCloud/pcm-ac/hpcAC" - "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" + hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/common" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/service/collector" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" diff --git a/api/internal/svc/servicecontext.go b/api/internal/svc/servicecontext.go index 63a1f952..752137f8 100644 --- a/api/internal/svc/servicecontext.go +++ b/api/internal/svc/servicecontext.go @@ -21,7 +21,7 @@ import ( "github.com/robfig/cron/v3" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/zrpc" - "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" + hpcacclient "gitlink.org.cn/JointCloud/pcm-ac/hpcacclient" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/config" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database" diff --git a/go.mod b/go.mod index ac10b14d..1068eaee 100644 --- a/go.mod +++ b/go.mod @@ -20,8 +20,7 @@ require ( github.com/prometheus/common v0.52.2 github.com/robfig/cron/v3 v3.0.1 github.com/zeromicro/go-zero v1.6.3 - gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece - gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c + gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9 gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35 gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203 @@ -30,7 +29,7 @@ require ( go.opentelemetry.io/otel/trace v1.25.0 gonum.org/v1/gonum v0.11.0 google.golang.org/grpc v1.63.0 - google.golang.org/protobuf v1.33.0 + google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002 gorm.io/datatypes v1.2.0 gorm.io/driver/mysql v1.5.2 gorm.io/gorm v1.25.5 diff --git a/go.sum b/go.sum index ced04e38..3cf49660 100644 --- a/go.sum +++ b/go.sum @@ -466,10 +466,8 @@ github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= github.com/zeromicro/go-zero v1.6.3 h1:OL0NnHD5LdRNDolfcK9vUkJt7K8TcBE3RkzfM8poOVw= github.com/zeromicro/go-zero v1.6.3/go.mod h1:XZL435ZxVi9MSXXtw2MRQhHgx6OoX3++MRMOE9xU70c= -gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece h1:W3yBnvAVV8dlRNQKYD6Mf8ySRrYsP0tPk7JjvqZzNHQ= -gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece/go.mod h1:w3Nb5TNymCItQ7K3x4Q0JLuoq9OerwAzAWT2zsPE9Xo= -gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c h1:2Wl/hvaSFjh6fmCSIQhjkr9llMRREQeqcXNLZ/HPY18= -gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c/go.mod h1:lSRfGs+PxFvw7CcndHWRd6UlLlGrZn0b0hp5cfaMNGw= +gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c h1:HrU3GPuHWTAajQxbkDFygsAm/HURJFGT2yckUMdOdGM= +gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c/go.mod h1:3eECiw9O2bIFkkePlloKyLNXiqBAhOxNrDoGaaGseGY= gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9 h1:FRtOtI9vDFHcyPUdc4PL95CFi/DFk+HXT6JNTf/91d8= gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9/go.mod h1:2WC5tDApfQNNIBfDNYwdaQiXhfCsG2n03P3ZxX9p9O4= gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35 h1:E2QfpS3Y0FjR8Zyv5l2Ti/2NetQFqHG66c8+T/+J1u0= @@ -851,8 +849,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002 h1:V7Da7qt0MkY3noVANIMVBk28nOnijADeOR3i5Hcvpj4= +google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC.pb.go b/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC.pb.go index ebc811ab..3fb0b011 100644 --- a/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC.pb.go +++ b/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.33.0 +// protoc-gen-go v1.31.0 // protoc v3.19.4 // source: hpcAC.proto @@ -6087,6 +6087,665 @@ func (x *GetImageAiByIdResp) GetImage() *ImageAI { return nil } +type GetInstanceListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int32 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Sort string `protobuf:"bytes,3,opt,name=sort,proto3" json:"sort,omitempty"` + InstanceServiceName string `protobuf:"bytes,4,opt,name=instanceServiceName,proto3" json:"instanceServiceName,omitempty"` + TaskType string `protobuf:"bytes,5,opt,name=taskType,proto3" json:"taskType,omitempty"` + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` + UserName string `protobuf:"bytes,7,opt,name=userName,proto3" json:"userName,omitempty"` + TaskClassification string `protobuf:"bytes,8,opt,name=taskClassification,proto3" json:"taskClassification,omitempty"` +} + +func (x *GetInstanceListReq) Reset() { + *x = GetInstanceListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceListReq) ProtoMessage() {} + +func (x *GetInstanceListReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[67] + 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 GetInstanceListReq.ProtoReflect.Descriptor instead. +func (*GetInstanceListReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{67} +} + +func (x *GetInstanceListReq) GetStart() int32 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *GetInstanceListReq) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *GetInstanceListReq) GetSort() string { + if x != nil { + return x.Sort + } + return "" +} + +func (x *GetInstanceListReq) GetInstanceServiceName() string { + if x != nil { + return x.InstanceServiceName + } + return "" +} + +func (x *GetInstanceListReq) GetTaskType() string { + if x != nil { + return x.TaskType + } + return "" +} + +func (x *GetInstanceListReq) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetInstanceListReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetInstanceListReq) GetTaskClassification() string { + if x != nil { + return x.TaskClassification + } + return "" +} + +type GetInstanceListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + Data []*GetInstanceListParams `protobuf:"bytes,4,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetInstanceListResp) Reset() { + *x = GetInstanceListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceListResp) ProtoMessage() {} + +func (x *GetInstanceListResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[68] + 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 GetInstanceListResp.ProtoReflect.Descriptor instead. +func (*GetInstanceListResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{68} +} + +func (x *GetInstanceListResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetInstanceListResp) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *GetInstanceListResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *GetInstanceListResp) GetData() []*GetInstanceListParams { + if x != nil { + return x.Data + } + return nil +} + +type ContainerPortInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccessUrl string `protobuf:"bytes,1,opt,name=accessUrl,proto3" json:"accessUrl,omitempty"` + ContainerPort int32 `protobuf:"varint,2,opt,name=containerPort,proto3" json:"containerPort,omitempty"` + ContainerServicesUrl string `protobuf:"bytes,3,opt,name=containerServicesUrl,proto3" json:"containerServicesUrl,omitempty"` + ContentPath string `protobuf:"bytes,4,opt,name=contentPath,proto3" json:"contentPath,omitempty"` + CreateTime int64 `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"` + Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"` + ProtocolType string `protobuf:"bytes,7,opt,name=protocolType,proto3" json:"protocolType,omitempty"` +} + +func (x *ContainerPortInfo) Reset() { + *x = ContainerPortInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContainerPortInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainerPortInfo) ProtoMessage() {} + +func (x *ContainerPortInfo) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[69] + 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 ContainerPortInfo.ProtoReflect.Descriptor instead. +func (*ContainerPortInfo) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{69} +} + +func (x *ContainerPortInfo) GetAccessUrl() string { + if x != nil { + return x.AccessUrl + } + return "" +} + +func (x *ContainerPortInfo) GetContainerPort() int32 { + if x != nil { + return x.ContainerPort + } + return 0 +} + +func (x *ContainerPortInfo) GetContainerServicesUrl() string { + if x != nil { + return x.ContainerServicesUrl + } + return "" +} + +func (x *ContainerPortInfo) GetContentPath() string { + if x != nil { + return x.ContentPath + } + return "" +} + +func (x *ContainerPortInfo) GetCreateTime() int64 { + if x != nil { + return x.CreateTime + } + return 0 +} + +func (x *ContainerPortInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ContainerPortInfo) GetProtocolType() string { + if x != nil { + return x.ProtocolType + } + return "" +} + +type GetInstanceDetailParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AcceleratorDesc string `protobuf:"bytes,1,opt,name=acceleratorDesc,proto3" json:"acceleratorDesc,omitempty"` + AcceleratorType string `protobuf:"bytes,2,opt,name=acceleratorType,proto3" json:"acceleratorType,omitempty"` + ContainerPortInfoList []*ContainerPortInfo `protobuf:"bytes,3,rep,name=containerPortInfoList,proto3" json:"containerPortInfoList,omitempty"` + CpuNumber int32 `protobuf:"varint,4,opt,name=cpuNumber,proto3" json:"cpuNumber,omitempty"` + CreateTime string `protobuf:"bytes,5,opt,name=createTime,proto3" json:"createTime,omitempty"` + CurrentIndex int32 `protobuf:"varint,6,opt,name=currentIndex,proto3" json:"currentIndex,omitempty"` + Duration string `protobuf:"bytes,7,opt,name=duration,proto3" json:"duration,omitempty"` + EndTime string `protobuf:"bytes,8,opt,name=endTime,proto3" json:"endTime,omitempty"` + Env string `protobuf:"bytes,9,opt,name=env,proto3" json:"env,omitempty"` + GpuNumber int32 `protobuf:"varint,10,opt,name=gpuNumber,proto3" json:"gpuNumber,omitempty"` + HeaderNotebookId string `protobuf:"bytes,11,opt,name=headerNotebookId,proto3" json:"headerNotebookId,omitempty"` + HeaderNotebookIp string `protobuf:"bytes,12,opt,name=headerNotebookIp,proto3" json:"headerNotebookIp,omitempty"` + Id string `protobuf:"bytes,13,opt,name=id,proto3" json:"id,omitempty"` + ImagePath string `protobuf:"bytes,14,opt,name=imagePath,proto3" json:"imagePath,omitempty"` + InstanceServiceName string `protobuf:"bytes,15,opt,name=instanceServiceName,proto3" json:"instanceServiceName,omitempty"` + InstanceShareDir string `protobuf:"bytes,16,opt,name=instanceShareDir,proto3" json:"instanceShareDir,omitempty"` + MountInfoList []string `protobuf:"bytes,17,rep,name=mountInfoList,proto3" json:"mountInfoList,omitempty"` + Progress float64 `protobuf:"fixed64,18,opt,name=progress,proto3" json:"progress,omitempty"` + RamSize int32 `protobuf:"varint,19,opt,name=ramSize,proto3" json:"ramSize,omitempty"` + Rdma bool `protobuf:"varint,20,opt,name=rdma,proto3" json:"rdma,omitempty"` + RemainingTime string `protobuf:"bytes,21,opt,name=remainingTime,proto3" json:"remainingTime,omitempty"` + ResourceGroup string `protobuf:"bytes,22,opt,name=resourceGroup,proto3" json:"resourceGroup,omitempty"` + ResourceSpec string `protobuf:"bytes,23,opt,name=resourceSpec,proto3" json:"resourceSpec,omitempty"` + StartScriptActionScope string `protobuf:"bytes,24,opt,name=startScriptActionScope,proto3" json:"startScriptActionScope,omitempty"` + StartScriptContent string `protobuf:"bytes,25,opt,name=startScriptContent,proto3" json:"startScriptContent,omitempty"` + StartServiceCommand string `protobuf:"bytes,26,opt,name=startServiceCommand,proto3" json:"startServiceCommand,omitempty"` + StartTime string `protobuf:"bytes,27,opt,name=startTime,proto3" json:"startTime,omitempty"` + Status string `protobuf:"bytes,28,opt,name=status,proto3" json:"status,omitempty"` + TaskClassification string `protobuf:"bytes,29,opt,name=taskClassification,proto3" json:"taskClassification,omitempty"` + TaskNumber int32 `protobuf:"varint,30,opt,name=taskNumber,proto3" json:"taskNumber,omitempty"` + TaskType string `protobuf:"bytes,31,opt,name=taskType,proto3" json:"taskType,omitempty"` + TimeoutLimit string `protobuf:"bytes,32,opt,name=timeoutLimit,proto3" json:"timeoutLimit,omitempty"` + UseStartScript bool `protobuf:"varint,33,opt,name=useStartScript,proto3" json:"useStartScript,omitempty"` + UseStartServiceCommand bool `protobuf:"varint,34,opt,name=useStartServiceCommand,proto3" json:"useStartServiceCommand,omitempty"` + UserName string `protobuf:"bytes,35,opt,name=userName,proto3" json:"userName,omitempty"` + Version string `protobuf:"bytes,36,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *GetInstanceDetailParams) Reset() { + *x = GetInstanceDetailParams{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceDetailParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceDetailParams) ProtoMessage() {} + +func (x *GetInstanceDetailParams) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[70] + 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 GetInstanceDetailParams.ProtoReflect.Descriptor instead. +func (*GetInstanceDetailParams) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{70} +} + +func (x *GetInstanceDetailParams) GetAcceleratorDesc() string { + if x != nil { + return x.AcceleratorDesc + } + return "" +} + +func (x *GetInstanceDetailParams) GetAcceleratorType() string { + if x != nil { + return x.AcceleratorType + } + return "" +} + +func (x *GetInstanceDetailParams) GetContainerPortInfoList() []*ContainerPortInfo { + if x != nil { + return x.ContainerPortInfoList + } + return nil +} + +func (x *GetInstanceDetailParams) GetCpuNumber() int32 { + if x != nil { + return x.CpuNumber + } + return 0 +} + +func (x *GetInstanceDetailParams) GetCreateTime() string { + if x != nil { + return x.CreateTime + } + return "" +} + +func (x *GetInstanceDetailParams) GetCurrentIndex() int32 { + if x != nil { + return x.CurrentIndex + } + return 0 +} + +func (x *GetInstanceDetailParams) GetDuration() string { + if x != nil { + return x.Duration + } + return "" +} + +func (x *GetInstanceDetailParams) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *GetInstanceDetailParams) GetEnv() string { + if x != nil { + return x.Env + } + return "" +} + +func (x *GetInstanceDetailParams) GetGpuNumber() int32 { + if x != nil { + return x.GpuNumber + } + return 0 +} + +func (x *GetInstanceDetailParams) GetHeaderNotebookId() string { + if x != nil { + return x.HeaderNotebookId + } + return "" +} + +func (x *GetInstanceDetailParams) GetHeaderNotebookIp() string { + if x != nil { + return x.HeaderNotebookIp + } + return "" +} + +func (x *GetInstanceDetailParams) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetInstanceDetailParams) GetImagePath() string { + if x != nil { + return x.ImagePath + } + return "" +} + +func (x *GetInstanceDetailParams) GetInstanceServiceName() string { + if x != nil { + return x.InstanceServiceName + } + return "" +} + +func (x *GetInstanceDetailParams) GetInstanceShareDir() string { + if x != nil { + return x.InstanceShareDir + } + return "" +} + +func (x *GetInstanceDetailParams) GetMountInfoList() []string { + if x != nil { + return x.MountInfoList + } + return nil +} + +func (x *GetInstanceDetailParams) GetProgress() float64 { + if x != nil { + return x.Progress + } + return 0 +} + +func (x *GetInstanceDetailParams) GetRamSize() int32 { + if x != nil { + return x.RamSize + } + return 0 +} + +func (x *GetInstanceDetailParams) GetRdma() bool { + if x != nil { + return x.Rdma + } + return false +} + +func (x *GetInstanceDetailParams) GetRemainingTime() string { + if x != nil { + return x.RemainingTime + } + return "" +} + +func (x *GetInstanceDetailParams) GetResourceGroup() string { + if x != nil { + return x.ResourceGroup + } + return "" +} + +func (x *GetInstanceDetailParams) GetResourceSpec() string { + if x != nil { + return x.ResourceSpec + } + return "" +} + +func (x *GetInstanceDetailParams) GetStartScriptActionScope() string { + if x != nil { + return x.StartScriptActionScope + } + return "" +} + +func (x *GetInstanceDetailParams) GetStartScriptContent() string { + if x != nil { + return x.StartScriptContent + } + return "" +} + +func (x *GetInstanceDetailParams) GetStartServiceCommand() string { + if x != nil { + return x.StartServiceCommand + } + return "" +} + +func (x *GetInstanceDetailParams) GetStartTime() string { + if x != nil { + return x.StartTime + } + return "" +} + +func (x *GetInstanceDetailParams) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetInstanceDetailParams) GetTaskClassification() string { + if x != nil { + return x.TaskClassification + } + return "" +} + +func (x *GetInstanceDetailParams) GetTaskNumber() int32 { + if x != nil { + return x.TaskNumber + } + return 0 +} + +func (x *GetInstanceDetailParams) GetTaskType() string { + if x != nil { + return x.TaskType + } + return "" +} + +func (x *GetInstanceDetailParams) GetTimeoutLimit() string { + if x != nil { + return x.TimeoutLimit + } + return "" +} + +func (x *GetInstanceDetailParams) GetUseStartScript() bool { + if x != nil { + return x.UseStartScript + } + return false +} + +func (x *GetInstanceDetailParams) GetUseStartServiceCommand() bool { + if x != nil { + return x.UseStartServiceCommand + } + return false +} + +func (x *GetInstanceDetailParams) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetInstanceDetailParams) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type GetInstanceDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Data *GetInstanceDetailParams `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetInstanceDetailResp) Reset() { + *x = GetInstanceDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceDetailResp) ProtoMessage() {} + +func (x *GetInstanceDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[71] + 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 GetInstanceDetailResp.ProtoReflect.Descriptor instead. +func (*GetInstanceDetailResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{71} +} + +func (x *GetInstanceDetailResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetInstanceDetailResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *GetInstanceDetailResp) GetData() *GetInstanceDetailParams { + if x != nil { + return x.Data + } + return nil +} + type GetPytorchTaskReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6098,7 +6757,7 @@ type GetPytorchTaskReq struct { func (x *GetPytorchTaskReq) Reset() { *x = GetPytorchTaskReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[67] + mi := &file_hpcAC_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6111,7 +6770,7 @@ func (x *GetPytorchTaskReq) String() string { func (*GetPytorchTaskReq) ProtoMessage() {} func (x *GetPytorchTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[67] + mi := &file_hpcAC_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6124,7 +6783,7 @@ func (x *GetPytorchTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPytorchTaskReq.ProtoReflect.Descriptor instead. func (*GetPytorchTaskReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{67} + return file_hpcAC_proto_rawDescGZIP(), []int{72} } func (x *GetPytorchTaskReq) GetId() string { @@ -6145,7 +6804,7 @@ type GetTensorflowTaskReq struct { func (x *GetTensorflowTaskReq) Reset() { *x = GetTensorflowTaskReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[68] + mi := &file_hpcAC_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6158,7 +6817,7 @@ func (x *GetTensorflowTaskReq) String() string { func (*GetTensorflowTaskReq) ProtoMessage() {} func (x *GetTensorflowTaskReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[68] + mi := &file_hpcAC_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6171,7 +6830,7 @@ func (x *GetTensorflowTaskReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTensorflowTaskReq.ProtoReflect.Descriptor instead. func (*GetTensorflowTaskReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{68} + return file_hpcAC_proto_rawDescGZIP(), []int{73} } func (x *GetTensorflowTaskReq) GetId() string { @@ -6194,7 +6853,7 @@ type GetPytorchTaskResp struct { func (x *GetPytorchTaskResp) Reset() { *x = GetPytorchTaskResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[69] + mi := &file_hpcAC_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6207,7 +6866,7 @@ func (x *GetPytorchTaskResp) String() string { func (*GetPytorchTaskResp) ProtoMessage() {} func (x *GetPytorchTaskResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[69] + mi := &file_hpcAC_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6220,7 +6879,7 @@ func (x *GetPytorchTaskResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPytorchTaskResp.ProtoReflect.Descriptor instead. func (*GetPytorchTaskResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{69} + return file_hpcAC_proto_rawDescGZIP(), []int{74} } func (x *GetPytorchTaskResp) GetCode() string { @@ -6257,7 +6916,7 @@ type GetTensorflowTaskResp struct { func (x *GetTensorflowTaskResp) Reset() { *x = GetTensorflowTaskResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[70] + mi := &file_hpcAC_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6270,7 +6929,7 @@ func (x *GetTensorflowTaskResp) String() string { func (*GetTensorflowTaskResp) ProtoMessage() {} func (x *GetTensorflowTaskResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[70] + mi := &file_hpcAC_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6283,7 +6942,7 @@ func (x *GetTensorflowTaskResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTensorflowTaskResp.ProtoReflect.Descriptor instead. func (*GetTensorflowTaskResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{70} + return file_hpcAC_proto_rawDescGZIP(), []int{75} } func (x *GetTensorflowTaskResp) GetCode() string { @@ -6318,7 +6977,7 @@ type DeleteTaskAiReq struct { func (x *DeleteTaskAiReq) Reset() { *x = DeleteTaskAiReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[71] + mi := &file_hpcAC_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6331,7 +6990,7 @@ func (x *DeleteTaskAiReq) String() string { func (*DeleteTaskAiReq) ProtoMessage() {} func (x *DeleteTaskAiReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[71] + mi := &file_hpcAC_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6344,7 +7003,7 @@ func (x *DeleteTaskAiReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskAiReq.ProtoReflect.Descriptor instead. func (*DeleteTaskAiReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{71} + return file_hpcAC_proto_rawDescGZIP(), []int{76} } func (x *DeleteTaskAiReq) GetIds() string { @@ -6367,7 +7026,7 @@ type DeleteTaskAiResp struct { func (x *DeleteTaskAiResp) Reset() { *x = DeleteTaskAiResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[72] + mi := &file_hpcAC_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6380,7 +7039,7 @@ func (x *DeleteTaskAiResp) String() string { func (*DeleteTaskAiResp) ProtoMessage() {} func (x *DeleteTaskAiResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[72] + mi := &file_hpcAC_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6393,7 +7052,7 @@ func (x *DeleteTaskAiResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteTaskAiResp.ProtoReflect.Descriptor instead. func (*DeleteTaskAiResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{72} + return file_hpcAC_proto_rawDescGZIP(), []int{77} } func (x *DeleteTaskAiResp) GetCode() string { @@ -6417,6 +7076,419 @@ func (x *DeleteTaskAiResp) GetMsg() string { return "" } +type GetInstanceListParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AcceleratorType string `protobuf:"bytes,1,opt,name=acceleratorType,proto3" json:"acceleratorType,omitempty"` + CpuNumber int32 `protobuf:"varint,2,opt,name=cpuNumber,proto3" json:"cpuNumber,omitempty"` + CreateTime string `protobuf:"bytes,3,opt,name=createTime,proto3" json:"createTime,omitempty"` + CurrentIndex int32 `protobuf:"varint,4,opt,name=currentIndex,proto3" json:"currentIndex,omitempty"` + Duration string `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` + EndTime string `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime,omitempty"` + GpuNumber int32 `protobuf:"varint,7,opt,name=gpuNumber,proto3" json:"gpuNumber,omitempty"` + HeaderNotebookId string `protobuf:"bytes,8,opt,name=headerNotebookId,proto3" json:"headerNotebookId,omitempty"` + Id string `protobuf:"bytes,9,opt,name=id,proto3" json:"id,omitempty"` + ImagePath string `protobuf:"bytes,10,opt,name=imagePath,proto3" json:"imagePath,omitempty"` + InstanceId string `protobuf:"bytes,11,opt,name=instanceId,proto3" json:"instanceId,omitempty"` + InstanceServiceName string `protobuf:"bytes,12,opt,name=instanceServiceName,proto3" json:"instanceServiceName,omitempty"` + Progress float64 `protobuf:"fixed64,13,opt,name=progress,proto3" json:"progress,omitempty"` + RamSize int32 `protobuf:"varint,14,opt,name=ramSize,proto3" json:"ramSize,omitempty"` + Rdma bool `protobuf:"varint,15,opt,name=rdma,proto3" json:"rdma,omitempty"` + RemainingTime string `protobuf:"bytes,16,opt,name=remainingTime,proto3" json:"remainingTime,omitempty"` + ResourceGroup string `protobuf:"bytes,17,opt,name=resourceGroup,proto3" json:"resourceGroup,omitempty"` + ResourceSpec string `protobuf:"bytes,18,opt,name=resourceSpec,proto3" json:"resourceSpec,omitempty"` + StartScriptActionScope string `protobuf:"bytes,19,opt,name=startScriptActionScope,proto3" json:"startScriptActionScope,omitempty"` + StartScriptContent string `protobuf:"bytes,20,opt,name=startScriptContent,proto3" json:"startScriptContent,omitempty"` + StartServiceCommand string `protobuf:"bytes,21,opt,name=startServiceCommand,proto3" json:"startServiceCommand,omitempty"` + StartTime string `protobuf:"bytes,22,opt,name=startTime,proto3" json:"startTime,omitempty"` + Status string `protobuf:"bytes,23,opt,name=status,proto3" json:"status,omitempty"` + TaskClassification string `protobuf:"bytes,24,opt,name=taskClassification,proto3" json:"taskClassification,omitempty"` + TaskNumber int32 `protobuf:"varint,25,opt,name=taskNumber,proto3" json:"taskNumber,omitempty"` + TaskType string `protobuf:"bytes,26,opt,name=taskType,proto3" json:"taskType,omitempty"` + TimeoutLimit string `protobuf:"bytes,27,opt,name=timeoutLimit,proto3" json:"timeoutLimit,omitempty"` + UseStartScript bool `protobuf:"varint,28,opt,name=useStartScript,proto3" json:"useStartScript,omitempty"` + UseStartServiceCommand bool `protobuf:"varint,29,opt,name=useStartServiceCommand,proto3" json:"useStartServiceCommand,omitempty"` + UserName string `protobuf:"bytes,30,opt,name=userName,proto3" json:"userName,omitempty"` + Version string `protobuf:"bytes,31,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *GetInstanceListParams) Reset() { + *x = GetInstanceListParams{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceListParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceListParams) ProtoMessage() {} + +func (x *GetInstanceListParams) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[78] + 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 GetInstanceListParams.ProtoReflect.Descriptor instead. +func (*GetInstanceListParams) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{78} +} + +func (x *GetInstanceListParams) GetAcceleratorType() string { + if x != nil { + return x.AcceleratorType + } + return "" +} + +func (x *GetInstanceListParams) GetCpuNumber() int32 { + if x != nil { + return x.CpuNumber + } + return 0 +} + +func (x *GetInstanceListParams) GetCreateTime() string { + if x != nil { + return x.CreateTime + } + return "" +} + +func (x *GetInstanceListParams) GetCurrentIndex() int32 { + if x != nil { + return x.CurrentIndex + } + return 0 +} + +func (x *GetInstanceListParams) GetDuration() string { + if x != nil { + return x.Duration + } + return "" +} + +func (x *GetInstanceListParams) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *GetInstanceListParams) GetGpuNumber() int32 { + if x != nil { + return x.GpuNumber + } + return 0 +} + +func (x *GetInstanceListParams) GetHeaderNotebookId() string { + if x != nil { + return x.HeaderNotebookId + } + return "" +} + +func (x *GetInstanceListParams) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *GetInstanceListParams) GetImagePath() string { + if x != nil { + return x.ImagePath + } + return "" +} + +func (x *GetInstanceListParams) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *GetInstanceListParams) GetInstanceServiceName() string { + if x != nil { + return x.InstanceServiceName + } + return "" +} + +func (x *GetInstanceListParams) GetProgress() float64 { + if x != nil { + return x.Progress + } + return 0 +} + +func (x *GetInstanceListParams) GetRamSize() int32 { + if x != nil { + return x.RamSize + } + return 0 +} + +func (x *GetInstanceListParams) GetRdma() bool { + if x != nil { + return x.Rdma + } + return false +} + +func (x *GetInstanceListParams) GetRemainingTime() string { + if x != nil { + return x.RemainingTime + } + return "" +} + +func (x *GetInstanceListParams) GetResourceGroup() string { + if x != nil { + return x.ResourceGroup + } + return "" +} + +func (x *GetInstanceListParams) GetResourceSpec() string { + if x != nil { + return x.ResourceSpec + } + return "" +} + +func (x *GetInstanceListParams) GetStartScriptActionScope() string { + if x != nil { + return x.StartScriptActionScope + } + return "" +} + +func (x *GetInstanceListParams) GetStartScriptContent() string { + if x != nil { + return x.StartScriptContent + } + return "" +} + +func (x *GetInstanceListParams) GetStartServiceCommand() string { + if x != nil { + return x.StartServiceCommand + } + return "" +} + +func (x *GetInstanceListParams) GetStartTime() string { + if x != nil { + return x.StartTime + } + return "" +} + +func (x *GetInstanceListParams) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *GetInstanceListParams) GetTaskClassification() string { + if x != nil { + return x.TaskClassification + } + return "" +} + +func (x *GetInstanceListParams) GetTaskNumber() int32 { + if x != nil { + return x.TaskNumber + } + return 0 +} + +func (x *GetInstanceListParams) GetTaskType() string { + if x != nil { + return x.TaskType + } + return "" +} + +func (x *GetInstanceListParams) GetTimeoutLimit() string { + if x != nil { + return x.TimeoutLimit + } + return "" +} + +func (x *GetInstanceListParams) GetUseStartScript() bool { + if x != nil { + return x.UseStartScript + } + return false +} + +func (x *GetInstanceListParams) GetUseStartServiceCommand() bool { + if x != nil { + return x.UseStartServiceCommand + } + return false +} + +func (x *GetInstanceListParams) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetInstanceListParams) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type GetInferUrlReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModelName string `protobuf:"bytes,1,opt,name=modelName,proto3" json:"modelName,omitempty"` //eg:imagenet_resnet50 模型+算法 + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` //eg:image 类型 + Card string `protobuf:"bytes,3,opt,name=card,proto3" json:"card,omitempty"` //eg:cpu 芯片 +} + +func (x *GetInferUrlReq) Reset() { + *x = GetInferUrlReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInferUrlReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInferUrlReq) ProtoMessage() {} + +func (x *GetInferUrlReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[79] + 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 GetInferUrlReq.ProtoReflect.Descriptor instead. +func (*GetInferUrlReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{79} +} + +func (x *GetInferUrlReq) GetModelName() string { + if x != nil { + return x.ModelName + } + return "" +} + +func (x *GetInferUrlReq) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *GetInferUrlReq) GetCard() string { + if x != nil { + return x.Card + } + return "" +} + +type GetInferUrlResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *GetInferUrlResp) Reset() { + *x = GetInferUrlResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInferUrlResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInferUrlResp) ProtoMessage() {} + +func (x *GetInferUrlResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[80] + 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 GetInferUrlResp.ProtoReflect.Descriptor instead. +func (*GetInferUrlResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{80} +} + +func (x *GetInferUrlResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *GetInferUrlResp) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *GetInferUrlResp) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + type SubmitPytorchTaskParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6443,7 +7515,7 @@ type SubmitPytorchTaskParams struct { func (x *SubmitPytorchTaskParams) Reset() { *x = SubmitPytorchTaskParams{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[73] + mi := &file_hpcAC_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6456,7 +7528,7 @@ func (x *SubmitPytorchTaskParams) String() string { func (*SubmitPytorchTaskParams) ProtoMessage() {} func (x *SubmitPytorchTaskParams) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[73] + mi := &file_hpcAC_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6469,7 +7541,7 @@ func (x *SubmitPytorchTaskParams) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitPytorchTaskParams.ProtoReflect.Descriptor instead. func (*SubmitPytorchTaskParams) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{73} + return file_hpcAC_proto_rawDescGZIP(), []int{81} } func (x *SubmitPytorchTaskParams) GetAcceleratorType() string { @@ -6609,7 +7681,7 @@ type SubmitTensorflowTaskParams struct { func (x *SubmitTensorflowTaskParams) Reset() { *x = SubmitTensorflowTaskParams{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[74] + mi := &file_hpcAC_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6622,7 +7694,7 @@ func (x *SubmitTensorflowTaskParams) String() string { func (*SubmitTensorflowTaskParams) ProtoMessage() {} func (x *SubmitTensorflowTaskParams) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[74] + mi := &file_hpcAC_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6635,7 +7707,7 @@ func (x *SubmitTensorflowTaskParams) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitTensorflowTaskParams.ProtoReflect.Descriptor instead. func (*SubmitTensorflowTaskParams) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{74} + return file_hpcAC_proto_rawDescGZIP(), []int{82} } func (x *SubmitTensorflowTaskParams) GetAcceleratorType() string { @@ -6782,7 +7854,7 @@ type GetPytorchTaskRespParams struct { func (x *GetPytorchTaskRespParams) Reset() { *x = GetPytorchTaskRespParams{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[75] + mi := &file_hpcAC_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6795,7 +7867,7 @@ func (x *GetPytorchTaskRespParams) String() string { func (*GetPytorchTaskRespParams) ProtoMessage() {} func (x *GetPytorchTaskRespParams) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[75] + mi := &file_hpcAC_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6808,7 +7880,7 @@ func (x *GetPytorchTaskRespParams) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPytorchTaskRespParams.ProtoReflect.Descriptor instead. func (*GetPytorchTaskRespParams) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{75} + return file_hpcAC_proto_rawDescGZIP(), []int{83} } func (x *GetPytorchTaskRespParams) GetAcceleratorType() string { @@ -7056,7 +8128,7 @@ type GetTensorflowTaskRespParams struct { func (x *GetTensorflowTaskRespParams) Reset() { *x = GetTensorflowTaskRespParams{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[76] + mi := &file_hpcAC_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7069,7 +8141,7 @@ func (x *GetTensorflowTaskRespParams) String() string { func (*GetTensorflowTaskRespParams) ProtoMessage() {} func (x *GetTensorflowTaskRespParams) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[76] + mi := &file_hpcAC_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7082,7 +8154,7 @@ func (x *GetTensorflowTaskRespParams) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTensorflowTaskRespParams.ProtoReflect.Descriptor instead. func (*GetTensorflowTaskRespParams) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{76} + return file_hpcAC_proto_rawDescGZIP(), []int{84} } func (x *GetTensorflowTaskRespParams) GetAcceleratorType() string { @@ -7332,7 +8404,7 @@ type ImageAI struct { func (x *ImageAI) Reset() { *x = ImageAI{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[77] + mi := &file_hpcAC_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7345,7 +8417,7 @@ func (x *ImageAI) String() string { func (*ImageAI) ProtoMessage() {} func (x *ImageAI) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[77] + mi := &file_hpcAC_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7358,7 +8430,7 @@ func (x *ImageAI) ProtoReflect() protoreflect.Message { // Deprecated: Use ImageAI.ProtoReflect.Descriptor instead. func (*ImageAI) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{77} + return file_hpcAC_proto_rawDescGZIP(), []int{85} } func (x *ImageAI) GetAcceleratorType() string { @@ -7464,7 +8536,7 @@ type GetResourceSpecReq struct { func (x *GetResourceSpecReq) Reset() { *x = GetResourceSpecReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[78] + mi := &file_hpcAC_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7477,7 +8549,7 @@ func (x *GetResourceSpecReq) String() string { func (*GetResourceSpecReq) ProtoMessage() {} func (x *GetResourceSpecReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[78] + mi := &file_hpcAC_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7490,7 +8562,7 @@ func (x *GetResourceSpecReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResourceSpecReq.ProtoReflect.Descriptor instead. func (*GetResourceSpecReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{78} + return file_hpcAC_proto_rawDescGZIP(), []int{86} } func (x *GetResourceSpecReq) GetAcceleratorType() string { @@ -7520,7 +8592,7 @@ type GetResourceSpecResp struct { func (x *GetResourceSpecResp) Reset() { *x = GetResourceSpecResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[79] + mi := &file_hpcAC_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7533,7 +8605,7 @@ func (x *GetResourceSpecResp) String() string { func (*GetResourceSpecResp) ProtoMessage() {} func (x *GetResourceSpecResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[79] + mi := &file_hpcAC_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7546,7 +8618,7 @@ func (x *GetResourceSpecResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResourceSpecResp.ProtoReflect.Descriptor instead. func (*GetResourceSpecResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{79} + return file_hpcAC_proto_rawDescGZIP(), []int{87} } func (x *GetResourceSpecResp) GetCode() string { @@ -7589,7 +8661,7 @@ type ResourceSpec struct { func (x *ResourceSpec) Reset() { *x = ResourceSpec{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[80] + mi := &file_hpcAC_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7602,7 +8674,7 @@ func (x *ResourceSpec) String() string { func (*ResourceSpec) ProtoMessage() {} func (x *ResourceSpec) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[80] + mi := &file_hpcAC_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7615,7 +8687,7 @@ func (x *ResourceSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ResourceSpec.ProtoReflect.Descriptor instead. func (*ResourceSpec) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{80} + return file_hpcAC_proto_rawDescGZIP(), []int{88} } func (x *ResourceSpec) GetCpuNumber() int64 { @@ -7695,7 +8767,7 @@ type GetInstanceLogReq struct { func (x *GetInstanceLogReq) Reset() { *x = GetInstanceLogReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[81] + mi := &file_hpcAC_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7708,7 +8780,7 @@ func (x *GetInstanceLogReq) String() string { func (*GetInstanceLogReq) ProtoMessage() {} func (x *GetInstanceLogReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[81] + mi := &file_hpcAC_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7721,7 +8793,7 @@ func (x *GetInstanceLogReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetInstanceLogReq.ProtoReflect.Descriptor instead. func (*GetInstanceLogReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{81} + return file_hpcAC_proto_rawDescGZIP(), []int{89} } func (x *GetInstanceLogReq) GetTaskId() string { @@ -7765,7 +8837,7 @@ type GetInstanceLogResp struct { func (x *GetInstanceLogResp) Reset() { *x = GetInstanceLogResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[82] + mi := &file_hpcAC_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7778,7 +8850,7 @@ func (x *GetInstanceLogResp) String() string { func (*GetInstanceLogResp) ProtoMessage() {} func (x *GetInstanceLogResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[82] + mi := &file_hpcAC_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7791,7 +8863,7 @@ func (x *GetInstanceLogResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetInstanceLogResp.ProtoReflect.Descriptor instead. func (*GetInstanceLogResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{82} + return file_hpcAC_proto_rawDescGZIP(), []int{90} } func (x *GetInstanceLogResp) GetCode() string { @@ -7828,7 +8900,7 @@ type LogData struct { func (x *LogData) Reset() { *x = LogData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[83] + mi := &file_hpcAC_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7841,7 +8913,7 @@ func (x *LogData) String() string { func (*LogData) ProtoMessage() {} func (x *LogData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[83] + mi := &file_hpcAC_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7854,7 +8926,7 @@ func (x *LogData) ProtoReflect() protoreflect.Message { // Deprecated: Use LogData.ProtoReflect.Descriptor instead. func (*LogData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{83} + return file_hpcAC_proto_rawDescGZIP(), []int{91} } func (x *LogData) GetStartLineNum() int64 { @@ -7895,7 +8967,7 @@ type GetFileListReq struct { func (x *GetFileListReq) Reset() { *x = GetFileListReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[84] + mi := &file_hpcAC_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7908,7 +8980,7 @@ func (x *GetFileListReq) String() string { func (*GetFileListReq) ProtoMessage() {} func (x *GetFileListReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[84] + mi := &file_hpcAC_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7921,7 +8993,7 @@ func (x *GetFileListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFileListReq.ProtoReflect.Descriptor instead. func (*GetFileListReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{84} + return file_hpcAC_proto_rawDescGZIP(), []int{92} } func (x *GetFileListReq) GetLimit() int64 { @@ -7979,7 +9051,7 @@ type GetFileListResp struct { func (x *GetFileListResp) Reset() { *x = GetFileListResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[85] + mi := &file_hpcAC_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7992,7 +9064,7 @@ func (x *GetFileListResp) String() string { func (*GetFileListResp) ProtoMessage() {} func (x *GetFileListResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[85] + mi := &file_hpcAC_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8005,7 +9077,7 @@ func (x *GetFileListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFileListResp.ProtoReflect.Descriptor instead. func (*GetFileListResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{85} + return file_hpcAC_proto_rawDescGZIP(), []int{93} } func (x *GetFileListResp) GetMsg() string { @@ -8045,7 +9117,7 @@ type FileListData struct { func (x *FileListData) Reset() { *x = FileListData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[86] + mi := &file_hpcAC_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8058,7 +9130,7 @@ func (x *FileListData) String() string { func (*FileListData) ProtoMessage() {} func (x *FileListData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[86] + mi := &file_hpcAC_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8071,7 +9143,7 @@ func (x *FileListData) ProtoReflect() protoreflect.Message { // Deprecated: Use FileListData.ProtoReflect.Descriptor instead. func (*FileListData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{86} + return file_hpcAC_proto_rawDescGZIP(), []int{94} } func (x *FileListData) GetTotal() int64 { @@ -8143,7 +9215,7 @@ type FileList struct { func (x *FileList) Reset() { *x = FileList{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[87] + mi := &file_hpcAC_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8156,7 +9228,7 @@ func (x *FileList) String() string { func (*FileList) ProtoMessage() {} func (x *FileList) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[87] + mi := &file_hpcAC_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8169,7 +9241,7 @@ func (x *FileList) ProtoReflect() protoreflect.Message { // Deprecated: Use FileList.ProtoReflect.Descriptor instead. func (*FileList) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{87} + return file_hpcAC_proto_rawDescGZIP(), []int{95} } func (x *FileList) GetOwner() string { @@ -8305,7 +9377,7 @@ type PermissionAction struct { func (x *PermissionAction) Reset() { *x = PermissionAction{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[88] + mi := &file_hpcAC_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8318,7 +9390,7 @@ func (x *PermissionAction) String() string { func (*PermissionAction) ProtoMessage() {} func (x *PermissionAction) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[88] + mi := &file_hpcAC_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8331,7 +9403,7 @@ func (x *PermissionAction) ProtoReflect() protoreflect.Message { // Deprecated: Use PermissionAction.ProtoReflect.Descriptor instead. func (*PermissionAction) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{88} + return file_hpcAC_proto_rawDescGZIP(), []int{96} } func (x *PermissionAction) GetRead() bool { @@ -8375,7 +9447,7 @@ type Children struct { func (x *Children) Reset() { *x = Children{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[89] + mi := &file_hpcAC_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8388,7 +9460,7 @@ func (x *Children) String() string { func (*Children) ProtoMessage() {} func (x *Children) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[89] + mi := &file_hpcAC_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8401,7 +9473,7 @@ func (x *Children) ProtoReflect() protoreflect.Message { // Deprecated: Use Children.ProtoReflect.Descriptor instead. func (*Children) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{89} + return file_hpcAC_proto_rawDescGZIP(), []int{97} } func (x *Children) GetId() int64 { @@ -8436,7 +9508,7 @@ type GetFileReq struct { func (x *GetFileReq) Reset() { *x = GetFileReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[90] + mi := &file_hpcAC_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8449,7 +9521,7 @@ func (x *GetFileReq) String() string { func (*GetFileReq) ProtoMessage() {} func (x *GetFileReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[90] + mi := &file_hpcAC_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8462,7 +9534,7 @@ func (x *GetFileReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFileReq.ProtoReflect.Descriptor instead. func (*GetFileReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{90} + return file_hpcAC_proto_rawDescGZIP(), []int{98} } func (x *GetFileReq) GetPath() string { @@ -8483,7 +9555,7 @@ type GetFileResp struct { func (x *GetFileResp) Reset() { *x = GetFileResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[91] + mi := &file_hpcAC_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8496,7 +9568,7 @@ func (x *GetFileResp) String() string { func (*GetFileResp) ProtoMessage() {} func (x *GetFileResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[91] + mi := &file_hpcAC_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8509,7 +9581,7 @@ func (x *GetFileResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFileResp.ProtoReflect.Descriptor instead. func (*GetFileResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{91} + return file_hpcAC_proto_rawDescGZIP(), []int{99} } func (x *GetFileResp) GetContent() string { @@ -8532,7 +9604,7 @@ type UploadFileReq struct { func (x *UploadFileReq) Reset() { *x = UploadFileReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[92] + mi := &file_hpcAC_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8545,7 +9617,7 @@ func (x *UploadFileReq) String() string { func (*UploadFileReq) ProtoMessage() {} func (x *UploadFileReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[92] + mi := &file_hpcAC_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8558,7 +9630,7 @@ func (x *UploadFileReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadFileReq.ProtoReflect.Descriptor instead. func (*UploadFileReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{92} + return file_hpcAC_proto_rawDescGZIP(), []int{100} } func (x *UploadFileReq) GetPath() string { @@ -8595,7 +9667,7 @@ type UploadFileResp struct { func (x *UploadFileResp) Reset() { *x = UploadFileResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[93] + mi := &file_hpcAC_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8608,7 +9680,7 @@ func (x *UploadFileResp) String() string { func (*UploadFileResp) ProtoMessage() {} func (x *UploadFileResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[93] + mi := &file_hpcAC_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8621,7 +9693,7 @@ func (x *UploadFileResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadFileResp.ProtoReflect.Descriptor instead. func (*UploadFileResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{93} + return file_hpcAC_proto_rawDescGZIP(), []int{101} } func (x *UploadFileResp) GetCode() string { @@ -8654,7 +9726,7 @@ type UploadFileData struct { func (x *UploadFileData) Reset() { *x = UploadFileData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[94] + mi := &file_hpcAC_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8667,7 +9739,7 @@ func (x *UploadFileData) String() string { func (*UploadFileData) ProtoMessage() {} func (x *UploadFileData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[94] + mi := &file_hpcAC_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8680,7 +9752,7 @@ func (x *UploadFileData) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadFileData.ProtoReflect.Descriptor instead. func (*UploadFileData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{94} + return file_hpcAC_proto_rawDescGZIP(), []int{102} } // *****************曙光容器 Start************************ @@ -8696,7 +9768,7 @@ type GetNodeResourcesReq struct { func (x *GetNodeResourcesReq) Reset() { *x = GetNodeResourcesReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[95] + mi := &file_hpcAC_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8709,7 +9781,7 @@ func (x *GetNodeResourcesReq) String() string { func (*GetNodeResourcesReq) ProtoMessage() {} func (x *GetNodeResourcesReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[95] + mi := &file_hpcAC_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8722,7 +9794,7 @@ func (x *GetNodeResourcesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodeResourcesReq.ProtoReflect.Descriptor instead. func (*GetNodeResourcesReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{95} + return file_hpcAC_proto_rawDescGZIP(), []int{103} } func (x *GetNodeResourcesReq) GetAcceleratorType() string { @@ -8752,7 +9824,7 @@ type GetNodeResourcesResp struct { func (x *GetNodeResourcesResp) Reset() { *x = GetNodeResourcesResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[96] + mi := &file_hpcAC_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8765,7 +9837,7 @@ func (x *GetNodeResourcesResp) String() string { func (*GetNodeResourcesResp) ProtoMessage() {} func (x *GetNodeResourcesResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[96] + mi := &file_hpcAC_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8778,7 +9850,7 @@ func (x *GetNodeResourcesResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodeResourcesResp.ProtoReflect.Descriptor instead. func (*GetNodeResourcesResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{96} + return file_hpcAC_proto_rawDescGZIP(), []int{104} } func (x *GetNodeResourcesResp) GetCode() string { @@ -8823,7 +9895,7 @@ type GetNodeResourcesData struct { func (x *GetNodeResourcesData) Reset() { *x = GetNodeResourcesData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[97] + mi := &file_hpcAC_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8836,7 +9908,7 @@ func (x *GetNodeResourcesData) String() string { func (*GetNodeResourcesData) ProtoMessage() {} func (x *GetNodeResourcesData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[97] + mi := &file_hpcAC_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8849,7 +9921,7 @@ func (x *GetNodeResourcesData) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodeResourcesData.ProtoReflect.Descriptor instead. func (*GetNodeResourcesData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{97} + return file_hpcAC_proto_rawDescGZIP(), []int{105} } func (x *GetNodeResourcesData) GetId() string { @@ -8939,7 +10011,7 @@ type GetUserInfoReq struct { func (x *GetUserInfoReq) Reset() { *x = GetUserInfoReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[98] + mi := &file_hpcAC_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8952,7 +10024,7 @@ func (x *GetUserInfoReq) String() string { func (*GetUserInfoReq) ProtoMessage() {} func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[98] + mi := &file_hpcAC_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8965,7 +10037,7 @@ func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{98} + return file_hpcAC_proto_rawDescGZIP(), []int{106} } type GetUserInfoResp struct { @@ -8981,7 +10053,7 @@ type GetUserInfoResp struct { func (x *GetUserInfoResp) Reset() { *x = GetUserInfoResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[99] + mi := &file_hpcAC_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8994,7 +10066,7 @@ func (x *GetUserInfoResp) String() string { func (*GetUserInfoResp) ProtoMessage() {} func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[99] + mi := &file_hpcAC_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9007,7 +10079,7 @@ func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserInfoResp.ProtoReflect.Descriptor instead. func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{99} + return file_hpcAC_proto_rawDescGZIP(), []int{107} } func (x *GetUserInfoResp) GetCode() string { @@ -9051,7 +10123,7 @@ type GetUserInfoData struct { func (x *GetUserInfoData) Reset() { *x = GetUserInfoData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[100] + mi := &file_hpcAC_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9064,7 +10136,7 @@ func (x *GetUserInfoData) String() string { func (*GetUserInfoData) ProtoMessage() {} func (x *GetUserInfoData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[100] + mi := &file_hpcAC_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9077,7 +10149,7 @@ func (x *GetUserInfoData) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserInfoData.ProtoReflect.Descriptor instead. func (*GetUserInfoData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{100} + return file_hpcAC_proto_rawDescGZIP(), []int{108} } func (x *GetUserInfoData) GetCountry() string { @@ -9163,7 +10235,7 @@ type GetMemberJobsReq struct { func (x *GetMemberJobsReq) Reset() { *x = GetMemberJobsReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[101] + mi := &file_hpcAC_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9176,7 +10248,7 @@ func (x *GetMemberJobsReq) String() string { func (*GetMemberJobsReq) ProtoMessage() {} func (x *GetMemberJobsReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[101] + mi := &file_hpcAC_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9189,7 +10261,7 @@ func (x *GetMemberJobsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMemberJobsReq.ProtoReflect.Descriptor instead. func (*GetMemberJobsReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{101} + return file_hpcAC_proto_rawDescGZIP(), []int{109} } func (x *GetMemberJobsReq) GetClusterId() int64 { @@ -9226,7 +10298,7 @@ type GetMemberJobsResp struct { func (x *GetMemberJobsResp) Reset() { *x = GetMemberJobsResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[102] + mi := &file_hpcAC_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9239,7 +10311,7 @@ func (x *GetMemberJobsResp) String() string { func (*GetMemberJobsResp) ProtoMessage() {} func (x *GetMemberJobsResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[102] + mi := &file_hpcAC_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9252,7 +10324,7 @@ func (x *GetMemberJobsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMemberJobsResp.ProtoReflect.Descriptor instead. func (*GetMemberJobsResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{102} + return file_hpcAC_proto_rawDescGZIP(), []int{110} } func (x *GetMemberJobsResp) GetCode() string { @@ -9296,7 +10368,7 @@ type GetMemberJobsData struct { func (x *GetMemberJobsData) Reset() { *x = GetMemberJobsData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[103] + mi := &file_hpcAC_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9309,7 +10381,7 @@ func (x *GetMemberJobsData) String() string { func (*GetMemberJobsData) ProtoMessage() {} func (x *GetMemberJobsData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[103] + mi := &file_hpcAC_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9322,7 +10394,7 @@ func (x *GetMemberJobsData) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMemberJobsData.ProtoReflect.Descriptor instead. func (*GetMemberJobsData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{103} + return file_hpcAC_proto_rawDescGZIP(), []int{111} } func (x *GetMemberJobsData) GetId() string { @@ -10311,632 +11383,853 @@ var file_hpcAC_proto_rawDesc = []byte{ 0x41, 0x69, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x49, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0x23, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, - 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x6f, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x75, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xaf, 0x04, 0x0a, 0x17, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, - 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x79, - 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, - 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, - 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x22, 0x94, 0x04, 0x0a, 0x1a, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, - 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x22, 0x86, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x61, 0x73, + 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x81, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x55, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xbf, 0x0a, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, + 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, - 0x76, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, - 0x26, 0x0a, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, - 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, - 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, - 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, - 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, - 0x65, 0x22, 0xd8, 0x07, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, - 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, 0x76, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, 0x32, - 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x72, 0x65, - 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, - 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x47, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x6d, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, - 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, - 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, - 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, - 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xb7, 0x08, 0x0a, - 0x1b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, - 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, 0x32, 0x0a, 0x14, - 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x61, - 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, - 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x50, 0x55, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, - 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, - 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x6d, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x61, 0x74, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, - 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, - 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, - 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, - 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, - 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x73, - 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x70, 0x73, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x70, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x73, 0x52, 0x61, - 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x73, 0x52, - 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x07, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x41, 0x49, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, - 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x49, 0x63, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x50, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x69, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, - 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x22, 0x64, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, + 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, + 0x6e, 0x76, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x49, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x44, 0x69, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x44, 0x69, 0x72, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x72, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, + 0x64, 0x6d, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x72, 0x64, 0x6d, 0x61, 0x12, + 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x36, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2e, 0x0a, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x73, + 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x23, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, + 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x26, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x6f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, + 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xa2, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x70, 0x75, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, - 0x6c, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x6d, 0x6c, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, - 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x76, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x76, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x8f, 0x01, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6c, - 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x5e, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x6f, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x67, 0x0a, - 0x07, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, - 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x69, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, - 0x57, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, - 0x6f, 0x72, 0x64, 0x22, 0x60, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, - 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, - 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x08, 0x46, 0x69, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6c, - 0x61, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, - 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, - 0x46, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x65, - 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, - 0x65, 0x4b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, - 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x4c, 0x69, 0x6e, - 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, - 0x6c, 0x69, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, - 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x70, 0x0a, 0x10, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, - 0x72, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x44, - 0x0a, 0x08, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x27, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, - 0x4d, 0x0a, 0x0d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x61, - 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x75, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x23, 0x0a, + 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x71, + 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x69, + 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x41, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0xd3, 0x08, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x6d, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, - 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd6, 0x02, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6c, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x6c, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x6e, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x6e, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x70, 0x75, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x70, 0x75, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x6f, - 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x22, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2a, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcd, 0x02, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x65, 0x6e, - 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x74, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x67, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9d, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, - 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x70, - 0x75, 0x43, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x70, 0x75, - 0x43, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, - 0x65, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, - 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, - 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x63, - 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x63, - 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, - 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x32, 0xa9, 0x11, 0x0a, 0x05, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x12, 0x30, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, - 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, - 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, - 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x3d, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, - 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, - 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, - 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, - 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, - 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x0e, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0f, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4b, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, - 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, - 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, - 0x47, 0x65, 0x74, 0x41, 0x43, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x41, 0x43, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x39, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x41, 0x43, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, - 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x63, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x67, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, - 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x65, 0x6e, 0x73, - 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, - 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x69, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, - 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x52, 0x65, 0x71, 0x1a, - 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x69, 0x42, 0x79, 0x49, 0x64, 0x12, 0x18, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x69, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x69, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, - 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, - 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x12, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x19, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x1a, - 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x68, 0x70, 0x63, 0x41, - 0x43, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0a, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, - 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x72, 0x64, 0x6d, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x72, 0x64, 0x6d, 0x61, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x36, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, + 0x73, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x75, 0x73, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x56, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x22, 0x51, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x22, 0xaf, 0x04, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x79, 0x74, 0x6f, + 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, + 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, + 0x48, 0x76, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x74, + 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, + 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x41, + 0x72, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, + 0x41, 0x72, 0x67, 0x22, 0x94, 0x04, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x65, + 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, + 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, + 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x79, 0x74, 0x68, + 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x0f, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, + 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xd8, 0x07, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x69, + 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x50, 0x55, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x47, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xb7, 0x08, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x73, 0x48, 0x76, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x69, 0x73, 0x48, 0x76, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x50, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x43, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x50, 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x50, + 0x55, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, + 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x70, + 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, + 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x73, 0x43, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x73, 0x43, 0x70, 0x75, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x73, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x20, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x73, 0x52, 0x61, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x22, + 0xd1, 0x02, 0x0a, 0x07, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x49, 0x12, 0x28, 0x0a, 0x0f, 0x61, + 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x70, 0x70, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x70, 0x70, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x72, 0x65, 0x73, + 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x64, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0xa2, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, + 0x78, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x78, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6c, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x6c, 0x75, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x24, + 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x22, 0x8f, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, + 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x5e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x67, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x4c, 0x69, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, + 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x22, 0x60, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd0, + 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, + 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, + 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, + 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x69, 0x73, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x69, + 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x53, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x4c, 0x69, 0x6e, 0x6b, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x43, + 0x0a, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x70, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x61, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x72, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x44, 0x0a, 0x08, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x20, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, + 0x27, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x4d, 0x0a, 0x0d, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x61, 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x68, 0x70, 0x63, 0x41, 0x43, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, + 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x22, 0x6d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xd6, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, + 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6c, 0x75, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x6c, + 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x63, 0x75, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x76, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x63, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xcd, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x22, 0x74, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x9d, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, + 0x6f, 0x62, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x52, 0x65, + 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, + 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, + 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x52, + 0x65, 0x71, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, + 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x55, + 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, + 0x71, 0x32, 0xb3, 0x12, 0x0a, 0x05, 0x68, 0x70, 0x63, 0x41, 0x43, 0x12, 0x30, 0x0a, 0x07, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, + 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, + 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, + 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3c, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, + 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, + 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, + 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, + 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x36, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0f, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, + 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, + 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x33, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, + 0x62, 0x73, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x07, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x27, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x43, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x41, 0x43, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, + 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, + 0x41, 0x43, 0x2e, 0x41, 0x43, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x63, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x0d, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x67, 0x69, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x49, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, + 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x14, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x12, 0x18, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x69, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, + 0x69, 0x42, 0x79, 0x49, 0x64, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x69, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, + 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x41, 0x69, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x79, 0x74, 0x6f, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, + 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x41, + 0x69, 0x12, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x69, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, + 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x18, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x6f, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x12, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3c, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x15, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x55, + 0x72, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, + 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x15, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x16, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1a, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x68, 0x70, 0x63, + 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x68, 0x70, 0x63, 0x41, + 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10951,7 +12244,7 @@ func file_hpcAC_proto_rawDescGZIP() []byte { return file_hpcAC_proto_rawDescData } -var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 105) +var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 113) var file_hpcAC_proto_goTypes = []interface{}{ (*JobManager)(nil), // 0: hpcAC.JobManager (*JobManagerReq)(nil), // 1: hpcAC.JobManagerReq @@ -11020,51 +12313,59 @@ var file_hpcAC_proto_goTypes = []interface{}{ (*GetImageListAiResp)(nil), // 64: hpcAC.GetImageListAiResp (*GetImageAiByIdReq)(nil), // 65: hpcAC.GetImageAiByIdReq (*GetImageAiByIdResp)(nil), // 66: hpcAC.GetImageAiByIdResp - (*GetPytorchTaskReq)(nil), // 67: hpcAC.GetPytorchTaskReq - (*GetTensorflowTaskReq)(nil), // 68: hpcAC.GetTensorflowTaskReq - (*GetPytorchTaskResp)(nil), // 69: hpcAC.GetPytorchTaskResp - (*GetTensorflowTaskResp)(nil), // 70: hpcAC.GetTensorflowTaskResp - (*DeleteTaskAiReq)(nil), // 71: hpcAC.DeleteTaskAiReq - (*DeleteTaskAiResp)(nil), // 72: hpcAC.DeleteTaskAiResp - (*SubmitPytorchTaskParams)(nil), // 73: hpcAC.SubmitPytorchTaskParams - (*SubmitTensorflowTaskParams)(nil), // 74: hpcAC.SubmitTensorflowTaskParams - (*GetPytorchTaskRespParams)(nil), // 75: hpcAC.GetPytorchTaskRespParams - (*GetTensorflowTaskRespParams)(nil), // 76: hpcAC.GetTensorflowTaskRespParams - (*ImageAI)(nil), // 77: hpcAC.ImageAI - (*GetResourceSpecReq)(nil), // 78: hpcAC.GetResourceSpecReq - (*GetResourceSpecResp)(nil), // 79: hpcAC.GetResourceSpecResp - (*ResourceSpec)(nil), // 80: hpcAC.ResourceSpec - (*GetInstanceLogReq)(nil), // 81: hpcAC.GetInstanceLogReq - (*GetInstanceLogResp)(nil), // 82: hpcAC.GetInstanceLogResp - (*LogData)(nil), // 83: hpcAC.LogData - (*GetFileListReq)(nil), // 84: hpcAC.GetFileListReq - (*GetFileListResp)(nil), // 85: hpcAC.GetFileListResp - (*FileListData)(nil), // 86: hpcAC.FileListData - (*FileList)(nil), // 87: hpcAC.FileList - (*PermissionAction)(nil), // 88: hpcAC.PermissionAction - (*Children)(nil), // 89: hpcAC.Children - (*GetFileReq)(nil), // 90: hpcAC.GetFileReq - (*GetFileResp)(nil), // 91: hpcAC.GetFileResp - (*UploadFileReq)(nil), // 92: hpcAC.UploadFileReq - (*UploadFileResp)(nil), // 93: hpcAC.UploadFileResp - (*UploadFileData)(nil), // 94: hpcAC.UploadFileData - (*GetNodeResourcesReq)(nil), // 95: hpcAC.GetNodeResourcesReq - (*GetNodeResourcesResp)(nil), // 96: hpcAC.GetNodeResourcesResp - (*GetNodeResourcesData)(nil), // 97: hpcAC.GetNodeResourcesData - (*GetUserInfoReq)(nil), // 98: hpcAC.GetUserInfoReq - (*GetUserInfoResp)(nil), // 99: hpcAC.GetUserInfoResp - (*GetUserInfoData)(nil), // 100: hpcAC.GetUserInfoData - (*GetMemberJobsReq)(nil), // 101: hpcAC.GetMemberJobsReq - (*GetMemberJobsResp)(nil), // 102: hpcAC.GetMemberJobsResp - (*GetMemberJobsData)(nil), // 103: hpcAC.GetMemberJobsData - nil, // 104: hpcAC.DeleteJobResp.DataEntry + (*GetInstanceListReq)(nil), // 67: hpcAC.GetInstanceListReq + (*GetInstanceListResp)(nil), // 68: hpcAC.GetInstanceListResp + (*ContainerPortInfo)(nil), // 69: hpcAC.ContainerPortInfo + (*GetInstanceDetailParams)(nil), // 70: hpcAC.GetInstanceDetailParams + (*GetInstanceDetailResp)(nil), // 71: hpcAC.GetInstanceDetailResp + (*GetPytorchTaskReq)(nil), // 72: hpcAC.GetPytorchTaskReq + (*GetTensorflowTaskReq)(nil), // 73: hpcAC.GetTensorflowTaskReq + (*GetPytorchTaskResp)(nil), // 74: hpcAC.GetPytorchTaskResp + (*GetTensorflowTaskResp)(nil), // 75: hpcAC.GetTensorflowTaskResp + (*DeleteTaskAiReq)(nil), // 76: hpcAC.DeleteTaskAiReq + (*DeleteTaskAiResp)(nil), // 77: hpcAC.DeleteTaskAiResp + (*GetInstanceListParams)(nil), // 78: hpcAC.GetInstanceListParams + (*GetInferUrlReq)(nil), // 79: hpcAC.GetInferUrlReq + (*GetInferUrlResp)(nil), // 80: hpcAC.GetInferUrlResp + (*SubmitPytorchTaskParams)(nil), // 81: hpcAC.SubmitPytorchTaskParams + (*SubmitTensorflowTaskParams)(nil), // 82: hpcAC.SubmitTensorflowTaskParams + (*GetPytorchTaskRespParams)(nil), // 83: hpcAC.GetPytorchTaskRespParams + (*GetTensorflowTaskRespParams)(nil), // 84: hpcAC.GetTensorflowTaskRespParams + (*ImageAI)(nil), // 85: hpcAC.ImageAI + (*GetResourceSpecReq)(nil), // 86: hpcAC.GetResourceSpecReq + (*GetResourceSpecResp)(nil), // 87: hpcAC.GetResourceSpecResp + (*ResourceSpec)(nil), // 88: hpcAC.ResourceSpec + (*GetInstanceLogReq)(nil), // 89: hpcAC.GetInstanceLogReq + (*GetInstanceLogResp)(nil), // 90: hpcAC.GetInstanceLogResp + (*LogData)(nil), // 91: hpcAC.LogData + (*GetFileListReq)(nil), // 92: hpcAC.GetFileListReq + (*GetFileListResp)(nil), // 93: hpcAC.GetFileListResp + (*FileListData)(nil), // 94: hpcAC.FileListData + (*FileList)(nil), // 95: hpcAC.FileList + (*PermissionAction)(nil), // 96: hpcAC.PermissionAction + (*Children)(nil), // 97: hpcAC.Children + (*GetFileReq)(nil), // 98: hpcAC.GetFileReq + (*GetFileResp)(nil), // 99: hpcAC.GetFileResp + (*UploadFileReq)(nil), // 100: hpcAC.UploadFileReq + (*UploadFileResp)(nil), // 101: hpcAC.UploadFileResp + (*UploadFileData)(nil), // 102: hpcAC.UploadFileData + (*GetNodeResourcesReq)(nil), // 103: hpcAC.GetNodeResourcesReq + (*GetNodeResourcesResp)(nil), // 104: hpcAC.GetNodeResourcesResp + (*GetNodeResourcesData)(nil), // 105: hpcAC.GetNodeResourcesData + (*GetUserInfoReq)(nil), // 106: hpcAC.GetUserInfoReq + (*GetUserInfoResp)(nil), // 107: hpcAC.GetUserInfoResp + (*GetUserInfoData)(nil), // 108: hpcAC.GetUserInfoData + (*GetMemberJobsReq)(nil), // 109: hpcAC.GetMemberJobsReq + (*GetMemberJobsResp)(nil), // 110: hpcAC.GetMemberJobsResp + (*GetMemberJobsData)(nil), // 111: hpcAC.GetMemberJobsData + nil, // 112: hpcAC.DeleteJobResp.DataEntry } var file_hpcAC_proto_depIdxs = []int32{ 0, // 0: hpcAC.ListJobManagerResp.data:type_name -> hpcAC.JobManager 3, // 1: hpcAC.JobDetail.job_init_attr:type_name -> hpcAC.JobInitAttr 4, // 2: hpcAC.JobDetail.job_session_info:type_name -> hpcAC.JobVncSessionInfo 5, // 3: hpcAC.GetJobDetailResp.data:type_name -> hpcAC.JobDetail - 104, // 4: hpcAC.DeleteJobResp.data:type_name -> hpcAC.DeleteJobResp.DataEntry + 112, // 4: hpcAC.DeleteJobResp.data:type_name -> hpcAC.DeleteJobResp.DataEntry 10, // 5: hpcAC.ListJobResp.jobs:type_name -> hpcAC.job 15, // 6: hpcAC.ListHistoryJobResp.data:type_name -> hpcAC.HistoryJobData 16, // 7: hpcAC.HistoryJobData.list:type_name -> hpcAC.HistoryJobList @@ -11083,97 +12384,104 @@ var file_hpcAC_proto_depIdxs = []int32{ 50, // 20: hpcAC.TokenResp.data:type_name -> hpcAC.ACTokenData 56, // 21: hpcAC.ACClusterResp.data:type_name -> hpcAC.ACClusterData 56, // 22: hpcAC.ClusterResp.data:type_name -> hpcAC.ACClusterData - 73, // 23: hpcAC.SubmitPytorchTaskReq.params:type_name -> hpcAC.SubmitPytorchTaskParams - 74, // 24: hpcAC.SubmitTensorflowTaskReq.params:type_name -> hpcAC.SubmitTensorflowTaskParams - 77, // 25: hpcAC.GetImageListAiResp.data:type_name -> hpcAC.ImageAI - 77, // 26: hpcAC.GetImageAiByIdResp.image:type_name -> hpcAC.ImageAI - 75, // 27: hpcAC.GetPytorchTaskResp.data:type_name -> hpcAC.GetPytorchTaskRespParams - 76, // 28: hpcAC.GetTensorflowTaskResp.data:type_name -> hpcAC.GetTensorflowTaskRespParams - 80, // 29: hpcAC.GetResourceSpecResp.data:type_name -> hpcAC.ResourceSpec - 83, // 30: hpcAC.GetInstanceLogResp.data:type_name -> hpcAC.LogData - 86, // 31: hpcAC.GetFileListResp.data:type_name -> hpcAC.FileListData - 89, // 32: hpcAC.FileListData.children:type_name -> hpcAC.Children - 87, // 33: hpcAC.FileListData.fileList:type_name -> hpcAC.FileList - 88, // 34: hpcAC.FileList.permissionAction:type_name -> hpcAC.PermissionAction - 94, // 35: hpcAC.UploadFileResp.data:type_name -> hpcAC.UploadFileData - 97, // 36: hpcAC.GetNodeResourcesResp.data:type_name -> hpcAC.GetNodeResourcesData - 100, // 37: hpcAC.GetUserInfoResp.data:type_name -> hpcAC.GetUserInfoData - 103, // 38: hpcAC.GetMemberJobsResp.data:type_name -> hpcAC.GetMemberJobsData - 11, // 39: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq - 13, // 40: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq - 17, // 41: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq - 1, // 42: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq - 6, // 43: hpcAC.hpcAC.GetJobDetail:input_type -> hpcAC.JobDetailReq - 8, // 44: hpcAC.hpcAC.DeleteJob:input_type -> hpcAC.DeleteJobReq - 39, // 45: hpcAC.hpcAC.FileContent:input_type -> hpcAC.FileDataReq - 41, // 46: hpcAC.hpcAC.SelectQueueByUser:input_type -> hpcAC.QueueReq - 41, // 47: hpcAC.hpcAC.QueryQueueDetails:input_type -> hpcAC.QueueReq - 41, // 48: hpcAC.hpcAC.QueryUserQuotasLimit:input_type -> hpcAC.QueueReq - 20, // 49: hpcAC.hpcAC.ParaStorQuota:input_type -> hpcAC.ParaStorQuotaReq - 23, // 50: hpcAC.hpcAC.WallTime:input_type -> hpcAC.WallTimeReq - 25, // 51: hpcAC.hpcAC.QueueJobs:input_type -> hpcAC.QueueJobsReq - 29, // 52: hpcAC.hpcAC.CpuCore:input_type -> hpcAC.CpuCoreReq - 32, // 53: hpcAC.hpcAC.jobs:input_type -> hpcAC.JobsReq - 35, // 54: hpcAC.hpcAC.HistoryJobDetail:input_type -> hpcAC.HistoryJobDetailReq - 48, // 55: hpcAC.hpcAC.GetACToken:input_type -> hpcAC.ACTokenReq - 53, // 56: hpcAC.hpcAC.GetACClusterId:input_type -> hpcAC.ACClusterReq - 57, // 57: hpcAC.hpcAC.GetComputingPower:input_type -> hpcAC.resourceReq - 57, // 58: hpcAC.hpcAC.GetGeneralInfo:input_type -> hpcAC.resourceReq - 60, // 59: hpcAC.hpcAC.SubmitPytorchTask:input_type -> hpcAC.SubmitPytorchTaskReq - 61, // 60: hpcAC.hpcAC.SubmitTensorflowTask:input_type -> hpcAC.SubmitTensorflowTaskReq - 63, // 61: hpcAC.hpcAC.GetImageListAi:input_type -> hpcAC.GetImageListAiReq - 65, // 62: hpcAC.hpcAC.GetImageAiById:input_type -> hpcAC.GetImageAiByIdReq - 67, // 63: hpcAC.hpcAC.GetPytorchTask:input_type -> hpcAC.GetPytorchTaskReq - 68, // 64: hpcAC.hpcAC.GetTensorflowTask:input_type -> hpcAC.GetTensorflowTaskReq - 71, // 65: hpcAC.hpcAC.DeleteTaskAi:input_type -> hpcAC.DeleteTaskAiReq - 78, // 66: hpcAC.hpcAC.GetResourceSpec:input_type -> hpcAC.GetResourceSpecReq - 81, // 67: hpcAC.hpcAC.GetInstanceLog:input_type -> hpcAC.GetInstanceLogReq - 84, // 68: hpcAC.hpcAC.GetFileList:input_type -> hpcAC.GetFileListReq - 90, // 69: hpcAC.hpcAC.GetFile:input_type -> hpcAC.GetFileReq - 92, // 70: hpcAC.hpcAC.UploadFile:input_type -> hpcAC.UploadFileReq - 98, // 71: hpcAC.hpcAC.GetUserInfo:input_type -> hpcAC.GetUserInfoReq - 101, // 72: hpcAC.hpcAC.GetMemberJobs:input_type -> hpcAC.GetMemberJobsReq - 95, // 73: hpcAC.hpcAC.GetNodeResources:input_type -> hpcAC.GetNodeResourcesReq - 12, // 74: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp - 14, // 75: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp - 18, // 76: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp - 2, // 77: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp - 7, // 78: hpcAC.hpcAC.GetJobDetail:output_type -> hpcAC.GetJobDetailResp - 9, // 79: hpcAC.hpcAC.DeleteJob:output_type -> hpcAC.DeleteJobResp - 38, // 80: hpcAC.hpcAC.FileContent:output_type -> hpcAC.FileContentResp - 42, // 81: hpcAC.hpcAC.SelectQueueByUser:output_type -> hpcAC.QueueResp - 44, // 82: hpcAC.hpcAC.QueryQueueDetails:output_type -> hpcAC.QueueDetailsResp - 46, // 83: hpcAC.hpcAC.QueryUserQuotasLimit:output_type -> hpcAC.UserQuotasLimitResp - 21, // 84: hpcAC.hpcAC.ParaStorQuota:output_type -> hpcAC.ParaStorQuotaResp - 24, // 85: hpcAC.hpcAC.WallTime:output_type -> hpcAC.WallTimeResp - 26, // 86: hpcAC.hpcAC.QueueJobs:output_type -> hpcAC.QueueJobsResp - 30, // 87: hpcAC.hpcAC.CpuCore:output_type -> hpcAC.CpuCoreResp - 33, // 88: hpcAC.hpcAC.jobs:output_type -> hpcAC.JobsResp - 37, // 89: hpcAC.hpcAC.HistoryJobDetail:output_type -> hpcAC.HistoryJobDetailResp - 52, // 90: hpcAC.hpcAC.GetACToken:output_type -> hpcAC.TokenResp - 55, // 91: hpcAC.hpcAC.GetACClusterId:output_type -> hpcAC.ClusterResp - 58, // 92: hpcAC.hpcAC.GetComputingPower:output_type -> hpcAC.cpResp - 59, // 93: hpcAC.hpcAC.GetGeneralInfo:output_type -> hpcAC.giResp - 62, // 94: hpcAC.hpcAC.SubmitPytorchTask:output_type -> hpcAC.SubmitTaskAiResp - 62, // 95: hpcAC.hpcAC.SubmitTensorflowTask:output_type -> hpcAC.SubmitTaskAiResp - 64, // 96: hpcAC.hpcAC.GetImageListAi:output_type -> hpcAC.GetImageListAiResp - 66, // 97: hpcAC.hpcAC.GetImageAiById:output_type -> hpcAC.GetImageAiByIdResp - 69, // 98: hpcAC.hpcAC.GetPytorchTask:output_type -> hpcAC.GetPytorchTaskResp - 70, // 99: hpcAC.hpcAC.GetTensorflowTask:output_type -> hpcAC.GetTensorflowTaskResp - 72, // 100: hpcAC.hpcAC.DeleteTaskAi:output_type -> hpcAC.DeleteTaskAiResp - 79, // 101: hpcAC.hpcAC.GetResourceSpec:output_type -> hpcAC.GetResourceSpecResp - 82, // 102: hpcAC.hpcAC.GetInstanceLog:output_type -> hpcAC.GetInstanceLogResp - 85, // 103: hpcAC.hpcAC.GetFileList:output_type -> hpcAC.GetFileListResp - 91, // 104: hpcAC.hpcAC.GetFile:output_type -> hpcAC.GetFileResp - 93, // 105: hpcAC.hpcAC.UploadFile:output_type -> hpcAC.UploadFileResp - 99, // 106: hpcAC.hpcAC.GetUserInfo:output_type -> hpcAC.GetUserInfoResp - 102, // 107: hpcAC.hpcAC.GetMemberJobs:output_type -> hpcAC.GetMemberJobsResp - 96, // 108: hpcAC.hpcAC.GetNodeResources:output_type -> hpcAC.GetNodeResourcesResp - 74, // [74:109] is the sub-list for method output_type - 39, // [39:74] is the sub-list for method input_type - 39, // [39:39] is the sub-list for extension type_name - 39, // [39:39] is the sub-list for extension extendee - 0, // [0:39] is the sub-list for field type_name + 81, // 23: hpcAC.SubmitPytorchTaskReq.params:type_name -> hpcAC.SubmitPytorchTaskParams + 82, // 24: hpcAC.SubmitTensorflowTaskReq.params:type_name -> hpcAC.SubmitTensorflowTaskParams + 85, // 25: hpcAC.GetImageListAiResp.data:type_name -> hpcAC.ImageAI + 85, // 26: hpcAC.GetImageAiByIdResp.image:type_name -> hpcAC.ImageAI + 78, // 27: hpcAC.GetInstanceListResp.data:type_name -> hpcAC.GetInstanceListParams + 69, // 28: hpcAC.GetInstanceDetailParams.containerPortInfoList:type_name -> hpcAC.ContainerPortInfo + 70, // 29: hpcAC.GetInstanceDetailResp.data:type_name -> hpcAC.GetInstanceDetailParams + 83, // 30: hpcAC.GetPytorchTaskResp.data:type_name -> hpcAC.GetPytorchTaskRespParams + 84, // 31: hpcAC.GetTensorflowTaskResp.data:type_name -> hpcAC.GetTensorflowTaskRespParams + 88, // 32: hpcAC.GetResourceSpecResp.data:type_name -> hpcAC.ResourceSpec + 91, // 33: hpcAC.GetInstanceLogResp.data:type_name -> hpcAC.LogData + 94, // 34: hpcAC.GetFileListResp.data:type_name -> hpcAC.FileListData + 97, // 35: hpcAC.FileListData.children:type_name -> hpcAC.Children + 95, // 36: hpcAC.FileListData.fileList:type_name -> hpcAC.FileList + 96, // 37: hpcAC.FileList.permissionAction:type_name -> hpcAC.PermissionAction + 102, // 38: hpcAC.UploadFileResp.data:type_name -> hpcAC.UploadFileData + 105, // 39: hpcAC.GetNodeResourcesResp.data:type_name -> hpcAC.GetNodeResourcesData + 108, // 40: hpcAC.GetUserInfoResp.data:type_name -> hpcAC.GetUserInfoData + 111, // 41: hpcAC.GetMemberJobsResp.data:type_name -> hpcAC.GetMemberJobsData + 11, // 42: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq + 13, // 43: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq + 17, // 44: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq + 1, // 45: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq + 6, // 46: hpcAC.hpcAC.GetJobDetail:input_type -> hpcAC.JobDetailReq + 8, // 47: hpcAC.hpcAC.DeleteJob:input_type -> hpcAC.DeleteJobReq + 39, // 48: hpcAC.hpcAC.FileContent:input_type -> hpcAC.FileDataReq + 41, // 49: hpcAC.hpcAC.SelectQueueByUser:input_type -> hpcAC.QueueReq + 41, // 50: hpcAC.hpcAC.QueryQueueDetails:input_type -> hpcAC.QueueReq + 41, // 51: hpcAC.hpcAC.QueryUserQuotasLimit:input_type -> hpcAC.QueueReq + 20, // 52: hpcAC.hpcAC.ParaStorQuota:input_type -> hpcAC.ParaStorQuotaReq + 23, // 53: hpcAC.hpcAC.WallTime:input_type -> hpcAC.WallTimeReq + 25, // 54: hpcAC.hpcAC.QueueJobs:input_type -> hpcAC.QueueJobsReq + 29, // 55: hpcAC.hpcAC.CpuCore:input_type -> hpcAC.CpuCoreReq + 32, // 56: hpcAC.hpcAC.jobs:input_type -> hpcAC.JobsReq + 35, // 57: hpcAC.hpcAC.HistoryJobDetail:input_type -> hpcAC.HistoryJobDetailReq + 48, // 58: hpcAC.hpcAC.GetACToken:input_type -> hpcAC.ACTokenReq + 53, // 59: hpcAC.hpcAC.GetACClusterId:input_type -> hpcAC.ACClusterReq + 57, // 60: hpcAC.hpcAC.GetComputingPower:input_type -> hpcAC.resourceReq + 57, // 61: hpcAC.hpcAC.GetGeneralInfo:input_type -> hpcAC.resourceReq + 60, // 62: hpcAC.hpcAC.SubmitPytorchTask:input_type -> hpcAC.SubmitPytorchTaskReq + 61, // 63: hpcAC.hpcAC.SubmitTensorflowTask:input_type -> hpcAC.SubmitTensorflowTaskReq + 63, // 64: hpcAC.hpcAC.GetImageListAi:input_type -> hpcAC.GetImageListAiReq + 65, // 65: hpcAC.hpcAC.GetImageAiById:input_type -> hpcAC.GetImageAiByIdReq + 72, // 66: hpcAC.hpcAC.GetPytorchTask:input_type -> hpcAC.GetPytorchTaskReq + 73, // 67: hpcAC.hpcAC.GetTensorflowTask:input_type -> hpcAC.GetTensorflowTaskReq + 76, // 68: hpcAC.hpcAC.DeleteTaskAi:input_type -> hpcAC.DeleteTaskAiReq + 86, // 69: hpcAC.hpcAC.GetResourceSpec:input_type -> hpcAC.GetResourceSpecReq + 89, // 70: hpcAC.hpcAC.GetInstanceLog:input_type -> hpcAC.GetInstanceLogReq + 67, // 71: hpcAC.hpcAC.GetInstanceListAi:input_type -> hpcAC.GetInstanceListReq + 79, // 72: hpcAC.hpcAC.GetInferUrl:input_type -> hpcAC.GetInferUrlReq + 92, // 73: hpcAC.hpcAC.GetFileList:input_type -> hpcAC.GetFileListReq + 98, // 74: hpcAC.hpcAC.GetFile:input_type -> hpcAC.GetFileReq + 100, // 75: hpcAC.hpcAC.UploadFile:input_type -> hpcAC.UploadFileReq + 106, // 76: hpcAC.hpcAC.GetUserInfo:input_type -> hpcAC.GetUserInfoReq + 109, // 77: hpcAC.hpcAC.GetMemberJobs:input_type -> hpcAC.GetMemberJobsReq + 103, // 78: hpcAC.hpcAC.GetNodeResources:input_type -> hpcAC.GetNodeResourcesReq + 12, // 79: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp + 14, // 80: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp + 18, // 81: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp + 2, // 82: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp + 7, // 83: hpcAC.hpcAC.GetJobDetail:output_type -> hpcAC.GetJobDetailResp + 9, // 84: hpcAC.hpcAC.DeleteJob:output_type -> hpcAC.DeleteJobResp + 38, // 85: hpcAC.hpcAC.FileContent:output_type -> hpcAC.FileContentResp + 42, // 86: hpcAC.hpcAC.SelectQueueByUser:output_type -> hpcAC.QueueResp + 44, // 87: hpcAC.hpcAC.QueryQueueDetails:output_type -> hpcAC.QueueDetailsResp + 46, // 88: hpcAC.hpcAC.QueryUserQuotasLimit:output_type -> hpcAC.UserQuotasLimitResp + 21, // 89: hpcAC.hpcAC.ParaStorQuota:output_type -> hpcAC.ParaStorQuotaResp + 24, // 90: hpcAC.hpcAC.WallTime:output_type -> hpcAC.WallTimeResp + 26, // 91: hpcAC.hpcAC.QueueJobs:output_type -> hpcAC.QueueJobsResp + 30, // 92: hpcAC.hpcAC.CpuCore:output_type -> hpcAC.CpuCoreResp + 33, // 93: hpcAC.hpcAC.jobs:output_type -> hpcAC.JobsResp + 37, // 94: hpcAC.hpcAC.HistoryJobDetail:output_type -> hpcAC.HistoryJobDetailResp + 52, // 95: hpcAC.hpcAC.GetACToken:output_type -> hpcAC.TokenResp + 55, // 96: hpcAC.hpcAC.GetACClusterId:output_type -> hpcAC.ClusterResp + 58, // 97: hpcAC.hpcAC.GetComputingPower:output_type -> hpcAC.cpResp + 59, // 98: hpcAC.hpcAC.GetGeneralInfo:output_type -> hpcAC.giResp + 62, // 99: hpcAC.hpcAC.SubmitPytorchTask:output_type -> hpcAC.SubmitTaskAiResp + 62, // 100: hpcAC.hpcAC.SubmitTensorflowTask:output_type -> hpcAC.SubmitTaskAiResp + 64, // 101: hpcAC.hpcAC.GetImageListAi:output_type -> hpcAC.GetImageListAiResp + 66, // 102: hpcAC.hpcAC.GetImageAiById:output_type -> hpcAC.GetImageAiByIdResp + 74, // 103: hpcAC.hpcAC.GetPytorchTask:output_type -> hpcAC.GetPytorchTaskResp + 75, // 104: hpcAC.hpcAC.GetTensorflowTask:output_type -> hpcAC.GetTensorflowTaskResp + 77, // 105: hpcAC.hpcAC.DeleteTaskAi:output_type -> hpcAC.DeleteTaskAiResp + 87, // 106: hpcAC.hpcAC.GetResourceSpec:output_type -> hpcAC.GetResourceSpecResp + 90, // 107: hpcAC.hpcAC.GetInstanceLog:output_type -> hpcAC.GetInstanceLogResp + 68, // 108: hpcAC.hpcAC.GetInstanceListAi:output_type -> hpcAC.GetInstanceListResp + 80, // 109: hpcAC.hpcAC.GetInferUrl:output_type -> hpcAC.GetInferUrlResp + 93, // 110: hpcAC.hpcAC.GetFileList:output_type -> hpcAC.GetFileListResp + 99, // 111: hpcAC.hpcAC.GetFile:output_type -> hpcAC.GetFileResp + 101, // 112: hpcAC.hpcAC.UploadFile:output_type -> hpcAC.UploadFileResp + 107, // 113: hpcAC.hpcAC.GetUserInfo:output_type -> hpcAC.GetUserInfoResp + 110, // 114: hpcAC.hpcAC.GetMemberJobs:output_type -> hpcAC.GetMemberJobsResp + 104, // 115: hpcAC.hpcAC.GetNodeResources:output_type -> hpcAC.GetNodeResourcesResp + 79, // [79:116] is the sub-list for method output_type + 42, // [42:79] is the sub-list for method input_type + 42, // [42:42] is the sub-list for extension type_name + 42, // [42:42] is the sub-list for extension extendee + 0, // [0:42] is the sub-list for field type_name } func init() { file_hpcAC_proto_init() } @@ -11987,7 +13295,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPytorchTaskReq); i { + switch v := v.(*GetInstanceListReq); i { case 0: return &v.state case 1: @@ -11999,7 +13307,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTensorflowTaskReq); i { + switch v := v.(*GetInstanceListResp); i { case 0: return &v.state case 1: @@ -12011,7 +13319,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPytorchTaskResp); i { + switch v := v.(*ContainerPortInfo); i { case 0: return &v.state case 1: @@ -12023,7 +13331,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTensorflowTaskResp); i { + switch v := v.(*GetInstanceDetailParams); i { case 0: return &v.state case 1: @@ -12035,7 +13343,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteTaskAiReq); i { + switch v := v.(*GetInstanceDetailResp); i { case 0: return &v.state case 1: @@ -12047,7 +13355,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteTaskAiResp); i { + switch v := v.(*GetPytorchTaskReq); i { case 0: return &v.state case 1: @@ -12059,7 +13367,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitPytorchTaskParams); i { + switch v := v.(*GetTensorflowTaskReq); i { case 0: return &v.state case 1: @@ -12071,7 +13379,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitTensorflowTaskParams); i { + switch v := v.(*GetPytorchTaskResp); i { case 0: return &v.state case 1: @@ -12083,7 +13391,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPytorchTaskRespParams); i { + switch v := v.(*GetTensorflowTaskResp); i { case 0: return &v.state case 1: @@ -12095,7 +13403,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTensorflowTaskRespParams); i { + switch v := v.(*DeleteTaskAiReq); i { case 0: return &v.state case 1: @@ -12107,7 +13415,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImageAI); i { + switch v := v.(*DeleteTaskAiResp); i { case 0: return &v.state case 1: @@ -12119,7 +13427,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResourceSpecReq); i { + switch v := v.(*GetInstanceListParams); i { case 0: return &v.state case 1: @@ -12131,7 +13439,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResourceSpecResp); i { + switch v := v.(*GetInferUrlReq); i { case 0: return &v.state case 1: @@ -12143,7 +13451,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceSpec); i { + switch v := v.(*GetInferUrlResp); i { case 0: return &v.state case 1: @@ -12155,7 +13463,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetInstanceLogReq); i { + switch v := v.(*SubmitPytorchTaskParams); i { case 0: return &v.state case 1: @@ -12167,7 +13475,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetInstanceLogResp); i { + switch v := v.(*SubmitTensorflowTaskParams); i { case 0: return &v.state case 1: @@ -12179,7 +13487,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogData); i { + switch v := v.(*GetPytorchTaskRespParams); i { case 0: return &v.state case 1: @@ -12191,7 +13499,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFileListReq); i { + switch v := v.(*GetTensorflowTaskRespParams); i { case 0: return &v.state case 1: @@ -12203,7 +13511,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFileListResp); i { + switch v := v.(*ImageAI); i { case 0: return &v.state case 1: @@ -12215,7 +13523,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileListData); i { + switch v := v.(*GetResourceSpecReq); i { case 0: return &v.state case 1: @@ -12227,7 +13535,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileList); i { + switch v := v.(*GetResourceSpecResp); i { case 0: return &v.state case 1: @@ -12239,7 +13547,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PermissionAction); i { + switch v := v.(*ResourceSpec); i { case 0: return &v.state case 1: @@ -12251,7 +13559,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Children); i { + switch v := v.(*GetInstanceLogReq); i { case 0: return &v.state case 1: @@ -12263,7 +13571,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFileReq); i { + switch v := v.(*GetInstanceLogResp); i { case 0: return &v.state case 1: @@ -12275,7 +13583,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFileResp); i { + switch v := v.(*LogData); i { case 0: return &v.state case 1: @@ -12287,7 +13595,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadFileReq); i { + switch v := v.(*GetFileListReq); i { case 0: return &v.state case 1: @@ -12299,7 +13607,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadFileResp); i { + switch v := v.(*GetFileListResp); i { case 0: return &v.state case 1: @@ -12311,7 +13619,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadFileData); i { + switch v := v.(*FileListData); i { case 0: return &v.state case 1: @@ -12323,7 +13631,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodeResourcesReq); i { + switch v := v.(*FileList); i { case 0: return &v.state case 1: @@ -12335,7 +13643,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodeResourcesResp); i { + switch v := v.(*PermissionAction); i { case 0: return &v.state case 1: @@ -12347,7 +13655,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodeResourcesData); i { + switch v := v.(*Children); i { case 0: return &v.state case 1: @@ -12359,7 +13667,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoReq); i { + switch v := v.(*GetFileReq); i { case 0: return &v.state case 1: @@ -12371,7 +13679,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoResp); i { + switch v := v.(*GetFileResp); i { case 0: return &v.state case 1: @@ -12383,7 +13691,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoData); i { + switch v := v.(*UploadFileReq); i { case 0: return &v.state case 1: @@ -12395,7 +13703,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMemberJobsReq); i { + switch v := v.(*UploadFileResp); i { case 0: return &v.state case 1: @@ -12407,7 +13715,7 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMemberJobsResp); i { + switch v := v.(*UploadFileData); i { case 0: return &v.state case 1: @@ -12419,6 +13727,102 @@ func file_hpcAC_proto_init() { } } file_hpcAC_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNodeResourcesReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNodeResourcesResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNodeResourcesData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[106].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_hpcAC_proto_msgTypes[107].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_hpcAC_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMemberJobsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMemberJobsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMemberJobsData); i { case 0: return &v.state @@ -12437,7 +13841,7 @@ func file_hpcAC_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hpcAC_proto_rawDesc, NumEnums: 0, - NumMessages: 105, + NumMessages: 113, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC_grpc.pb.go b/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC_grpc.pb.go index ed55c3b9..dcfd33f2 100644 --- a/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC_grpc.pb.go +++ b/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcAC/hpcAC_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 +// - protoc-gen-go-grpc v1.2.0 // - protoc v3.19.4 // source: hpcAC.proto @@ -18,44 +18,6 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 -const ( - HpcAC_ListJob_FullMethodName = "/hpcAC.hpcAC/ListJob" - HpcAC_ListHistoryJob_FullMethodName = "/hpcAC.hpcAC/ListHistoryJob" - HpcAC_SubmitJob_FullMethodName = "/hpcAC.hpcAC/SubmitJob" - HpcAC_ListJobManager_FullMethodName = "/hpcAC.hpcAC/ListJobManager" - HpcAC_GetJobDetail_FullMethodName = "/hpcAC.hpcAC/GetJobDetail" - HpcAC_DeleteJob_FullMethodName = "/hpcAC.hpcAC/DeleteJob" - HpcAC_FileContent_FullMethodName = "/hpcAC.hpcAC/FileContent" - HpcAC_SelectQueueByUser_FullMethodName = "/hpcAC.hpcAC/SelectQueueByUser" - HpcAC_QueryQueueDetails_FullMethodName = "/hpcAC.hpcAC/QueryQueueDetails" - HpcAC_QueryUserQuotasLimit_FullMethodName = "/hpcAC.hpcAC/QueryUserQuotasLimit" - HpcAC_ParaStorQuota_FullMethodName = "/hpcAC.hpcAC/ParaStorQuota" - HpcAC_WallTime_FullMethodName = "/hpcAC.hpcAC/WallTime" - HpcAC_QueueJobs_FullMethodName = "/hpcAC.hpcAC/QueueJobs" - HpcAC_CpuCore_FullMethodName = "/hpcAC.hpcAC/CpuCore" - HpcAC_Jobs_FullMethodName = "/hpcAC.hpcAC/jobs" - HpcAC_HistoryJobDetail_FullMethodName = "/hpcAC.hpcAC/HistoryJobDetail" - HpcAC_GetACToken_FullMethodName = "/hpcAC.hpcAC/GetACToken" - HpcAC_GetACClusterId_FullMethodName = "/hpcAC.hpcAC/GetACClusterId" - HpcAC_GetComputingPower_FullMethodName = "/hpcAC.hpcAC/GetComputingPower" - HpcAC_GetGeneralInfo_FullMethodName = "/hpcAC.hpcAC/GetGeneralInfo" - HpcAC_SubmitPytorchTask_FullMethodName = "/hpcAC.hpcAC/SubmitPytorchTask" - HpcAC_SubmitTensorflowTask_FullMethodName = "/hpcAC.hpcAC/SubmitTensorflowTask" - HpcAC_GetImageListAi_FullMethodName = "/hpcAC.hpcAC/GetImageListAi" - HpcAC_GetImageAiById_FullMethodName = "/hpcAC.hpcAC/GetImageAiById" - HpcAC_GetPytorchTask_FullMethodName = "/hpcAC.hpcAC/GetPytorchTask" - HpcAC_GetTensorflowTask_FullMethodName = "/hpcAC.hpcAC/GetTensorflowTask" - HpcAC_DeleteTaskAi_FullMethodName = "/hpcAC.hpcAC/DeleteTaskAi" - HpcAC_GetResourceSpec_FullMethodName = "/hpcAC.hpcAC/GetResourceSpec" - HpcAC_GetInstanceLog_FullMethodName = "/hpcAC.hpcAC/GetInstanceLog" - HpcAC_GetFileList_FullMethodName = "/hpcAC.hpcAC/GetFileList" - HpcAC_GetFile_FullMethodName = "/hpcAC.hpcAC/GetFile" - HpcAC_UploadFile_FullMethodName = "/hpcAC.hpcAC/UploadFile" - HpcAC_GetUserInfo_FullMethodName = "/hpcAC.hpcAC/GetUserInfo" - HpcAC_GetMemberJobs_FullMethodName = "/hpcAC.hpcAC/GetMemberJobs" - HpcAC_GetNodeResources_FullMethodName = "/hpcAC.hpcAC/GetNodeResources" -) - // HpcACClient is the client API for HpcAC service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -107,6 +69,8 @@ type HpcACClient interface { DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error) GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error) + GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error) + GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error) // 曙光文件接口 GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error) @@ -128,7 +92,7 @@ func NewHpcACClient(cc grpc.ClientConnInterface) HpcACClient { func (c *hpcACClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc.CallOption) (*ListJobResp, error) { out := new(ListJobResp) - err := c.cc.Invoke(ctx, HpcAC_ListJob_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ListJob", in, out, opts...) if err != nil { return nil, err } @@ -137,7 +101,7 @@ func (c *hpcACClient) ListJob(ctx context.Context, in *ListJobReq, opts ...grpc. func (c *hpcACClient) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, opts ...grpc.CallOption) (*ListHistoryJobResp, error) { out := new(ListHistoryJobResp) - err := c.cc.Invoke(ctx, HpcAC_ListHistoryJob_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ListHistoryJob", in, out, opts...) if err != nil { return nil, err } @@ -146,7 +110,7 @@ func (c *hpcACClient) ListHistoryJob(ctx context.Context, in *ListHistoryJobReq, func (c *hpcACClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) { out := new(SubmitJobResp) - err := c.cc.Invoke(ctx, HpcAC_SubmitJob_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SubmitJob", in, out, opts...) if err != nil { return nil, err } @@ -155,7 +119,7 @@ func (c *hpcACClient) SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...g func (c *hpcACClient) ListJobManager(ctx context.Context, in *JobManagerReq, opts ...grpc.CallOption) (*ListJobManagerResp, error) { out := new(ListJobManagerResp) - err := c.cc.Invoke(ctx, HpcAC_ListJobManager_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ListJobManager", in, out, opts...) if err != nil { return nil, err } @@ -164,7 +128,7 @@ func (c *hpcACClient) ListJobManager(ctx context.Context, in *JobManagerReq, opt func (c *hpcACClient) GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) { out := new(GetJobDetailResp) - err := c.cc.Invoke(ctx, HpcAC_GetJobDetail_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetJobDetail", in, out, opts...) if err != nil { return nil, err } @@ -173,7 +137,7 @@ func (c *hpcACClient) GetJobDetail(ctx context.Context, in *JobDetailReq, opts . func (c *hpcACClient) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) { out := new(DeleteJobResp) - err := c.cc.Invoke(ctx, HpcAC_DeleteJob_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/DeleteJob", in, out, opts...) if err != nil { return nil, err } @@ -182,7 +146,7 @@ func (c *hpcACClient) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...g func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) { out := new(FileContentResp) - err := c.cc.Invoke(ctx, HpcAC_FileContent_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/FileContent", in, out, opts...) if err != nil { return nil, err } @@ -191,7 +155,7 @@ func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ... func (c *hpcACClient) SelectQueueByUser(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueResp, error) { out := new(QueueResp) - err := c.cc.Invoke(ctx, HpcAC_SelectQueueByUser_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SelectQueueByUser", in, out, opts...) if err != nil { return nil, err } @@ -200,7 +164,7 @@ func (c *hpcACClient) SelectQueueByUser(ctx context.Context, in *QueueReq, opts func (c *hpcACClient) QueryQueueDetails(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueDetailsResp, error) { out := new(QueueDetailsResp) - err := c.cc.Invoke(ctx, HpcAC_QueryQueueDetails_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueryQueueDetails", in, out, opts...) if err != nil { return nil, err } @@ -209,7 +173,7 @@ func (c *hpcACClient) QueryQueueDetails(ctx context.Context, in *QueueReq, opts func (c *hpcACClient) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) { out := new(UserQuotasLimitResp) - err := c.cc.Invoke(ctx, HpcAC_QueryUserQuotasLimit_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueryUserQuotasLimit", in, out, opts...) if err != nil { return nil, err } @@ -218,7 +182,7 @@ func (c *hpcACClient) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, op func (c *hpcACClient) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) { out := new(ParaStorQuotaResp) - err := c.cc.Invoke(ctx, HpcAC_ParaStorQuota_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ParaStorQuota", in, out, opts...) if err != nil { return nil, err } @@ -227,7 +191,7 @@ func (c *hpcACClient) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, o func (c *hpcACClient) WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) { out := new(WallTimeResp) - err := c.cc.Invoke(ctx, HpcAC_WallTime_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/WallTime", in, out, opts...) if err != nil { return nil, err } @@ -236,7 +200,7 @@ func (c *hpcACClient) WallTime(ctx context.Context, in *WallTimeReq, opts ...grp func (c *hpcACClient) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) { out := new(QueueJobsResp) - err := c.cc.Invoke(ctx, HpcAC_QueueJobs_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueueJobs", in, out, opts...) if err != nil { return nil, err } @@ -245,7 +209,7 @@ func (c *hpcACClient) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...g func (c *hpcACClient) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) { out := new(CpuCoreResp) - err := c.cc.Invoke(ctx, HpcAC_CpuCore_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/CpuCore", in, out, opts...) if err != nil { return nil, err } @@ -254,7 +218,7 @@ func (c *hpcACClient) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc. func (c *hpcACClient) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) { out := new(JobsResp) - err := c.cc.Invoke(ctx, HpcAC_Jobs_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/jobs", in, out, opts...) if err != nil { return nil, err } @@ -263,7 +227,7 @@ func (c *hpcACClient) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOp func (c *hpcACClient) HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) { out := new(HistoryJobDetailResp) - err := c.cc.Invoke(ctx, HpcAC_HistoryJobDetail_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/HistoryJobDetail", in, out, opts...) if err != nil { return nil, err } @@ -272,7 +236,7 @@ func (c *hpcACClient) HistoryJobDetail(ctx context.Context, in *HistoryJobDetail func (c *hpcACClient) GetACToken(ctx context.Context, in *ACTokenReq, opts ...grpc.CallOption) (*TokenResp, error) { out := new(TokenResp) - err := c.cc.Invoke(ctx, HpcAC_GetACToken_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetACToken", in, out, opts...) if err != nil { return nil, err } @@ -281,7 +245,7 @@ func (c *hpcACClient) GetACToken(ctx context.Context, in *ACTokenReq, opts ...gr func (c *hpcACClient) GetACClusterId(ctx context.Context, in *ACClusterReq, opts ...grpc.CallOption) (*ClusterResp, error) { out := new(ClusterResp) - err := c.cc.Invoke(ctx, HpcAC_GetACClusterId_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetACClusterId", in, out, opts...) if err != nil { return nil, err } @@ -290,7 +254,7 @@ func (c *hpcACClient) GetACClusterId(ctx context.Context, in *ACClusterReq, opts func (c *hpcACClient) GetComputingPower(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*CpResp, error) { out := new(CpResp) - err := c.cc.Invoke(ctx, HpcAC_GetComputingPower_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetComputingPower", in, out, opts...) if err != nil { return nil, err } @@ -299,7 +263,7 @@ func (c *hpcACClient) GetComputingPower(ctx context.Context, in *ResourceReq, op func (c *hpcACClient) GetGeneralInfo(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*GiResp, error) { out := new(GiResp) - err := c.cc.Invoke(ctx, HpcAC_GetGeneralInfo_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetGeneralInfo", in, out, opts...) if err != nil { return nil, err } @@ -308,7 +272,7 @@ func (c *hpcACClient) GetGeneralInfo(ctx context.Context, in *ResourceReq, opts func (c *hpcACClient) SubmitPytorchTask(ctx context.Context, in *SubmitPytorchTaskReq, opts ...grpc.CallOption) (*SubmitTaskAiResp, error) { out := new(SubmitTaskAiResp) - err := c.cc.Invoke(ctx, HpcAC_SubmitPytorchTask_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SubmitPytorchTask", in, out, opts...) if err != nil { return nil, err } @@ -317,7 +281,7 @@ func (c *hpcACClient) SubmitPytorchTask(ctx context.Context, in *SubmitPytorchTa func (c *hpcACClient) SubmitTensorflowTask(ctx context.Context, in *SubmitTensorflowTaskReq, opts ...grpc.CallOption) (*SubmitTaskAiResp, error) { out := new(SubmitTaskAiResp) - err := c.cc.Invoke(ctx, HpcAC_SubmitTensorflowTask_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SubmitTensorflowTask", in, out, opts...) if err != nil { return nil, err } @@ -326,7 +290,7 @@ func (c *hpcACClient) SubmitTensorflowTask(ctx context.Context, in *SubmitTensor func (c *hpcACClient) GetImageListAi(ctx context.Context, in *GetImageListAiReq, opts ...grpc.CallOption) (*GetImageListAiResp, error) { out := new(GetImageListAiResp) - err := c.cc.Invoke(ctx, HpcAC_GetImageListAi_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetImageListAi", in, out, opts...) if err != nil { return nil, err } @@ -335,7 +299,7 @@ func (c *hpcACClient) GetImageListAi(ctx context.Context, in *GetImageListAiReq, func (c *hpcACClient) GetImageAiById(ctx context.Context, in *GetImageAiByIdReq, opts ...grpc.CallOption) (*GetImageAiByIdResp, error) { out := new(GetImageAiByIdResp) - err := c.cc.Invoke(ctx, HpcAC_GetImageAiById_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetImageAiById", in, out, opts...) if err != nil { return nil, err } @@ -344,7 +308,7 @@ func (c *hpcACClient) GetImageAiById(ctx context.Context, in *GetImageAiByIdReq, func (c *hpcACClient) GetPytorchTask(ctx context.Context, in *GetPytorchTaskReq, opts ...grpc.CallOption) (*GetPytorchTaskResp, error) { out := new(GetPytorchTaskResp) - err := c.cc.Invoke(ctx, HpcAC_GetPytorchTask_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetPytorchTask", in, out, opts...) if err != nil { return nil, err } @@ -353,7 +317,7 @@ func (c *hpcACClient) GetPytorchTask(ctx context.Context, in *GetPytorchTaskReq, func (c *hpcACClient) GetTensorflowTask(ctx context.Context, in *GetTensorflowTaskReq, opts ...grpc.CallOption) (*GetTensorflowTaskResp, error) { out := new(GetTensorflowTaskResp) - err := c.cc.Invoke(ctx, HpcAC_GetTensorflowTask_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetTensorflowTask", in, out, opts...) if err != nil { return nil, err } @@ -362,7 +326,7 @@ func (c *hpcACClient) GetTensorflowTask(ctx context.Context, in *GetTensorflowTa func (c *hpcACClient) DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error) { out := new(DeleteTaskAiResp) - err := c.cc.Invoke(ctx, HpcAC_DeleteTaskAi_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/DeleteTaskAi", in, out, opts...) if err != nil { return nil, err } @@ -371,7 +335,7 @@ func (c *hpcACClient) DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opt func (c *hpcACClient) GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error) { out := new(GetResourceSpecResp) - err := c.cc.Invoke(ctx, HpcAC_GetResourceSpec_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetResourceSpec", in, out, opts...) if err != nil { return nil, err } @@ -380,7 +344,25 @@ func (c *hpcACClient) GetResourceSpec(ctx context.Context, in *GetResourceSpecRe func (c *hpcACClient) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error) { out := new(GetInstanceLogResp) - err := c.cc.Invoke(ctx, HpcAC_GetInstanceLog_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetInstanceLog", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error) { + out := new(GetInstanceListResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetInstanceListAi", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error) { + out := new(GetInferUrlResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetInferUrl", in, out, opts...) if err != nil { return nil, err } @@ -389,7 +371,7 @@ func (c *hpcACClient) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, func (c *hpcACClient) GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) { out := new(GetFileListResp) - err := c.cc.Invoke(ctx, HpcAC_GetFileList_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetFileList", in, out, opts...) if err != nil { return nil, err } @@ -398,7 +380,7 @@ func (c *hpcACClient) GetFileList(ctx context.Context, in *GetFileListReq, opts func (c *hpcACClient) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error) { out := new(GetFileResp) - err := c.cc.Invoke(ctx, HpcAC_GetFile_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetFile", in, out, opts...) if err != nil { return nil, err } @@ -407,7 +389,7 @@ func (c *hpcACClient) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc. func (c *hpcACClient) UploadFile(ctx context.Context, in *UploadFileReq, opts ...grpc.CallOption) (*UploadFileResp, error) { out := new(UploadFileResp) - err := c.cc.Invoke(ctx, HpcAC_UploadFile_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/UploadFile", in, out, opts...) if err != nil { return nil, err } @@ -416,7 +398,7 @@ func (c *hpcACClient) UploadFile(ctx context.Context, in *UploadFileReq, opts .. func (c *hpcACClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { out := new(GetUserInfoResp) - err := c.cc.Invoke(ctx, HpcAC_GetUserInfo_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetUserInfo", in, out, opts...) if err != nil { return nil, err } @@ -425,7 +407,7 @@ func (c *hpcACClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts func (c *hpcACClient) GetMemberJobs(ctx context.Context, in *GetMemberJobsReq, opts ...grpc.CallOption) (*GetMemberJobsResp, error) { out := new(GetMemberJobsResp) - err := c.cc.Invoke(ctx, HpcAC_GetMemberJobs_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetMemberJobs", in, out, opts...) if err != nil { return nil, err } @@ -434,7 +416,7 @@ func (c *hpcACClient) GetMemberJobs(ctx context.Context, in *GetMemberJobsReq, o func (c *hpcACClient) GetNodeResources(ctx context.Context, in *GetNodeResourcesReq, opts ...grpc.CallOption) (*GetNodeResourcesResp, error) { out := new(GetNodeResourcesResp) - err := c.cc.Invoke(ctx, HpcAC_GetNodeResources_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetNodeResources", in, out, opts...) if err != nil { return nil, err } @@ -492,6 +474,8 @@ type HpcACServer interface { DeleteTaskAi(context.Context, *DeleteTaskAiReq) (*DeleteTaskAiResp, error) GetResourceSpec(context.Context, *GetResourceSpecReq) (*GetResourceSpecResp, error) GetInstanceLog(context.Context, *GetInstanceLogReq) (*GetInstanceLogResp, error) + GetInstanceListAi(context.Context, *GetInstanceListReq) (*GetInstanceListResp, error) + GetInferUrl(context.Context, *GetInferUrlReq) (*GetInferUrlResp, error) // 曙光文件接口 GetFileList(context.Context, *GetFileListReq) (*GetFileListResp, error) GetFile(context.Context, *GetFileReq) (*GetFileResp, error) @@ -595,6 +579,12 @@ func (UnimplementedHpcACServer) GetResourceSpec(context.Context, *GetResourceSpe func (UnimplementedHpcACServer) GetInstanceLog(context.Context, *GetInstanceLogReq) (*GetInstanceLogResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInstanceLog not implemented") } +func (UnimplementedHpcACServer) GetInstanceListAi(context.Context, *GetInstanceListReq) (*GetInstanceListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInstanceListAi not implemented") +} +func (UnimplementedHpcACServer) GetInferUrl(context.Context, *GetInferUrlReq) (*GetInferUrlResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInferUrl not implemented") +} func (UnimplementedHpcACServer) GetFileList(context.Context, *GetFileListReq) (*GetFileListResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFileList not implemented") } @@ -636,7 +626,7 @@ func _HpcAC_ListJob_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_ListJob_FullMethodName, + FullMethod: "/hpcAC.hpcAC/ListJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).ListJob(ctx, req.(*ListJobReq)) @@ -654,7 +644,7 @@ func _HpcAC_ListHistoryJob_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_ListHistoryJob_FullMethodName, + FullMethod: "/hpcAC.hpcAC/ListHistoryJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).ListHistoryJob(ctx, req.(*ListHistoryJobReq)) @@ -672,7 +662,7 @@ func _HpcAC_SubmitJob_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_SubmitJob_FullMethodName, + FullMethod: "/hpcAC.hpcAC/SubmitJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).SubmitJob(ctx, req.(*SubmitJobReq)) @@ -690,7 +680,7 @@ func _HpcAC_ListJobManager_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_ListJobManager_FullMethodName, + FullMethod: "/hpcAC.hpcAC/ListJobManager", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).ListJobManager(ctx, req.(*JobManagerReq)) @@ -708,7 +698,7 @@ func _HpcAC_GetJobDetail_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetJobDetail_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetJobDetail", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetJobDetail(ctx, req.(*JobDetailReq)) @@ -726,7 +716,7 @@ func _HpcAC_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_DeleteJob_FullMethodName, + FullMethod: "/hpcAC.hpcAC/DeleteJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).DeleteJob(ctx, req.(*DeleteJobReq)) @@ -744,7 +734,7 @@ func _HpcAC_FileContent_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_FileContent_FullMethodName, + FullMethod: "/hpcAC.hpcAC/FileContent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).FileContent(ctx, req.(*FileDataReq)) @@ -762,7 +752,7 @@ func _HpcAC_SelectQueueByUser_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_SelectQueueByUser_FullMethodName, + FullMethod: "/hpcAC.hpcAC/SelectQueueByUser", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).SelectQueueByUser(ctx, req.(*QueueReq)) @@ -780,7 +770,7 @@ func _HpcAC_QueryQueueDetails_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_QueryQueueDetails_FullMethodName, + FullMethod: "/hpcAC.hpcAC/QueryQueueDetails", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).QueryQueueDetails(ctx, req.(*QueueReq)) @@ -798,7 +788,7 @@ func _HpcAC_QueryUserQuotasLimit_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_QueryUserQuotasLimit_FullMethodName, + FullMethod: "/hpcAC.hpcAC/QueryUserQuotasLimit", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).QueryUserQuotasLimit(ctx, req.(*QueueReq)) @@ -816,7 +806,7 @@ func _HpcAC_ParaStorQuota_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_ParaStorQuota_FullMethodName, + FullMethod: "/hpcAC.hpcAC/ParaStorQuota", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).ParaStorQuota(ctx, req.(*ParaStorQuotaReq)) @@ -834,7 +824,7 @@ func _HpcAC_WallTime_Handler(srv interface{}, ctx context.Context, dec func(inte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_WallTime_FullMethodName, + FullMethod: "/hpcAC.hpcAC/WallTime", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).WallTime(ctx, req.(*WallTimeReq)) @@ -852,7 +842,7 @@ func _HpcAC_QueueJobs_Handler(srv interface{}, ctx context.Context, dec func(int } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_QueueJobs_FullMethodName, + FullMethod: "/hpcAC.hpcAC/QueueJobs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).QueueJobs(ctx, req.(*QueueJobsReq)) @@ -870,7 +860,7 @@ func _HpcAC_CpuCore_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_CpuCore_FullMethodName, + FullMethod: "/hpcAC.hpcAC/CpuCore", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).CpuCore(ctx, req.(*CpuCoreReq)) @@ -888,7 +878,7 @@ func _HpcAC_Jobs_Handler(srv interface{}, ctx context.Context, dec func(interfac } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_Jobs_FullMethodName, + FullMethod: "/hpcAC.hpcAC/jobs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).Jobs(ctx, req.(*JobsReq)) @@ -906,7 +896,7 @@ func _HpcAC_HistoryJobDetail_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_HistoryJobDetail_FullMethodName, + FullMethod: "/hpcAC.hpcAC/HistoryJobDetail", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).HistoryJobDetail(ctx, req.(*HistoryJobDetailReq)) @@ -924,7 +914,7 @@ func _HpcAC_GetACToken_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetACToken_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetACToken", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetACToken(ctx, req.(*ACTokenReq)) @@ -942,7 +932,7 @@ func _HpcAC_GetACClusterId_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetACClusterId_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetACClusterId", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetACClusterId(ctx, req.(*ACClusterReq)) @@ -960,7 +950,7 @@ func _HpcAC_GetComputingPower_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetComputingPower_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetComputingPower", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetComputingPower(ctx, req.(*ResourceReq)) @@ -978,7 +968,7 @@ func _HpcAC_GetGeneralInfo_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetGeneralInfo_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetGeneralInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetGeneralInfo(ctx, req.(*ResourceReq)) @@ -996,7 +986,7 @@ func _HpcAC_SubmitPytorchTask_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_SubmitPytorchTask_FullMethodName, + FullMethod: "/hpcAC.hpcAC/SubmitPytorchTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).SubmitPytorchTask(ctx, req.(*SubmitPytorchTaskReq)) @@ -1014,7 +1004,7 @@ func _HpcAC_SubmitTensorflowTask_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_SubmitTensorflowTask_FullMethodName, + FullMethod: "/hpcAC.hpcAC/SubmitTensorflowTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).SubmitTensorflowTask(ctx, req.(*SubmitTensorflowTaskReq)) @@ -1032,7 +1022,7 @@ func _HpcAC_GetImageListAi_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetImageListAi_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetImageListAi", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetImageListAi(ctx, req.(*GetImageListAiReq)) @@ -1050,7 +1040,7 @@ func _HpcAC_GetImageAiById_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetImageAiById_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetImageAiById", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetImageAiById(ctx, req.(*GetImageAiByIdReq)) @@ -1068,7 +1058,7 @@ func _HpcAC_GetPytorchTask_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetPytorchTask_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetPytorchTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetPytorchTask(ctx, req.(*GetPytorchTaskReq)) @@ -1086,7 +1076,7 @@ func _HpcAC_GetTensorflowTask_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetTensorflowTask_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetTensorflowTask", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetTensorflowTask(ctx, req.(*GetTensorflowTaskReq)) @@ -1104,7 +1094,7 @@ func _HpcAC_DeleteTaskAi_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_DeleteTaskAi_FullMethodName, + FullMethod: "/hpcAC.hpcAC/DeleteTaskAi", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).DeleteTaskAi(ctx, req.(*DeleteTaskAiReq)) @@ -1122,7 +1112,7 @@ func _HpcAC_GetResourceSpec_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetResourceSpec_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetResourceSpec", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetResourceSpec(ctx, req.(*GetResourceSpecReq)) @@ -1140,7 +1130,7 @@ func _HpcAC_GetInstanceLog_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetInstanceLog_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetInstanceLog", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetInstanceLog(ctx, req.(*GetInstanceLogReq)) @@ -1148,6 +1138,42 @@ func _HpcAC_GetInstanceLog_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _HpcAC_GetInstanceListAi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInstanceListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).GetInstanceListAi(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/GetInstanceListAi", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).GetInstanceListAi(ctx, req.(*GetInstanceListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_GetInferUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInferUrlReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).GetInferUrl(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/GetInferUrl", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).GetInferUrl(ctx, req.(*GetInferUrlReq)) + } + return interceptor(ctx, in, info, handler) +} + func _HpcAC_GetFileList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetFileListReq) if err := dec(in); err != nil { @@ -1158,7 +1184,7 @@ func _HpcAC_GetFileList_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetFileList_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetFileList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetFileList(ctx, req.(*GetFileListReq)) @@ -1176,7 +1202,7 @@ func _HpcAC_GetFile_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetFile_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetFile", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetFile(ctx, req.(*GetFileReq)) @@ -1194,7 +1220,7 @@ func _HpcAC_UploadFile_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_UploadFile_FullMethodName, + FullMethod: "/hpcAC.hpcAC/UploadFile", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).UploadFile(ctx, req.(*UploadFileReq)) @@ -1212,7 +1238,7 @@ func _HpcAC_GetUserInfo_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetUserInfo_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetUserInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetUserInfo(ctx, req.(*GetUserInfoReq)) @@ -1230,7 +1256,7 @@ func _HpcAC_GetMemberJobs_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetMemberJobs_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetMemberJobs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetMemberJobs(ctx, req.(*GetMemberJobsReq)) @@ -1248,7 +1274,7 @@ func _HpcAC_GetNodeResources_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HpcAC_GetNodeResources_FullMethodName, + FullMethod: "/hpcAC.hpcAC/GetNodeResources", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetNodeResources(ctx, req.(*GetNodeResourcesReq)) @@ -1379,6 +1405,14 @@ var HpcAC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetInstanceLog", Handler: _HpcAC_GetInstanceLog_Handler, }, + { + MethodName: "GetInstanceListAi", + Handler: _HpcAC_GetInstanceListAi_Handler, + }, + { + MethodName: "GetInferUrl", + Handler: _HpcAC_GetInferUrl_Handler, + }, { MethodName: "GetFileList", Handler: _HpcAC_GetFileList_Handler, diff --git a/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcacclient/hpcac.go b/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcacclient/hpcac.go index 8439031d..55d36e3e 100644 --- a/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcacclient/hpcac.go +++ b/vendor/gitlink.org.cn/JointCloud/pcm-ac/hpcacclient/hpcac.go @@ -1,7 +1,7 @@ // Code generated by goctl. DO NOT EDIT. // Source: hpcAC.proto -package hpcacclient +package hpcACClient import ( "context" @@ -22,6 +22,7 @@ type ( ACTokenState = hpcAC.ACTokenState Children = hpcAC.Children ClusterResp = hpcAC.ClusterResp + ContainerPortInfo = hpcAC.ContainerPortInfo CpResp = hpcAC.CpResp CpuCore = hpcAC.CpuCore CpuCoreReq = hpcAC.CpuCoreReq @@ -43,6 +44,13 @@ type ( GetImageAiByIdResp = hpcAC.GetImageAiByIdResp GetImageListAiReq = hpcAC.GetImageListAiReq GetImageListAiResp = hpcAC.GetImageListAiResp + GetInferUrlReq = hpcAC.GetInferUrlReq + GetInferUrlResp = hpcAC.GetInferUrlResp + GetInstanceDetailParams = hpcAC.GetInstanceDetailParams + GetInstanceDetailResp = hpcAC.GetInstanceDetailResp + GetInstanceListParams = hpcAC.GetInstanceListParams + GetInstanceListReq = hpcAC.GetInstanceListReq + GetInstanceListResp = hpcAC.GetInstanceListResp GetInstanceLogReq = hpcAC.GetInstanceLogReq GetInstanceLogResp = hpcAC.GetInstanceLogResp GetJobDetailResp = hpcAC.GetJobDetailResp @@ -166,6 +174,8 @@ type ( DeleteTaskAi(ctx context.Context, in *DeleteTaskAiReq, opts ...grpc.CallOption) (*DeleteTaskAiResp, error) GetResourceSpec(ctx context.Context, in *GetResourceSpecReq, opts ...grpc.CallOption) (*GetResourceSpecResp, error) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq, opts ...grpc.CallOption) (*GetInstanceLogResp, error) + GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error) + GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error) // 曙光文件接口 GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) GetFile(ctx context.Context, in *GetFileReq, opts ...grpc.CallOption) (*GetFileResp, error) @@ -351,6 +361,16 @@ func (m *defaultHpcAC) GetInstanceLog(ctx context.Context, in *GetInstanceLogReq return client.GetInstanceLog(ctx, in, opts...) } +func (m *defaultHpcAC) GetInstanceListAi(ctx context.Context, in *GetInstanceListReq, opts ...grpc.CallOption) (*GetInstanceListResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.GetInstanceListAi(ctx, in, opts...) +} + +func (m *defaultHpcAC) GetInferUrl(ctx context.Context, in *GetInferUrlReq, opts ...grpc.CallOption) (*GetInferUrlResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.GetInferUrl(ctx, in, opts...) +} + // 曙光文件接口 func (m *defaultHpcAC) GetFileList(ctx context.Context, in *GetFileListReq, opts ...grpc.CallOption) (*GetFileListResp, error) { client := hpcAC.NewHpcACClient(m.cli.Conn()) diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go index a45625c8..87e46bd4 100644 --- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go @@ -252,6 +252,7 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record fu {rv.MethodByName("Values"), "Values"}, {rv.MethodByName("ReservedNames"), "ReservedNames"}, {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, + {rv.MethodByName("IsClosed"), "IsClosed"}, }...) case protoreflect.EnumValueDescriptor: diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb index 18f07568..f691305e 100644 Binary files a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb and b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb differ diff --git a/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go b/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go new file mode 100644 index 00000000..029a6a12 --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go @@ -0,0 +1,13 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package editionssupport defines constants for editions that are supported. +package editionssupport + +import descriptorpb "google.golang.org/protobuf/types/descriptorpb" + +const ( + Minimum = descriptorpb.Edition_EDITION_PROTO2 + Maximum = descriptorpb.Edition_EDITION_2023 +) diff --git a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go index 373d2083..7e87c760 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go @@ -32,6 +32,7 @@ var byteType = reflect.TypeOf(byte(0)) func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor { f := new(filedesc.Field) f.L0.ParentFile = filedesc.SurrogateProto2 + f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures for len(tag) > 0 { i := strings.IndexByte(tag, ',') if i < 0 { @@ -107,8 +108,7 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri f.L1.StringName.InitJSON(jsonName) } case s == "packed": - f.L1.HasPacked = true - f.L1.IsPacked = true + f.L1.EditionFeatures.IsPacked = true case strings.HasPrefix(s, "weak="): f.L1.IsWeak = true f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):])) diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 8826bcf4..55b5de1a 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -7,6 +7,7 @@ package filedesc import ( "bytes" "fmt" + "strings" "sync" "sync/atomic" @@ -108,9 +109,12 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } func (fd *File) Parent() protoreflect.Descriptor { return nil } func (fd *File) Index() int { return 0 } func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax } -func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } -func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } -func (fd *File) IsPlaceholder() bool { return false } + +// Not exported and just used to reconstruct the original FileDescriptor proto +func (fd *File) Edition() int32 { return int32(fd.L1.Edition) } +func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } +func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } +func (fd *File) IsPlaceholder() bool { return false } func (fd *File) Options() protoreflect.ProtoMessage { if f := fd.lazyInit().Options; f != nil { return f() @@ -202,6 +206,9 @@ func (ed *Enum) lazyInit() *EnumL2 { ed.L0.ParentFile.lazyInit() // implicitly initializes L2 return ed.L2 } +func (ed *Enum) IsClosed() bool { + return !ed.L1.EditionFeatures.IsOpenEnum +} func (ed *EnumValue) Options() protoreflect.ProtoMessage { if f := ed.L1.Options; f != nil { @@ -251,10 +258,6 @@ type ( StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsWeak bool // promoted from google.protobuf.FieldOptions - HasPacked bool // promoted from google.protobuf.FieldOptions - IsPacked bool // promoted from google.protobuf.FieldOptions - HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions - EnforceUTF8 bool // promoted from google.protobuf.FieldOptions Default defaultValue ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields Enum protoreflect.EnumDescriptor @@ -331,8 +334,7 @@ func (fd *Field) HasPresence() bool { if fd.L1.Cardinality == protoreflect.Repeated { return false } - explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence - return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil + return fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil } func (fd *Field) HasOptionalKeyword() bool { return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional @@ -345,14 +347,7 @@ func (fd *Field) IsPacked() bool { case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: return false } - if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { - return fd.L1.EditionFeatures.IsPacked - } - if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { - // proto3 repeated fields are packed by default. - return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked + return fd.L1.EditionFeatures.IsPacked } func (fd *Field) IsExtension() bool { return false } func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } @@ -399,13 +394,7 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} // WARNING: This method is exempt from the compatibility promise and may be // removed in the future without warning. func (fd *Field) EnforceUTF8() bool { - if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { - return fd.L1.EditionFeatures.IsUTF8Validated - } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } - return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 + return fd.L1.EditionFeatures.IsUTF8Validated } func (od *Oneof) IsSynthetic() bool { @@ -433,12 +422,19 @@ type ( Cardinality protoreflect.Cardinality Kind protoreflect.Kind EditionFeatures EditionFeatures + // To resolve the EditionFeatures we need to resolve the Extendee which + // happens at the end of the initialization of L1. Thus, we need to buffer + // the unresolved features (which are parsed when starting to initialize + // L1). We cannot move this to L2 because it is required to initialize + // Kind properly. Because some of the options (i.e. packed) affect the + // EditionFeatures we need to unmarshal the full options after resolving + // the Extendee. + rawOptions []byte } ExtensionL2 struct { Options func() protoreflect.ProtoMessage StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto - IsPacked bool // promoted from google.protobuf.FieldOptions Default defaultValue Enum protoreflect.EnumDescriptor Message protoreflect.MessageDescriptor @@ -461,7 +457,7 @@ func (xd *Extension) HasPresence() bool { return xd.L1.Cardi func (xd *Extension) HasOptionalKeyword() bool { return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional } -func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } +func (xd *Extension) IsPacked() bool { return xd.L1.EditionFeatures.IsPacked } func (xd *Extension) IsExtension() bool { return true } func (xd *Extension) IsWeak() bool { return false } func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated } @@ -542,8 +538,9 @@ func (md *Method) ProtoInternal(pragma.DoNotImplement) {} // Surrogate files are can be used to create standalone descriptors // where the syntax is only information derived from the parent file. var ( - SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} - SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} + SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} + SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} + SurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}} ) type ( @@ -585,6 +582,34 @@ func (s *stringName) InitJSON(name string) { s.nameJSON = name } +// Returns true if this field is structured like the synthetic field of a proto2 +// group. This allows us to expand our treatment of delimited fields without +// breaking proto2 files that have been upgraded to editions. +func isGroupLike(fd protoreflect.FieldDescriptor) bool { + // Groups are always group types. + if fd.Kind() != protoreflect.GroupKind { + return false + } + + // Group fields are always the lowercase type name. + if strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) { + return false + } + + // Groups could only be defined in the same file they're used. + if fd.Message().ParentFile() != fd.ParentFile() { + return false + } + + // Group messages are always defined in the same scope as the field. File + // level extensions will compare NULL == NULL here, which is why the file + // comparison above is necessary to ensure both come from the same file. + if fd.IsExtension() { + return fd.Parent() == fd.Message().Parent() + } + return fd.ContainingMessage() == fd.Message().Parent() +} + func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { s.once.Do(func() { if fd.IsExtension() { @@ -605,7 +630,7 @@ func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { // Format the text name. s.nameText = string(fd.Name()) - if fd.Kind() == protoreflect.GroupKind { + if isGroupLike(fd) { s.nameText = string(fd.Message().Name()) } } diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go index 237e64fd..1de5ea9c 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go @@ -34,6 +34,20 @@ func newRawFile(db Builder) *File { for i := range fd.allExtensions { xd := &fd.allExtensions[i] xd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i)) + + // If the Extendee is not resolved, we cannot resolve the edition + // features of the parent. This should (to my knowledge) only happen + // for v1 messages for which we don't support editions. In v2 the + // Extendee should be resolved at binary start up time. + if _, ok := xd.L1.Extendee.(PlaceholderMessage); !ok { + xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) + } + if xd.L1.rawOptions != nil { + xd.unmarshalOptions(xd.L1.rawOptions) + } + if xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { + xd.L1.Kind = protoreflect.GroupKind + } } fd.checkDecls() @@ -113,8 +127,10 @@ func (fd *File) unmarshalSeed(b []byte) { switch string(v) { case "proto2": fd.L1.Syntax = protoreflect.Proto2 + fd.L1.Edition = EditionProto2 case "proto3": fd.L1.Syntax = protoreflect.Proto3 + fd.L1.Edition = EditionProto3 case "editions": fd.L1.Syntax = protoreflect.Editions default: @@ -177,11 +193,10 @@ func (fd *File) unmarshalSeed(b []byte) { // If syntax is missing, it is assumed to be proto2. if fd.L1.Syntax == 0 { fd.L1.Syntax = protoreflect.Proto2 + fd.L1.Edition = EditionProto2 } - if fd.L1.Syntax == protoreflect.Editions { - fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) - } + fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) // Parse editions features from options if any if options != nil { @@ -267,6 +282,7 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protorefl ed.L0.ParentFile = pf ed.L0.Parent = pd ed.L0.Index = i + ed.L1.EditionFeatures = featuresFromParentDesc(ed.Parent()) var numValues int for b := b; len(b) > 0; { @@ -467,6 +483,34 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd prot xd.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.FieldDescriptorProto_Extendee_field_number: xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v)) + case genid.FieldDescriptorProto_Options_field_number: + xd.L1.rawOptions = v + } + default: + m := protowire.ConsumeFieldValue(num, typ, b) + b = b[m:] + } + } +} + +func (xd *Extension) unmarshalOptions(b []byte) { + for len(b) > 0 { + num, typ, n := protowire.ConsumeTag(b) + b = b[n:] + switch typ { + case protowire.VarintType: + v, m := protowire.ConsumeVarint(b) + b = b[m:] + switch num { + case genid.FieldOptions_Packed_field_number: + xd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) + } + case protowire.BytesType: + v, m := protowire.ConsumeBytes(b) + b = b[m:] + switch num { + case genid.FieldOptions_Features_field_number: + xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) } default: m := protowire.ConsumeFieldValue(num, typ, b) diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index 482a61cc..570181eb 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -466,10 +466,10 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref b = b[m:] } } - if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { + if fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { fd.L1.Kind = protoreflect.GroupKind } - if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { + if fd.L1.EditionFeatures.IsLegacyRequired { fd.L1.Cardinality = protoreflect.Required } if rawTypeName != nil { @@ -496,13 +496,11 @@ func (fd *Field) unmarshalOptions(b []byte) { b = b[m:] switch num { case genid.FieldOptions_Packed_field_number: - fd.L1.HasPacked = true - fd.L1.IsPacked = protowire.DecodeBool(v) + fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) case genid.FieldOptions_Weak_field_number: fd.L1.IsWeak = protowire.DecodeBool(v) case FieldOptions_EnforceUTF8: - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) + fd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) @@ -548,7 +546,6 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { var rawTypeName []byte var rawOptions []byte - xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) xd.L2 = new(ExtensionL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) @@ -572,7 +569,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v case genid.FieldDescriptorProto_Options_field_number: - xd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } default: @@ -580,12 +576,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { b = b[m:] } } - if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { - xd.L1.Kind = protoreflect.GroupKind - } - if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { - xd.L1.Cardinality = protoreflect.Required - } if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch xd.L1.Kind { @@ -598,32 +588,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions) } -func (xd *Extension) unmarshalOptions(b []byte) { - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) - b = b[n:] - switch typ { - case protowire.VarintType: - v, m := protowire.ConsumeVarint(b) - b = b[m:] - switch num { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } - case protowire.BytesType: - v, m := protowire.ConsumeBytes(b) - b = b[m:] - switch num { - case genid.FieldOptions_Features_field_number: - xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) - } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] - } - } -} - func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { var rawMethods [][]byte var rawOptions []byte diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go index 0375a49d..d1e16a26 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go @@ -14,9 +14,13 @@ import ( ) var defaultsCache = make(map[Edition]EditionFeatures) +var defaultsKeys = []Edition{} func init() { unmarshalEditionDefaults(editiondefaults.Defaults) + SurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2) + SurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3) + SurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023) } func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { @@ -110,6 +114,7 @@ func unmarshalEditionDefault(b []byte) { } } defaultsCache[ed] = fs + defaultsKeys = append(defaultsKeys, ed) } func unmarshalEditionDefaults(b []byte) { @@ -135,8 +140,15 @@ func unmarshalEditionDefaults(b []byte) { } func getFeaturesFor(ed Edition) EditionFeatures { - if def, ok := defaultsCache[ed]; ok { - return def + match := EditionUnknown + for _, key := range defaultsKeys { + if key > ed { + break + } + match = key } - panic(fmt.Sprintf("unsupported edition: %v", ed)) + if match == EditionUnknown { + panic(fmt.Sprintf("unsupported edition: %v", ed)) + } + return defaultsCache[match] } diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go index 28240ebc..bfb3b841 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go @@ -63,6 +63,7 @@ func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return des func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues } func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames } func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges } +func (e PlaceholderEnum) IsClosed() bool { return false } func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return } func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go index c2a803bb..c1c33d00 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go @@ -167,6 +167,7 @@ func aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { ed := &filedesc.Enum{L2: new(filedesc.EnumL2)} ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum ed.L0.ParentFile = filedesc.SurrogateProto3 + ed.L1.EditionFeatures = ed.L0.ParentFile.L1.EditionFeatures ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{}) // TODO: Use the presence of a UnmarshalJSON method to determine proto2? diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go index 87b30d05..6e8677ee 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go @@ -118,7 +118,7 @@ func (xi *ExtensionInfo) initFromLegacy() { xd.L1.Number = protoreflect.FieldNumber(xi.Field) xd.L1.Cardinality = fd.L1.Cardinality xd.L1.Kind = fd.L1.Kind - xd.L2.IsPacked = fd.L1.IsPacked + xd.L1.EditionFeatures = fd.L1.EditionFeatures xd.L2.Default = fd.L1.Default xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType) xd.L2.Enum = ed diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go index 2ab2c629..950e9a1f 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go @@ -204,6 +204,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName } } + md.L1.EditionFeatures = md.L0.ParentFile.L1.EditionFeatures // Obtain a list of oneof wrapper types. var oneofWrappers []reflect.Type methods := make([]reflect.Method, 0, 2) @@ -250,6 +251,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName od := &md.L2.Oneofs.List[n] od.L0.FullName = md.FullName().Append(protoreflect.Name(tag)) od.L0.ParentFile = md.L0.ParentFile + od.L1.EditionFeatures = md.L1.EditionFeatures od.L0.Parent = md od.L0.Index = n @@ -260,6 +262,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName aberrantAppendField(md, f.Type, tag, "", "") fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1] fd.L1.ContainingOneof = od + fd.L1.EditionFeatures = od.L1.EditionFeatures od.L1.Fields.List = append(od.L1.Fields.List, fd) } } @@ -307,14 +310,14 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, fd.L0.Parent = md fd.L0.Index = n - if fd.L1.IsWeak || fd.L1.HasPacked { + if fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked { fd.L1.Options = func() protoreflect.ProtoMessage { opts := descopts.Field.ProtoReflect().New() if fd.L1.IsWeak { opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) } - if fd.L1.HasPacked { - opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked)) + if fd.L1.EditionFeatures.IsPacked { + opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked)) } return opts.Interface() } @@ -344,6 +347,7 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, md2.L0.ParentFile = md.L0.ParentFile md2.L0.Parent = md md2.L0.Index = n + md2.L1.EditionFeatures = md.L1.EditionFeatures md2.L1.IsMapEntry = true md2.L2.Options = func() protoreflect.ProtoMessage { diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go index d9ea010b..a6f0dbda 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go @@ -247,11 +247,10 @@ func (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.V } } } -func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { +func (m *extensionMap) Has(xd protoreflect.ExtensionTypeDescriptor) (ok bool) { if m == nil { return false } - xd := xt.TypeDescriptor() x, ok := (*m)[int32(xd.Number())] if !ok { return false @@ -261,25 +260,22 @@ func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { return x.Value().List().Len() > 0 case xd.IsMap(): return x.Value().Map().Len() > 0 - case xd.Message() != nil: - return x.Value().Message().IsValid() } return true } -func (m *extensionMap) Clear(xt protoreflect.ExtensionType) { - delete(*m, int32(xt.TypeDescriptor().Number())) +func (m *extensionMap) Clear(xd protoreflect.ExtensionTypeDescriptor) { + delete(*m, int32(xd.Number())) } -func (m *extensionMap) Get(xt protoreflect.ExtensionType) protoreflect.Value { - xd := xt.TypeDescriptor() +func (m *extensionMap) Get(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value { if m != nil { if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } } - return xt.Zero() + return xd.Type().Zero() } -func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) { - xd := xt.TypeDescriptor() +func (m *extensionMap) Set(xd protoreflect.ExtensionTypeDescriptor, v protoreflect.Value) { + xt := xd.Type() isValid := true switch { case !xt.IsValidValue(v): @@ -292,7 +288,7 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) isValid = v.Message().IsValid() } if !isValid { - panic(fmt.Sprintf("%v: assigning invalid value", xt.TypeDescriptor().FullName())) + panic(fmt.Sprintf("%v: assigning invalid value", xd.FullName())) } if *m == nil { @@ -302,16 +298,15 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) x.Set(xt, v) (*m)[int32(xd.Number())] = x } -func (m *extensionMap) Mutable(xt protoreflect.ExtensionType) protoreflect.Value { - xd := xt.TypeDescriptor() +func (m *extensionMap) Mutable(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value { if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() { panic("invalid Mutable on field with non-composite type") } if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } - v := xt.New() - m.Set(xt, v) + v := xd.Type().New() + m.Set(xd, v) return v } @@ -428,7 +423,7 @@ func (m *messageIfaceWrapper) protoUnwrap() interface{} { // checkField verifies that the provided field descriptor is valid. // Exactly one of the returned values is populated. -func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionType) { +func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionTypeDescriptor) { var fi *fieldInfo if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) { fi = mi.denseFields[n] @@ -457,7 +452,7 @@ func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, if !ok { panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) } - return nil, xtd.Type() + return nil, xtd } panic(fmt.Sprintf("field %v is invalid", fd.FullName())) } diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go index 741d6e5b..29ba6bd3 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go @@ -27,8 +27,9 @@ func (m *messageState) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageState) ProtoMethods() *protoiface.Methods { - m.messageInfo().init() - return &m.messageInfo().methods + mi := m.messageInfo() + mi.init() + return &mi.methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code @@ -41,8 +42,9 @@ func (m *messageState) ProtoMessageInfo() *MessageInfo { } func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - m.messageInfo().init() - for _, ri := range m.messageInfo().rangeInfos { + mi := m.messageInfo() + mi.init() + for _, ri := range mi.rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { @@ -52,77 +54,86 @@ func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.V } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { - fi := m.messageInfo().fields[n] + fi := mi.fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } - m.messageInfo().extensionMap(m.pointer()).Range(f) + mi.extensionMap(m.pointer()).Range(f) } func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.has(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Has(xt) + return mi.extensionMap(m.pointer()).Has(xd) } } func (m *messageState) Clear(fd protoreflect.FieldDescriptor) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.clear(m.pointer()) } else { - m.messageInfo().extensionMap(m.pointer()).Clear(xt) + mi.extensionMap(m.pointer()).Clear(xd) } } func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.get(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Get(xt) + return mi.extensionMap(m.pointer()).Get(xd) } } func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { - m.messageInfo().extensionMap(m.pointer()).Set(xt, v) + mi.extensionMap(m.pointer()).Set(xd, v) } } func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) + return mi.extensionMap(m.pointer()).Mutable(xd) } } func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.newField() } else { - return xt.New() + return xd.Type().New() } } func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - m.messageInfo().init() - if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { + mi := m.messageInfo() + mi.init() + if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageState) GetUnknown() protoreflect.RawFields { - m.messageInfo().init() - return m.messageInfo().getUnknown(m.pointer()) + mi := m.messageInfo() + mi.init() + return mi.getUnknown(m.pointer()) } func (m *messageState) SetUnknown(b protoreflect.RawFields) { - m.messageInfo().init() - m.messageInfo().setUnknown(m.pointer(), b) + mi := m.messageInfo() + mi.init() + mi.setUnknown(m.pointer(), b) } func (m *messageState) IsValid() bool { return !m.pointer().IsNil() @@ -147,8 +158,9 @@ func (m *messageReflectWrapper) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods { - m.messageInfo().init() - return &m.messageInfo().methods + mi := m.messageInfo() + mi.init() + return &mi.methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code @@ -161,8 +173,9 @@ func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo { } func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - m.messageInfo().init() - for _, ri := range m.messageInfo().rangeInfos { + mi := m.messageInfo() + mi.init() + for _, ri := range mi.rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { @@ -172,77 +185,86 @@ func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, proto } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { - fi := m.messageInfo().fields[n] + fi := mi.fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } - m.messageInfo().extensionMap(m.pointer()).Range(f) + mi.extensionMap(m.pointer()).Range(f) } func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.has(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Has(xt) + return mi.extensionMap(m.pointer()).Has(xd) } } func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.clear(m.pointer()) } else { - m.messageInfo().extensionMap(m.pointer()).Clear(xt) + mi.extensionMap(m.pointer()).Clear(xd) } } func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.get(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Get(xt) + return mi.extensionMap(m.pointer()).Get(xd) } } func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { - m.messageInfo().extensionMap(m.pointer()).Set(xt, v) + mi.extensionMap(m.pointer()).Set(xd, v) } } func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) + return mi.extensionMap(m.pointer()).Mutable(xd) } } func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.newField() } else { - return xt.New() + return xd.Type().New() } } func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - m.messageInfo().init() - if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { + mi := m.messageInfo() + mi.init() + if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields { - m.messageInfo().init() - return m.messageInfo().getUnknown(m.pointer()) + mi := m.messageInfo() + mi.init() + return mi.getUnknown(m.pointer()) } func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) { - m.messageInfo().init() - m.messageInfo().setUnknown(m.pointer(), b) + mi := m.messageInfo() + mi.init() + mi.setUnknown(m.pointer(), b) } func (m *messageReflectWrapper) IsValid() bool { return !m.pointer().IsNil() diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index a50fcfb4..787f207f 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -53,7 +53,7 @@ const ( Major = 1 Minor = 33 Patch = 0 - PreRelease = "" + PreRelease = "devel" ) // String formats the version string for this module in semver format. diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go index e5b03b56..d75a6534 100644 --- a/vendor/google.golang.org/protobuf/proto/decode.go +++ b/vendor/google.golang.org/protobuf/proto/decode.go @@ -51,6 +51,8 @@ type UnmarshalOptions struct { // Unmarshal parses the wire-format message in b and places the result in m. // The provided message must be mutable (e.g., a non-nil pointer to a message). +// +// See the [UnmarshalOptions] type if you need more control. func Unmarshal(b []byte, m Message) error { _, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect()) return err diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go index 4fed202f..5f69539c 100644 --- a/vendor/google.golang.org/protobuf/proto/encode.go +++ b/vendor/google.golang.org/protobuf/proto/encode.go @@ -71,6 +71,10 @@ type MarshalOptions struct { } // Marshal returns the wire-format encoding of m. +// +// This is the most common entry point for encoding a Protobuf message. +// +// See the [MarshalOptions] type if you need more control. func Marshal(m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to output. if m == nil { @@ -116,6 +120,9 @@ func emptyBytesForMessage(m Message) []byte { // MarshalAppend appends the wire-format encoding of m to b, // returning the result. +// +// This is a less common entry point than [Marshal], which is only needed if you +// need to supply your own buffers for performance reasons. func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to append. if m == nil { diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go index 17899a3a..c9c8721a 100644 --- a/vendor/google.golang.org/protobuf/proto/extension.go +++ b/vendor/google.golang.org/protobuf/proto/extension.go @@ -11,18 +11,21 @@ import ( // HasExtension reports whether an extension field is populated. // It returns false if m is invalid or if xt does not extend m. func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - // Treat nil message interface as an empty message; no populated fields. - if m == nil { + // Treat nil message interface or descriptor as an empty message; no populated + // fields. + if m == nil || xt == nil { return false } // As a special-case, we reports invalid or mismatching descriptors // as always not being populated (since they aren't). - if xt == nil || m.ProtoReflect().Descriptor() != xt.TypeDescriptor().ContainingMessage() { + mr := m.ProtoReflect() + xd := xt.TypeDescriptor() + if mr.Descriptor() != xd.ContainingMessage() { return false } - return m.ProtoReflect().Has(xt.TypeDescriptor()) + return mr.Has(xd) } // ClearExtension clears an extension field such that subsequent diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go index baa0cc62..8fbecb4f 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go @@ -13,6 +13,7 @@ package protodesc import ( + "google.golang.org/protobuf/internal/editionssupport" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/pragma" @@ -91,15 +92,17 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot switch fd.GetSyntax() { case "proto2", "": f.L1.Syntax = protoreflect.Proto2 + f.L1.Edition = filedesc.EditionProto2 case "proto3": f.L1.Syntax = protoreflect.Proto3 + f.L1.Edition = filedesc.EditionProto3 case "editions": f.L1.Syntax = protoreflect.Editions f.L1.Edition = fromEditionProto(fd.GetEdition()) default: return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) } - if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { + if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < editionssupport.Minimum || fd.GetEdition() > editionssupport.Maximum) { return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) } f.L1.Path = fd.GetName() @@ -114,9 +117,7 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot opts = proto.Clone(opts).(*descriptorpb.FileOptions) f.L2.Options = func() protoreflect.ProtoMessage { return opts } } - if f.L1.Syntax == protoreflect.Editions { - initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) - } + initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) for _, i := range fd.GetPublicDependency() { @@ -219,10 +220,10 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { return nil, err } - if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil { + if err := validateMessageDeclarations(f, f.L1.Messages.List, fd.GetMessageType()); err != nil { return nil, err } - if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil { + if err := validateExtensionDeclarations(f, f.L1.Extensions.List, fd.GetExtension()); err != nil { return nil, err } diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go index b3278163..ff5be207 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go @@ -69,9 +69,7 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { return nil, err } - if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { - m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) - } + m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) if opts := md.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.MessageOptions) m.L2.Options = func() protoreflect.ProtoMessage { return opts } @@ -146,13 +144,15 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { return nil, err } + f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) f.L1.IsProto3Optional = fd.GetProto3Optional() if opts := fd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FieldOptions) f.L1.Options = func() protoreflect.ProtoMessage { return opts } f.L1.IsWeak = opts.GetWeak() - f.L1.HasPacked = opts.Packed != nil - f.L1.IsPacked = opts.GetPacked() + if opts.Packed != nil { + f.L1.EditionFeatures.IsPacked = opts.GetPacked() + } } f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) @@ -163,32 +163,12 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc f.L1.StringName.InitJSON(fd.GetJsonName()) } - if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { - f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) + if f.L1.EditionFeatures.IsLegacyRequired { + f.L1.Cardinality = protoreflect.Required + } - if f.L1.EditionFeatures.IsLegacyRequired { - f.L1.Cardinality = protoreflect.Required - } - // We reuse the existing field because the old option `[packed = - // true]` is mutually exclusive with the editions feature. - if canBePacked(fd) { - f.L1.HasPacked = true - f.L1.IsPacked = f.L1.EditionFeatures.IsPacked - } - - // We pretend this option is always explicitly set because the only - // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 - // or to return the appropriate default. - // When using editions we either parse the option or resolve the - // appropriate default here (instead of later when this option is - // requested from the descriptor). - // In proto2/proto3 syntax HasEnforceUTF8 might be false. - f.L1.HasEnforceUTF8 = true - f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated - - if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { - f.L1.Kind = protoreflect.GroupKind - } + if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { + f.L1.Kind = protoreflect.GroupKind } } return fs, nil @@ -201,12 +181,10 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { return nil, err } + o.L1.EditionFeatures = mergeEditionFeatures(parent, od.GetOptions().GetFeatures()) if opts := od.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.OneofOptions) o.L1.Options = func() protoreflect.ProtoMessage { return opts } - if parent.Syntax() == protoreflect.Editions { - o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) - } } } return os, nil @@ -223,7 +201,9 @@ func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescript if opts := xd.GetOptions(); opts != nil { opts = proto.Clone(opts).(*descriptorpb.FieldOptions) x.L2.Options = func() protoreflect.ProtoMessage { return opts } - x.L2.IsPacked = opts.GetPacked() + if opts.Packed != nil { + x.L1.EditionFeatures.IsPacked = opts.GetPacked() + } } x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go index e4dcaf87..c6293086 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go @@ -45,11 +45,11 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri if allowAlias && !foundAlias { return errors.New("enum %q allows aliases, but none were found", e.FullName()) } - if e.Syntax() == protoreflect.Proto3 { + if !e.IsClosed() { if v := e.Values().Get(0); v.Number() != 0 { - return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName()) + return errors.New("enum %q using open semantics must have zero number for the first value", v.FullName()) } - // Verify that value names in proto3 do not conflict if the + // Verify that value names in open enums do not conflict if the // case-insensitive prefix is removed. // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 names := map[string]protoreflect.EnumValueDescriptor{} @@ -58,7 +58,7 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri v1 := e.Values().Get(i) s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) if v2, ok := names[s]; ok && v1.Number() != v2.Number() { - return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) + return errors.New("enum %q using open semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) } names[s] = v1 } @@ -80,7 +80,9 @@ func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescri return nil } -func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { +func validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { + // There are a few limited exceptions only for proto3 + isProto3 := file.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) for i, md := range mds { m := &ms[i] @@ -107,10 +109,10 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc if isMessageSet && !flags.ProtoLegacy { return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) } - if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { + if isMessageSet && (isProto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) } - if m.Syntax() == protoreflect.Proto3 { + if isProto3 { if m.ExtensionRanges().Len() > 0 { return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) } @@ -149,7 +151,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) } if f.L1.IsProto3Optional { - if f.Syntax() != protoreflect.Proto3 { + if !isProto3 { return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) } if f.Cardinality() != protoreflect.Optional { @@ -162,26 +164,29 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc if f.IsWeak() && !flags.ProtoLegacy { return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName()) } - if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) { + if f.IsWeak() && (!f.HasPresence() || !isOptionalMessage(f) || f.ContainingOneof() != nil) { return errors.New("message field %q may only be weak for an optional message", f.FullName()) } if f.IsPacked() && !isPackable(f) { return errors.New("message field %q is not packable", f.FullName()) } - if err := checkValidGroup(f); err != nil { + if err := checkValidGroup(file, f); err != nil { return errors.New("message field %q is an invalid group: %v", f.FullName(), err) } if err := checkValidMap(f); err != nil { return errors.New("message field %q is an invalid map: %v", f.FullName(), err) } - if f.Syntax() == protoreflect.Proto3 { + if isProto3 { if f.Cardinality() == protoreflect.Required { return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) } - if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 { - return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName()) + if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() { + return errors.New("message field %q using proto3 semantics may only depend on open enums", f.FullName()) } } + if f.Cardinality() == protoreflect.Optional && !f.HasPresence() && f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() { + return errors.New("message field %q with implicit presence may only use open enums", f.FullName()) + } } seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs for j := range md.GetOneofDecl() { @@ -215,17 +220,17 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { return err } - if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil { + if err := validateMessageDeclarations(file, m.L1.Messages.List, md.GetNestedType()); err != nil { return err } - if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil { + if err := validateExtensionDeclarations(file, m.L1.Extensions.List, md.GetExtension()); err != nil { return err } } return nil } -func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { +func validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { for i, xd := range xds { x := &xs[i] // NOTE: Avoid using the IsValid method since extensions to MessageSet @@ -267,13 +272,13 @@ func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb. if x.IsPacked() && !isPackable(x) { return errors.New("extension field %q is not packable", x.FullName()) } - if err := checkValidGroup(x); err != nil { + if err := checkValidGroup(f, x); err != nil { return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) } if md := x.Message(); md != nil && md.IsMapEntry() { return errors.New("extension field %q cannot be a map entry", x.FullName()) } - if x.Syntax() == protoreflect.Proto3 { + if f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) { switch x.ContainingMessage().FullName() { case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): @@ -309,21 +314,25 @@ func isPackable(fd protoreflect.FieldDescriptor) bool { // checkValidGroup reports whether fd is a valid group according to the same // rules that protoc imposes. -func checkValidGroup(fd protoreflect.FieldDescriptor) error { +func checkValidGroup(f *filedesc.File, fd protoreflect.FieldDescriptor) error { md := fd.Message() switch { case fd.Kind() != protoreflect.GroupKind: return nil - case fd.Syntax() == protoreflect.Proto3: + case f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3): return errors.New("invalid under proto3 semantics") case md == nil || md.IsPlaceholder(): return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): - return errors.New("message and field must be declared in the same scope") - case !unicode.IsUpper(rune(md.Name()[0])): - return errors.New("message name must start with an uppercase") - case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): - return errors.New("field name must be lowercased form of the message name") + } + if f.L1.Edition < fromEditionProto(descriptorpb.Edition_EDITION_2023) { + switch { + case fd.FullName().Parent() != md.FullName().Parent(): + return errors.New("message and field must be declared in the same scope") + case !unicode.IsUpper(rune(md.Name()[0])): + return errors.New("message name must start with an uppercase") + case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): + return errors.New("field name must be lowercased form of the message name") + } } return nil } diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go index 2a6b29d1..f6a1fec6 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go @@ -17,11 +17,6 @@ import ( gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" ) -const ( - SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 - SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -) - var defaults = &descriptorpb.FeatureSetDefaults{} var defaultsCacheMu sync.Mutex var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go index 9d6e0542..a5de8d40 100644 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go @@ -73,6 +73,16 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { p.Syntax = proto.String(file.Syntax().String()) } + if file.Syntax() == protoreflect.Editions { + desc := file + if fileImportDesc, ok := file.(protoreflect.FileImport); ok { + desc = fileImportDesc.FileDescriptor + } + + if editionsInterface, ok := desc.(interface{ Edition() int32 }); ok { + p.Edition = descriptorpb.Edition(editionsInterface.Edition()).Enum() + } + } return p } @@ -153,6 +163,18 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { p.Proto3Optional = proto.Bool(true) } + if field.Syntax() == protoreflect.Editions { + // Editions have no group keyword, this type is only set so that downstream users continue + // treating this as delimited encoding. + if p.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP { + p.Type = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE.Enum() + } + // Editions have no required keyword, this label is only set so that downstream users continue + // treating it as required. + if p.GetLabel() == descriptorpb.FieldDescriptorProto_LABEL_REQUIRED { + p.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum() + } + } if field.HasDefault() { def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) if err != nil && field.DefaultEnumValue() != nil { diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go index 00b01fbd..c85bfaa5 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go @@ -161,7 +161,7 @@ const ( // IsValid reports whether the syntax is valid. func (s Syntax) IsValid() bool { switch s { - case Proto2, Proto3: + case Proto2, Proto3, Editions: return true default: return false diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go index 60ff62b4..5b80afe5 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go @@ -544,6 +544,12 @@ type EnumDescriptor interface { // ReservedRanges is a list of reserved ranges of enum numbers. ReservedRanges() EnumRanges + // IsClosed reports whether this enum uses closed semantics. + // See https://protobuf.dev/programming-guides/enum/#definitions. + // Note: the Go protobuf implementation is not spec compliant and treats + // all enums as open enums. + IsClosed() bool + isEnumDescriptor } type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } diff --git a/vendor/modules.txt b/vendor/modules.txt index a3e6e1b1..b46aef0d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -506,12 +506,10 @@ github.com/zeromicro/go-zero/zrpc/resolver github.com/zeromicro/go-zero/zrpc/resolver/internal github.com/zeromicro/go-zero/zrpc/resolver/internal/kube github.com/zeromicro/go-zero/zrpc/resolver/internal/targets -# gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece +# gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240619113316-c0186ee7b60c ## explicit; go 1.21 gitlink.org.cn/JointCloud/pcm-ac/hpcAC gitlink.org.cn/JointCloud/pcm-ac/hpcacclient -# gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c -## explicit; go 1.21 # gitlink.org.cn/JointCloud/pcm-modelarts v0.0.0-20240515005224-689bb339a9c9 ## explicit; go 1.21 gitlink.org.cn/JointCloud/pcm-modelarts/client/imagesservice @@ -817,7 +815,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.33.0 +# google.golang.org/protobuf v1.33.1-0.20240408130810-98873a205002 ## explicit; go 1.17 google.golang.org/protobuf/encoding/protodelim google.golang.org/protobuf/encoding/protojson @@ -827,6 +825,7 @@ google.golang.org/protobuf/internal/descfmt google.golang.org/protobuf/internal/descopts google.golang.org/protobuf/internal/detrand google.golang.org/protobuf/internal/editiondefaults +google.golang.org/protobuf/internal/editionssupport google.golang.org/protobuf/internal/encoding/defval google.golang.org/protobuf/internal/encoding/json google.golang.org/protobuf/internal/encoding/messageset