From 99e2611e873f6f57563b38284efe737bc690e889 Mon Sep 17 00:00:00 2001 From: Jiahe114514 Date: Wed, 21 Jan 2026 23:49:45 +0800 Subject: [PATCH 1/3] chore: fitness data storage --- campusapis/staff/v1/campus.pb.go | 1296 ++++++++++++----- campusapis/staff/v1/campus.pb.gw.go | 410 ++++++ campusapis/staff/v1/campus.proto | 98 ++ campusapis/staff/v1/campus_grpc.pb.go | 120 ++ .../campusapis/staff/v1/campus.swagger.json | 599 ++++++++ 5 files changed, 2198 insertions(+), 325 deletions(-) diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index e4d1e11..c6d07c5 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -4702,6 +4702,527 @@ func (x *NiceResponse) GetData() string { return "" } +// FitnessScoreRequest 体测成绩请求(用于新增和更新) +type FitnessScoreRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` + SchoolYear string `protobuf:"bytes,2,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` + Semester int32 `protobuf:"varint,3,opt,name=semester,proto3" json:"semester,omitempty"` + Gender string `protobuf:"bytes,4,opt,name=gender,proto3" json:"gender,omitempty"` + Grade int32 `protobuf:"varint,5,opt,name=grade,proto3" json:"grade,omitempty"` + Height float32 `protobuf:"fixed32,6,opt,name=height,proto3" json:"height,omitempty"` + Weight float32 `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"` + Bmi float32 `protobuf:"fixed32,8,opt,name=bmi,proto3" json:"bmi,omitempty"` + Run_50M float32 `protobuf:"fixed32,9,opt,name=run_50m,json=run50m,proto3" json:"run_50m,omitempty"` + StandingLongJump float32 `protobuf:"fixed32,10,opt,name=standing_long_jump,json=standingLongJump,proto3" json:"standing_long_jump,omitempty"` + SitAndReach float32 `protobuf:"fixed32,11,opt,name=sit_and_reach,json=sitAndReach,proto3" json:"sit_and_reach,omitempty"` + Run_800M float32 `protobuf:"fixed32,12,opt,name=run_800m,json=run800m,proto3" json:"run_800m,omitempty"` + Run_1000M float32 `protobuf:"fixed32,13,opt,name=run_1000m,json=run1000m,proto3" json:"run_1000m,omitempty"` + SitUps int32 `protobuf:"varint,14,opt,name=sit_ups,json=sitUps,proto3" json:"sit_ups,omitempty"` + PullUps int32 `protobuf:"varint,15,opt,name=pull_ups,json=pullUps,proto3" json:"pull_ups,omitempty"` + LungCapacity int32 `protobuf:"varint,16,opt,name=lung_capacity,json=lungCapacity,proto3" json:"lung_capacity,omitempty"` + TotalScore float32 `protobuf:"fixed32,17,opt,name=total_score,json=totalScore,proto3" json:"total_score,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FitnessScoreRequest) Reset() { + *x = FitnessScoreRequest{} + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FitnessScoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FitnessScoreRequest) ProtoMessage() {} + +func (x *FitnessScoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[65] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FitnessScoreRequest.ProtoReflect.Descriptor instead. +func (*FitnessScoreRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{65} +} + +func (x *FitnessScoreRequest) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *FitnessScoreRequest) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *FitnessScoreRequest) GetSemester() int32 { + if x != nil { + return x.Semester + } + return 0 +} + +func (x *FitnessScoreRequest) GetGender() string { + if x != nil { + return x.Gender + } + return "" +} + +func (x *FitnessScoreRequest) GetGrade() int32 { + if x != nil { + return x.Grade + } + return 0 +} + +func (x *FitnessScoreRequest) GetHeight() float32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *FitnessScoreRequest) GetWeight() float32 { + if x != nil { + return x.Weight + } + return 0 +} + +func (x *FitnessScoreRequest) GetBmi() float32 { + if x != nil { + return x.Bmi + } + return 0 +} + +func (x *FitnessScoreRequest) GetRun_50M() float32 { + if x != nil { + return x.Run_50M + } + return 0 +} + +func (x *FitnessScoreRequest) GetStandingLongJump() float32 { + if x != nil { + return x.StandingLongJump + } + return 0 +} + +func (x *FitnessScoreRequest) GetSitAndReach() float32 { + if x != nil { + return x.SitAndReach + } + return 0 +} + +func (x *FitnessScoreRequest) GetRun_800M() float32 { + if x != nil { + return x.Run_800M + } + return 0 +} + +func (x *FitnessScoreRequest) GetRun_1000M() float32 { + if x != nil { + return x.Run_1000M + } + return 0 +} + +func (x *FitnessScoreRequest) GetSitUps() int32 { + if x != nil { + return x.SitUps + } + return 0 +} + +func (x *FitnessScoreRequest) GetPullUps() int32 { + if x != nil { + return x.PullUps + } + return 0 +} + +func (x *FitnessScoreRequest) GetLungCapacity() int32 { + if x != nil { + return x.LungCapacity + } + return 0 +} + +func (x *FitnessScoreRequest) GetTotalScore() float32 { + if x != nil { + return x.TotalScore + } + return 0 +} + +// FitnessScoreResponse 体测成绩响应(用于新增和更新) +type FitnessScoreResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error int32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *FitnessScore `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FitnessScoreResponse) Reset() { + *x = FitnessScoreResponse{} + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FitnessScoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FitnessScoreResponse) ProtoMessage() {} + +func (x *FitnessScoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[66] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FitnessScoreResponse.ProtoReflect.Descriptor instead. +func (*FitnessScoreResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{66} +} + +func (x *FitnessScoreResponse) GetError() int32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *FitnessScoreResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *FitnessScoreResponse) GetData() *FitnessScore { + if x != nil { + return x.Data + } + return nil +} + +// DeleteFitnessScoreRequest 删除体测成绩请求 +type DeleteFitnessScoreRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` + SchoolYear string `protobuf:"bytes,2,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` + Semester int32 `protobuf:"varint,3,opt,name=semester,proto3" json:"semester,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteFitnessScoreRequest) Reset() { + *x = DeleteFitnessScoreRequest{} + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteFitnessScoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFitnessScoreRequest) ProtoMessage() {} + +func (x *DeleteFitnessScoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[67] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFitnessScoreRequest.ProtoReflect.Descriptor instead. +func (*DeleteFitnessScoreRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{67} +} + +func (x *DeleteFitnessScoreRequest) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *DeleteFitnessScoreRequest) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *DeleteFitnessScoreRequest) GetSemester() int32 { + if x != nil { + return x.Semester + } + return 0 +} + +// DeleteFitnessScoreResponse 删除体测成绩响应 +type DeleteFitnessScoreResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error int32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteFitnessScoreResponse) Reset() { + *x = DeleteFitnessScoreResponse{} + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteFitnessScoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFitnessScoreResponse) ProtoMessage() {} + +func (x *DeleteFitnessScoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[68] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFitnessScoreResponse.ProtoReflect.Descriptor instead. +func (*DeleteFitnessScoreResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{68} +} + +func (x *DeleteFitnessScoreResponse) GetError() int32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *DeleteFitnessScoreResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +// FitnessScore 体测成绩信息 +type FitnessScore struct { + state protoimpl.MessageState `protogen:"open.v1"` + StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` + SchoolYear string `protobuf:"bytes,2,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` + Semester int32 `protobuf:"varint,3,opt,name=semester,proto3" json:"semester,omitempty"` + Gender string `protobuf:"bytes,4,opt,name=gender,proto3" json:"gender,omitempty"` + Grade int32 `protobuf:"varint,5,opt,name=grade,proto3" json:"grade,omitempty"` + Height float32 `protobuf:"fixed32,6,opt,name=height,proto3" json:"height,omitempty"` + Weight float32 `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"` + Bmi float32 `protobuf:"fixed32,8,opt,name=bmi,proto3" json:"bmi,omitempty"` + Run_50M float32 `protobuf:"fixed32,9,opt,name=run_50m,json=run50m,proto3" json:"run_50m,omitempty"` + StandingLongJump float32 `protobuf:"fixed32,10,opt,name=standing_long_jump,json=standingLongJump,proto3" json:"standing_long_jump,omitempty"` + SitAndReach float32 `protobuf:"fixed32,11,opt,name=sit_and_reach,json=sitAndReach,proto3" json:"sit_and_reach,omitempty"` + Run_800M float32 `protobuf:"fixed32,12,opt,name=run_800m,json=run800m,proto3" json:"run_800m,omitempty"` + Run_1000M float32 `protobuf:"fixed32,13,opt,name=run_1000m,json=run1000m,proto3" json:"run_1000m,omitempty"` + SitUps int32 `protobuf:"varint,14,opt,name=sit_ups,json=sitUps,proto3" json:"sit_ups,omitempty"` + PullUps int32 `protobuf:"varint,15,opt,name=pull_ups,json=pullUps,proto3" json:"pull_ups,omitempty"` + LungCapacity int32 `protobuf:"varint,16,opt,name=lung_capacity,json=lungCapacity,proto3" json:"lung_capacity,omitempty"` + TotalScore float32 `protobuf:"fixed32,17,opt,name=total_score,json=totalScore,proto3" json:"total_score,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FitnessScore) Reset() { + *x = FitnessScore{} + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FitnessScore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FitnessScore) ProtoMessage() {} + +func (x *FitnessScore) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[69] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FitnessScore.ProtoReflect.Descriptor instead. +func (*FitnessScore) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{69} +} + +func (x *FitnessScore) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *FitnessScore) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *FitnessScore) GetSemester() int32 { + if x != nil { + return x.Semester + } + return 0 +} + +func (x *FitnessScore) GetGender() string { + if x != nil { + return x.Gender + } + return "" +} + +func (x *FitnessScore) GetGrade() int32 { + if x != nil { + return x.Grade + } + return 0 +} + +func (x *FitnessScore) GetHeight() float32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *FitnessScore) GetWeight() float32 { + if x != nil { + return x.Weight + } + return 0 +} + +func (x *FitnessScore) GetBmi() float32 { + if x != nil { + return x.Bmi + } + return 0 +} + +func (x *FitnessScore) GetRun_50M() float32 { + if x != nil { + return x.Run_50M + } + return 0 +} + +func (x *FitnessScore) GetStandingLongJump() float32 { + if x != nil { + return x.StandingLongJump + } + return 0 +} + +func (x *FitnessScore) GetSitAndReach() float32 { + if x != nil { + return x.SitAndReach + } + return 0 +} + +func (x *FitnessScore) GetRun_800M() float32 { + if x != nil { + return x.Run_800M + } + return 0 +} + +func (x *FitnessScore) GetRun_1000M() float32 { + if x != nil { + return x.Run_1000M + } + return 0 +} + +func (x *FitnessScore) GetSitUps() int32 { + if x != nil { + return x.SitUps + } + return 0 +} + +func (x *FitnessScore) GetPullUps() int32 { + if x != nil { + return x.PullUps + } + return 0 +} + +func (x *FitnessScore) GetLungCapacity() int32 { + if x != nil { + return x.LungCapacity + } + return 0 +} + +func (x *FitnessScore) GetTotalScore() float32 { + if x != nil { + return x.TotalScore + } + return 0 +} + type GetCityByCodeResponse_City struct { state protoimpl.MessageState `protogen:"open.v1"` City string `protobuf:"bytes,1,opt,name=city,proto3" json:"city,omitempty"` @@ -4711,7 +5232,7 @@ type GetCityByCodeResponse_City struct { func (x *GetCityByCodeResponse_City) Reset() { *x = GetCityByCodeResponse_City{} - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[65] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4723,7 +5244,7 @@ func (x *GetCityByCodeResponse_City) String() string { func (*GetCityByCodeResponse_City) ProtoMessage() {} func (x *GetCityByCodeResponse_City) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[65] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4756,7 +5277,7 @@ type ModifyCityForPreviousSchoolRequest_Body struct { func (x *ModifyCityForPreviousSchoolRequest_Body) Reset() { *x = ModifyCityForPreviousSchoolRequest_Body{} - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[66] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4768,7 +5289,7 @@ func (x *ModifyCityForPreviousSchoolRequest_Body) String() string { func (*ModifyCityForPreviousSchoolRequest_Body) ProtoMessage() {} func (x *ModifyCityForPreviousSchoolRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[66] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4804,7 +5325,7 @@ type StudentNeedyInfo_Nested struct { func (x *StudentNeedyInfo_Nested) Reset() { *x = StudentNeedyInfo_Nested{} - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[67] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4816,7 +5337,7 @@ func (x *StudentNeedyInfo_Nested) String() string { func (*StudentNeedyInfo_Nested) ProtoMessage() {} func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[67] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4856,7 +5377,7 @@ type PostStudentGateAccessResponse_Data struct { func (x *PostStudentGateAccessResponse_Data) Reset() { *x = PostStudentGateAccessResponse_Data{} - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[68] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4868,7 +5389,7 @@ func (x *PostStudentGateAccessResponse_Data) String() string { func (*PostStudentGateAccessResponse_Data) ProtoMessage() {} func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[68] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5534,276 +6055,389 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = string([]byte{ 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x32, 0xfc, 0x1f, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, - 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, - 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, - 0x12, 0xa8, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x41, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x22, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xfa, 0x03, 0x0a, 0x13, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, + 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, + 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, 0x35, 0x30, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6a, 0x75, 0x6d, 0x70, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, + 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x69, 0x74, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, + 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x72, + 0x75, 0x6e, 0x5f, 0x38, 0x30, 0x30, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, + 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x31, 0x30, + 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, + 0x30, 0x30, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x69, 0x74, 0x5f, 0x75, 0x70, 0x73, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x75, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x75, 0x6e, 0x67, 0x5f, + 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x75, 0x0a, + 0x14, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x73, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1a, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0xf3, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, + 0x35, 0x30, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, + 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, + 0x6e, 0x67, 0x5f, 0x6a, 0x75, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, + 0x22, 0x0a, 0x0d, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x38, 0x30, 0x30, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x73, + 0x69, 0x74, 0x5f, 0x75, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, + 0x74, 0x55, 0x70, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x75, 0x70, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, + 0x23, 0x0a, 0x0d, 0x6c, 0x75, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x32, 0xea, 0x23, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x2f, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xa8, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0xb6, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, + 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, + 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, + 0x72, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, + 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, + 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, - 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, - 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, - 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x12, 0xae, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x31, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, - 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, - 0x61, 0x6d, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, - 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, - 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, - 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, - 0x61, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x50, 0x41, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, + 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, + 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0xae, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x28, 0x12, 0x26, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, - 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, - 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x5a, 0x16, - 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, - 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, - 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, + 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x16, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, + 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, + 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x80, 0x01, 0x0a, + 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x37, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0x1d, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, + 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, + 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, - 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, - 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, - 0x6d, 0x61, 0x74, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, + 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, + 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x5a, 0x1d, 0x12, 0x1b, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x20, 0x12, 0x1e, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xd5, 0x01, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x20, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xd5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x3d, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, - 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, - 0x79, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, + 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, + 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, + 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, + 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, + 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, + 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, - 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x5a, 0x1d, 0x3a, 0x04, - 0x62, 0x6f, 0x64, 0x79, 0x22, 0x15, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x22, 0x1e, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x91, 0x01, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x2e, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3f, 0x5a, 0x1d, 0x3a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x15, 0x2f, 0x70, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, + 0x22, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, + 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, + 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x5a, 0x0c, 0x12, 0x0a, - 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x13, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x42, - 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, - 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x23, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, + 0x13, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x5a, 0x10, 0x22, 0x0e, 0x2f, 0x66, + 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x17, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x5a, 0x10, 0x32, 0x0e, + 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x32, 0x17, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2e, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2a, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, + 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, }) var ( @@ -5818,7 +6452,7 @@ func file_campusapis_staff_v1_campus_proto_rawDescGZIP() []byte { return file_campusapis_staff_v1_campus_proto_rawDescData } -var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 69) +var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 74) var file_campusapis_staff_v1_campus_proto_goTypes = []any{ (*GetCityByCodeRequest)(nil), // 0: campusapis.staff.v1.GetCityByCodeRequest (*GetCityByCodeResponse)(nil), // 1: campusapis.staff.v1.GetCityByCodeResponse @@ -5885,16 +6519,21 @@ var file_campusapis_staff_v1_campus_proto_goTypes = []any{ (*FreshmanRoommate)(nil), // 62: campusapis.staff.v1.FreshmanRoommate (*GetStudentCountByDivisionRequest)(nil), // 63: campusapis.staff.v1.GetStudentCountByDivisionRequest (*NiceResponse)(nil), // 64: campusapis.staff.v1.NiceResponse - (*GetCityByCodeResponse_City)(nil), // 65: campusapis.staff.v1.GetCityByCodeResponse.City - (*ModifyCityForPreviousSchoolRequest_Body)(nil), // 66: campusapis.staff.v1.ModifyCityForPreviousSchoolRequest.Body - (*StudentNeedyInfo_Nested)(nil), // 67: campusapis.staff.v1.StudentNeedyInfo.Nested - (*PostStudentGateAccessResponse_Data)(nil), // 68: campusapis.staff.v1.PostStudentGateAccessResponse.Data - (staff.Type)(0), // 69: campusapis.staff.Type - (*emptypb.Empty)(nil), // 70: google.protobuf.Empty + (*FitnessScoreRequest)(nil), // 65: campusapis.staff.v1.FitnessScoreRequest + (*FitnessScoreResponse)(nil), // 66: campusapis.staff.v1.FitnessScoreResponse + (*DeleteFitnessScoreRequest)(nil), // 67: campusapis.staff.v1.DeleteFitnessScoreRequest + (*DeleteFitnessScoreResponse)(nil), // 68: campusapis.staff.v1.DeleteFitnessScoreResponse + (*FitnessScore)(nil), // 69: campusapis.staff.v1.FitnessScore + (*GetCityByCodeResponse_City)(nil), // 70: campusapis.staff.v1.GetCityByCodeResponse.City + (*ModifyCityForPreviousSchoolRequest_Body)(nil), // 71: campusapis.staff.v1.ModifyCityForPreviousSchoolRequest.Body + (*StudentNeedyInfo_Nested)(nil), // 72: campusapis.staff.v1.StudentNeedyInfo.Nested + (*PostStudentGateAccessResponse_Data)(nil), // 73: campusapis.staff.v1.PostStudentGateAccessResponse.Data + (staff.Type)(0), // 74: campusapis.staff.Type + (*emptypb.Empty)(nil), // 75: google.protobuf.Empty } var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ - 65, // 0: campusapis.staff.v1.GetCityByCodeResponse.data:type_name -> campusapis.staff.v1.GetCityByCodeResponse.City - 66, // 1: campusapis.staff.v1.ModifyCityForPreviousSchoolRequest.body:type_name -> campusapis.staff.v1.ModifyCityForPreviousSchoolRequest.Body + 70, // 0: campusapis.staff.v1.GetCityByCodeResponse.data:type_name -> campusapis.staff.v1.GetCityByCodeResponse.City + 71, // 1: campusapis.staff.v1.ModifyCityForPreviousSchoolRequest.body:type_name -> campusapis.staff.v1.ModifyCityForPreviousSchoolRequest.Body 5, // 2: campusapis.staff.v1.GetCityByStudentIDResponse.data:type_name -> campusapis.staff.v1.CityInfo 8, // 3: campusapis.staff.v1.GetPreviousSchoolDetailInfoResponse.data:type_name -> campusapis.staff.v1.SchoolInfo 9, // 4: campusapis.staff.v1.SchoolInfo.grade_school_info:type_name -> campusapis.staff.v1.GradeSchoolInfo @@ -5903,10 +6542,10 @@ var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ 23, // 7: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.StudentInfo 25, // 8: campusapis.staff.v1.GetStudentSchoolRollStatusResponse.data:type_name -> campusapis.staff.v1.StudentSchoolRollStatus 27, // 9: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo - 67, // 10: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested + 72, // 10: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested 29, // 11: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo 31, // 12: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 69, // 13: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type + 74, // 13: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type 31, // 14: campusapis.staff.v1.GetStudentBirthdaysInResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo 35, // 15: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward 37, // 16: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection @@ -5917,64 +6556,71 @@ var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ 46, // 21: campusapis.staff.v1.GetStudentGPAResponse.data:type_name -> campusapis.staff.v1.StudentGPA 47, // 22: campusapis.staff.v1.StudentGPA.perSemester:type_name -> campusapis.staff.v1.GPAPerSemester 48, // 23: campusapis.staff.v1.StudentGPA.total:type_name -> campusapis.staff.v1.GPATotal - 68, // 24: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data + 73, // 24: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data 52, // 25: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo 58, // 26: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo 60, // 27: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail 62, // 28: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate - 70, // 29: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty - 70, // 30: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty - 63, // 31: campusapis.staff.v1.CampusService.GetStudentCountByDivision:input_type -> campusapis.staff.v1.GetStudentCountByDivisionRequest - 70, // 32: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:input_type -> google.protobuf.Empty - 70, // 33: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty - 70, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 32, // 35: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 15, // 36: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest - 16, // 37: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest - 17, // 38: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest - 18, // 39: campusapis.staff.v1.CampusService.GetGlobalStudentGrade:input_type -> campusapis.staff.v1.GetGlobalStudentGradeRequest - 19, // 40: campusapis.staff.v1.CampusService.GetStudentExam:input_type -> campusapis.staff.v1.GetStudentExamRequest - 20, // 41: campusapis.staff.v1.CampusService.GetDailyExam:input_type -> campusapis.staff.v1.GetDailyExamRequest - 70, // 42: campusapis.staff.v1.CampusService.GetStudentGPA:input_type -> google.protobuf.Empty - 49, // 43: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest - 70, // 44: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 53, // 45: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest - 54, // 46: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest - 55, // 47: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest - 10, // 48: campusapis.staff.v1.CampusService.GetPreviousSchoolInfo:input_type -> campusapis.staff.v1.GetStaffPreviousSchoolInfoRequest - 6, // 49: campusapis.staff.v1.CampusService.GetPreviousSchoolDetailInfo:input_type -> campusapis.staff.v1.GetPreviousSchoolDetailInfoRequest - 70, // 50: campusapis.staff.v1.CampusService.GetCityByStudentID:input_type -> google.protobuf.Empty - 2, // 51: campusapis.staff.v1.CampusService.ModifyCityForPreviousSchool:input_type -> campusapis.staff.v1.ModifyCityForPreviousSchoolRequest - 0, // 52: campusapis.staff.v1.CampusService.GetCityByCode:input_type -> campusapis.staff.v1.GetCityByCodeRequest - 13, // 53: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 22, // 54: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 64, // 55: campusapis.staff.v1.CampusService.GetStudentCountByDivision:output_type -> campusapis.staff.v1.NiceResponse - 24, // 56: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:output_type -> campusapis.staff.v1.GetStudentSchoolRollStatusResponse - 28, // 57: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 30, // 58: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse - 33, // 59: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse - 34, // 60: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse - 36, // 61: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse - 38, // 62: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 40, // 63: campusapis.staff.v1.CampusService.GetGlobalStudentGrade:output_type -> campusapis.staff.v1.GetGlobalStudentGradeResponse - 43, // 64: campusapis.staff.v1.CampusService.GetStudentExam:output_type -> campusapis.staff.v1.GetStudentExamResponse - 41, // 65: campusapis.staff.v1.CampusService.GetDailyExam:output_type -> campusapis.staff.v1.GetDailyExamResponse - 45, // 66: campusapis.staff.v1.CampusService.GetStudentGPA:output_type -> campusapis.staff.v1.GetStudentGPAResponse - 50, // 67: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 51, // 68: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 57, // 69: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 59, // 70: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse - 61, // 71: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse - 11, // 72: campusapis.staff.v1.CampusService.GetPreviousSchoolInfo:output_type -> campusapis.staff.v1.GetStaffPreviousSchoolInfoResponse - 7, // 73: campusapis.staff.v1.CampusService.GetPreviousSchoolDetailInfo:output_type -> campusapis.staff.v1.GetPreviousSchoolDetailInfoResponse - 4, // 74: campusapis.staff.v1.CampusService.GetCityByStudentID:output_type -> campusapis.staff.v1.GetCityByStudentIDResponse - 3, // 75: campusapis.staff.v1.CampusService.ModifyCityForPreviousSchool:output_type -> campusapis.staff.v1.ModifyCityForPreviousSchoolResponse - 1, // 76: campusapis.staff.v1.CampusService.GetCityByCode:output_type -> campusapis.staff.v1.GetCityByCodeResponse - 53, // [53:77] is the sub-list for method output_type - 29, // [29:53] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 69, // 29: campusapis.staff.v1.FitnessScoreResponse.data:type_name -> campusapis.staff.v1.FitnessScore + 75, // 30: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty + 75, // 31: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty + 63, // 32: campusapis.staff.v1.CampusService.GetStudentCountByDivision:input_type -> campusapis.staff.v1.GetStudentCountByDivisionRequest + 75, // 33: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:input_type -> google.protobuf.Empty + 75, // 34: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty + 75, // 35: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty + 32, // 36: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest + 15, // 37: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest + 16, // 38: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest + 17, // 39: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest + 18, // 40: campusapis.staff.v1.CampusService.GetGlobalStudentGrade:input_type -> campusapis.staff.v1.GetGlobalStudentGradeRequest + 19, // 41: campusapis.staff.v1.CampusService.GetStudentExam:input_type -> campusapis.staff.v1.GetStudentExamRequest + 20, // 42: campusapis.staff.v1.CampusService.GetDailyExam:input_type -> campusapis.staff.v1.GetDailyExamRequest + 75, // 43: campusapis.staff.v1.CampusService.GetStudentGPA:input_type -> google.protobuf.Empty + 49, // 44: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest + 75, // 45: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty + 53, // 46: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest + 54, // 47: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest + 55, // 48: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest + 10, // 49: campusapis.staff.v1.CampusService.GetPreviousSchoolInfo:input_type -> campusapis.staff.v1.GetStaffPreviousSchoolInfoRequest + 6, // 50: campusapis.staff.v1.CampusService.GetPreviousSchoolDetailInfo:input_type -> campusapis.staff.v1.GetPreviousSchoolDetailInfoRequest + 75, // 51: campusapis.staff.v1.CampusService.GetCityByStudentID:input_type -> google.protobuf.Empty + 2, // 52: campusapis.staff.v1.CampusService.ModifyCityForPreviousSchool:input_type -> campusapis.staff.v1.ModifyCityForPreviousSchoolRequest + 0, // 53: campusapis.staff.v1.CampusService.GetCityByCode:input_type -> campusapis.staff.v1.GetCityByCodeRequest + 65, // 54: campusapis.staff.v1.CampusService.StoreFitnessScore:input_type -> campusapis.staff.v1.FitnessScoreRequest + 65, // 55: campusapis.staff.v1.CampusService.UpdateFitnessScore:input_type -> campusapis.staff.v1.FitnessScoreRequest + 67, // 56: campusapis.staff.v1.CampusService.DeleteFitnessScore:input_type -> campusapis.staff.v1.DeleteFitnessScoreRequest + 13, // 57: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse + 22, // 58: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse + 64, // 59: campusapis.staff.v1.CampusService.GetStudentCountByDivision:output_type -> campusapis.staff.v1.NiceResponse + 24, // 60: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:output_type -> campusapis.staff.v1.GetStudentSchoolRollStatusResponse + 28, // 61: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse + 30, // 62: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse + 33, // 63: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse + 34, // 64: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse + 36, // 65: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse + 38, // 66: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse + 40, // 67: campusapis.staff.v1.CampusService.GetGlobalStudentGrade:output_type -> campusapis.staff.v1.GetGlobalStudentGradeResponse + 43, // 68: campusapis.staff.v1.CampusService.GetStudentExam:output_type -> campusapis.staff.v1.GetStudentExamResponse + 41, // 69: campusapis.staff.v1.CampusService.GetDailyExam:output_type -> campusapis.staff.v1.GetDailyExamResponse + 45, // 70: campusapis.staff.v1.CampusService.GetStudentGPA:output_type -> campusapis.staff.v1.GetStudentGPAResponse + 50, // 71: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse + 51, // 72: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse + 57, // 73: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse + 59, // 74: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse + 61, // 75: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse + 11, // 76: campusapis.staff.v1.CampusService.GetPreviousSchoolInfo:output_type -> campusapis.staff.v1.GetStaffPreviousSchoolInfoResponse + 7, // 77: campusapis.staff.v1.CampusService.GetPreviousSchoolDetailInfo:output_type -> campusapis.staff.v1.GetPreviousSchoolDetailInfoResponse + 4, // 78: campusapis.staff.v1.CampusService.GetCityByStudentID:output_type -> campusapis.staff.v1.GetCityByStudentIDResponse + 3, // 79: campusapis.staff.v1.CampusService.ModifyCityForPreviousSchool:output_type -> campusapis.staff.v1.ModifyCityForPreviousSchoolResponse + 1, // 80: campusapis.staff.v1.CampusService.GetCityByCode:output_type -> campusapis.staff.v1.GetCityByCodeResponse + 66, // 81: campusapis.staff.v1.CampusService.StoreFitnessScore:output_type -> campusapis.staff.v1.FitnessScoreResponse + 66, // 82: campusapis.staff.v1.CampusService.UpdateFitnessScore:output_type -> campusapis.staff.v1.FitnessScoreResponse + 68, // 83: campusapis.staff.v1.CampusService.DeleteFitnessScore:output_type -> campusapis.staff.v1.DeleteFitnessScoreResponse + 57, // [57:84] is the sub-list for method output_type + 30, // [30:57] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name } func init() { file_campusapis_staff_v1_campus_proto_init() } @@ -5988,7 +6634,7 @@ func file_campusapis_staff_v1_campus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_campusapis_staff_v1_campus_proto_rawDesc), len(file_campusapis_staff_v1_campus_proto_rawDesc)), NumEnums: 0, - NumMessages: 69, + NumMessages: 74, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/staff/v1/campus.pb.gw.go b/campusapis/staff/v1/campus.pb.gw.go index 17abb77..9f7f454 100644 --- a/campusapis/staff/v1/campus.pb.gw.go +++ b/campusapis/staff/v1/campus.pb.gw.go @@ -1300,6 +1300,182 @@ func local_request_CampusService_GetCityByCode_1(ctx context.Context, marshaler return msg, metadata, err } +func request_CampusService_StoreFitnessScore_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.StoreFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_CampusService_StoreFitnessScore_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.StoreFitnessScore(ctx, &protoReq) + return msg, metadata, err +} + +var filter_CampusService_StoreFitnessScore_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + +func request_CampusService_StoreFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_StoreFitnessScore_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.StoreFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_CampusService_StoreFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_StoreFitnessScore_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.StoreFitnessScore(ctx, &protoReq) + return msg, metadata, err +} + +func request_CampusService_UpdateFitnessScore_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.UpdateFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_CampusService_UpdateFitnessScore_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.UpdateFitnessScore(ctx, &protoReq) + return msg, metadata, err +} + +var filter_CampusService_UpdateFitnessScore_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + +func request_CampusService_UpdateFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_UpdateFitnessScore_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.UpdateFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_CampusService_UpdateFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq FitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_UpdateFitnessScore_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.UpdateFitnessScore(ctx, &protoReq) + return msg, metadata, err +} + +var filter_CampusService_DeleteFitnessScore_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + +func request_CampusService_DeleteFitnessScore_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteFitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_DeleteFitnessScore_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.DeleteFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_CampusService_DeleteFitnessScore_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteFitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_DeleteFitnessScore_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.DeleteFitnessScore(ctx, &protoReq) + return msg, metadata, err +} + +var filter_CampusService_DeleteFitnessScore_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + +func request_CampusService_DeleteFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteFitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_DeleteFitnessScore_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := client.DeleteFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_CampusService_DeleteFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq DeleteFitnessScoreRequest + metadata runtime.ServerMetadata + ) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_DeleteFitnessScore_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + msg, err := server.DeleteFitnessScore(ctx, &protoReq) + return msg, metadata, err +} + // RegisterCampusServiceHandlerServer registers the http handlers for service CampusService to "mux". // UnaryRPC :call CampusServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -2246,6 +2422,126 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM } forward_CampusService_GetCityByCode_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPost, pattern_CampusService_StoreFitnessScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/StoreFitnessScore", runtime.WithHTTPPathPattern("/staff/v1/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_StoreFitnessScore_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_StoreFitnessScore_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPost, pattern_CampusService_StoreFitnessScore_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/StoreFitnessScore", runtime.WithHTTPPathPattern("/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_StoreFitnessScore_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_StoreFitnessScore_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPatch, pattern_CampusService_UpdateFitnessScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/UpdateFitnessScore", runtime.WithHTTPPathPattern("/staff/v1/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_UpdateFitnessScore_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_UpdateFitnessScore_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPatch, pattern_CampusService_UpdateFitnessScore_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/UpdateFitnessScore", runtime.WithHTTPPathPattern("/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_UpdateFitnessScore_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_UpdateFitnessScore_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodDelete, pattern_CampusService_DeleteFitnessScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/DeleteFitnessScore", runtime.WithHTTPPathPattern("/staff/v1/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_DeleteFitnessScore_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_DeleteFitnessScore_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodDelete, pattern_CampusService_DeleteFitnessScore_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/DeleteFitnessScore", runtime.WithHTTPPathPattern("/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_DeleteFitnessScore_1(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_DeleteFitnessScore_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) return nil } @@ -3085,6 +3381,108 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM } forward_CampusService_GetCityByCode_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodPost, pattern_CampusService_StoreFitnessScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/StoreFitnessScore", runtime.WithHTTPPathPattern("/staff/v1/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_StoreFitnessScore_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_StoreFitnessScore_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPost, pattern_CampusService_StoreFitnessScore_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/StoreFitnessScore", runtime.WithHTTPPathPattern("/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_StoreFitnessScore_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_StoreFitnessScore_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPatch, pattern_CampusService_UpdateFitnessScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/UpdateFitnessScore", runtime.WithHTTPPathPattern("/staff/v1/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_UpdateFitnessScore_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_UpdateFitnessScore_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodPatch, pattern_CampusService_UpdateFitnessScore_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/UpdateFitnessScore", runtime.WithHTTPPathPattern("/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_UpdateFitnessScore_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_UpdateFitnessScore_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodDelete, pattern_CampusService_DeleteFitnessScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/DeleteFitnessScore", runtime.WithHTTPPathPattern("/staff/v1/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_DeleteFitnessScore_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_DeleteFitnessScore_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) + mux.Handle(http.MethodDelete, pattern_CampusService_DeleteFitnessScore_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/DeleteFitnessScore", runtime.WithHTTPPathPattern("/fitness/score")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_DeleteFitnessScore_1(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_CampusService_DeleteFitnessScore_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) return nil } @@ -3136,6 +3534,12 @@ var ( pattern_CampusService_ModifyCityForPreviousSchool_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"previous", "school", "city"}, "")) pattern_CampusService_GetCityByCode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "code", "city"}, "")) pattern_CampusService_GetCityByCode_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"code", "city"}, "")) + pattern_CampusService_StoreFitnessScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "fitness", "score"}, "")) + pattern_CampusService_StoreFitnessScore_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"fitness", "score"}, "")) + pattern_CampusService_UpdateFitnessScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "fitness", "score"}, "")) + pattern_CampusService_UpdateFitnessScore_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"fitness", "score"}, "")) + pattern_CampusService_DeleteFitnessScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "fitness", "score"}, "")) + pattern_CampusService_DeleteFitnessScore_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"fitness", "score"}, "")) ) var ( @@ -3186,4 +3590,10 @@ var ( forward_CampusService_ModifyCityForPreviousSchool_1 = runtime.ForwardResponseMessage forward_CampusService_GetCityByCode_0 = runtime.ForwardResponseMessage forward_CampusService_GetCityByCode_1 = runtime.ForwardResponseMessage + forward_CampusService_StoreFitnessScore_0 = runtime.ForwardResponseMessage + forward_CampusService_StoreFitnessScore_1 = runtime.ForwardResponseMessage + forward_CampusService_UpdateFitnessScore_0 = runtime.ForwardResponseMessage + forward_CampusService_UpdateFitnessScore_1 = runtime.ForwardResponseMessage + forward_CampusService_DeleteFitnessScore_0 = runtime.ForwardResponseMessage + forward_CampusService_DeleteFitnessScore_1 = runtime.ForwardResponseMessage ) diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 637259c..4ad93b1 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -254,6 +254,40 @@ service CampusService { } }; } + + //体测 + + //新增或更新体测成绩 + rpc StoreFitnessScore(FitnessScoreRequest) returns (FitnessScoreResponse) { + option (google.api.http) = { + post: "/staff/v1/fitness/score" + body: "*" + additional_bindings { + post: "/fitness/score" + } + }; + } + + //更新体测成绩 + rpc UpdateFitnessScore(FitnessScoreRequest) returns (FitnessScoreResponse) { + option (google.api.http) = { + patch: "/staff/v1/fitness/score" + body: "*" + additional_bindings { + patch: "/fitness/score" + } + }; + } + + //删除体测成绩 + rpc DeleteFitnessScore(DeleteFitnessScoreRequest) returns (DeleteFitnessScoreResponse) { + option (google.api.http) = { + delete: "/staff/v1/fitness/score" + additional_bindings { + delete: "/fitness/score" + } + }; + } } @@ -975,4 +1009,68 @@ message NiceResponse { int32 error = 1; string msg = 2; string data = 3; +} + +//下方为体测成绩相关消息 + +// FitnessScoreRequest 体测成绩请求(用于新增和更新) +message FitnessScoreRequest { + string staff_id = 1; + string school_year = 2; + int32 semester = 3; + string gender = 4; + int32 grade = 5; + float height = 6; + float weight = 7; + float bmi = 8; + float run_50m = 9; + float standing_long_jump = 10; + float sit_and_reach = 11; + float run_800m = 12; + float run_1000m = 13; + int32 sit_ups = 14; + int32 pull_ups = 15; + int32 lung_capacity = 16; + float total_score = 17; +} + +// FitnessScoreResponse 体测成绩响应(用于新增和更新) +message FitnessScoreResponse { + int32 error = 1; + string msg = 2; + FitnessScore data = 3; +} + +// DeleteFitnessScoreRequest 删除体测成绩请求 +message DeleteFitnessScoreRequest { + string staff_id = 1; + string school_year = 2; + int32 semester = 3; +} + +// DeleteFitnessScoreResponse 删除体测成绩响应 +message DeleteFitnessScoreResponse { + int32 error = 1; + string msg = 2; +} + +// FitnessScore 体测成绩信息 +message FitnessScore { + string staff_id = 1; + string school_year = 2; + int32 semester = 3; + string gender = 4; + int32 grade = 5; + float height = 6; + float weight = 7; + float bmi = 8; + float run_50m = 9; + float standing_long_jump = 10; + float sit_and_reach = 11; + float run_800m = 12; + float run_1000m = 13; + int32 sit_ups = 14; + int32 pull_ups = 15; + int32 lung_capacity = 16; + float total_score = 17; } \ No newline at end of file diff --git a/campusapis/staff/v1/campus_grpc.pb.go b/campusapis/staff/v1/campus_grpc.pb.go index 7ba0400..1a22ec9 100644 --- a/campusapis/staff/v1/campus_grpc.pb.go +++ b/campusapis/staff/v1/campus_grpc.pb.go @@ -44,6 +44,9 @@ const ( CampusService_GetCityByStudentID_FullMethodName = "/campusapis.staff.v1.CampusService/GetCityByStudentID" CampusService_ModifyCityForPreviousSchool_FullMethodName = "/campusapis.staff.v1.CampusService/ModifyCityForPreviousSchool" CampusService_GetCityByCode_FullMethodName = "/campusapis.staff.v1.CampusService/GetCityByCode" + CampusService_StoreFitnessScore_FullMethodName = "/campusapis.staff.v1.CampusService/StoreFitnessScore" + CampusService_UpdateFitnessScore_FullMethodName = "/campusapis.staff.v1.CampusService/UpdateFitnessScore" + CampusService_DeleteFitnessScore_FullMethodName = "/campusapis.staff.v1.CampusService/DeleteFitnessScore" ) // CampusServiceClient is the client API for CampusService service. @@ -118,6 +121,12 @@ type CampusServiceClient interface { GetCityByStudentID(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetCityByStudentIDResponse, error) ModifyCityForPreviousSchool(ctx context.Context, in *ModifyCityForPreviousSchoolRequest, opts ...grpc.CallOption) (*ModifyCityForPreviousSchoolResponse, error) GetCityByCode(ctx context.Context, in *GetCityByCodeRequest, opts ...grpc.CallOption) (*GetCityByCodeResponse, error) + // 新增或更新体测成绩 + StoreFitnessScore(ctx context.Context, in *FitnessScoreRequest, opts ...grpc.CallOption) (*FitnessScoreResponse, error) + // 更新体测成绩 + UpdateFitnessScore(ctx context.Context, in *FitnessScoreRequest, opts ...grpc.CallOption) (*FitnessScoreResponse, error) + // 删除体测成绩 + DeleteFitnessScore(ctx context.Context, in *DeleteFitnessScoreRequest, opts ...grpc.CallOption) (*DeleteFitnessScoreResponse, error) } type campusServiceClient struct { @@ -368,6 +377,36 @@ func (c *campusServiceClient) GetCityByCode(ctx context.Context, in *GetCityByCo return out, nil } +func (c *campusServiceClient) StoreFitnessScore(ctx context.Context, in *FitnessScoreRequest, opts ...grpc.CallOption) (*FitnessScoreResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(FitnessScoreResponse) + err := c.cc.Invoke(ctx, CampusService_StoreFitnessScore_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campusServiceClient) UpdateFitnessScore(ctx context.Context, in *FitnessScoreRequest, opts ...grpc.CallOption) (*FitnessScoreResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(FitnessScoreResponse) + err := c.cc.Invoke(ctx, CampusService_UpdateFitnessScore_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campusServiceClient) DeleteFitnessScore(ctx context.Context, in *DeleteFitnessScoreRequest, opts ...grpc.CallOption) (*DeleteFitnessScoreResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteFitnessScoreResponse) + err := c.cc.Invoke(ctx, CampusService_DeleteFitnessScore_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // CampusServiceServer is the server API for CampusService service. // All implementations must embed UnimplementedCampusServiceServer // for forward compatibility. @@ -440,6 +479,12 @@ type CampusServiceServer interface { GetCityByStudentID(context.Context, *emptypb.Empty) (*GetCityByStudentIDResponse, error) ModifyCityForPreviousSchool(context.Context, *ModifyCityForPreviousSchoolRequest) (*ModifyCityForPreviousSchoolResponse, error) GetCityByCode(context.Context, *GetCityByCodeRequest) (*GetCityByCodeResponse, error) + // 新增或更新体测成绩 + StoreFitnessScore(context.Context, *FitnessScoreRequest) (*FitnessScoreResponse, error) + // 更新体测成绩 + UpdateFitnessScore(context.Context, *FitnessScoreRequest) (*FitnessScoreResponse, error) + // 删除体测成绩 + DeleteFitnessScore(context.Context, *DeleteFitnessScoreRequest) (*DeleteFitnessScoreResponse, error) mustEmbedUnimplementedCampusServiceServer() } @@ -522,6 +567,15 @@ func (UnimplementedCampusServiceServer) ModifyCityForPreviousSchool(context.Cont func (UnimplementedCampusServiceServer) GetCityByCode(context.Context, *GetCityByCodeRequest) (*GetCityByCodeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCityByCode not implemented") } +func (UnimplementedCampusServiceServer) StoreFitnessScore(context.Context, *FitnessScoreRequest) (*FitnessScoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StoreFitnessScore not implemented") +} +func (UnimplementedCampusServiceServer) UpdateFitnessScore(context.Context, *FitnessScoreRequest) (*FitnessScoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFitnessScore not implemented") +} +func (UnimplementedCampusServiceServer) DeleteFitnessScore(context.Context, *DeleteFitnessScoreRequest) (*DeleteFitnessScoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFitnessScore not implemented") +} func (UnimplementedCampusServiceServer) mustEmbedUnimplementedCampusServiceServer() {} func (UnimplementedCampusServiceServer) testEmbeddedByValue() {} @@ -975,6 +1029,60 @@ func _CampusService_GetCityByCode_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _CampusService_StoreFitnessScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FitnessScoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampusServiceServer).StoreFitnessScore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CampusService_StoreFitnessScore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampusServiceServer).StoreFitnessScore(ctx, req.(*FitnessScoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampusService_UpdateFitnessScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FitnessScoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampusServiceServer).UpdateFitnessScore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CampusService_UpdateFitnessScore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampusServiceServer).UpdateFitnessScore(ctx, req.(*FitnessScoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampusService_DeleteFitnessScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFitnessScoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampusServiceServer).DeleteFitnessScore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CampusService_DeleteFitnessScore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampusServiceServer).DeleteFitnessScore(ctx, req.(*DeleteFitnessScoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + // CampusService_ServiceDesc is the grpc.ServiceDesc for CampusService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1078,6 +1186,18 @@ var CampusService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetCityByCode", Handler: _CampusService_GetCityByCode_Handler, }, + { + MethodName: "StoreFitnessScore", + Handler: _CampusService_StoreFitnessScore_Handler, + }, + { + MethodName: "UpdateFitnessScore", + Handler: _CampusService_UpdateFitnessScore_Handler, + }, + { + MethodName: "DeleteFitnessScore", + Handler: _CampusService_DeleteFitnessScore_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "campusapis/staff/v1/campus.proto", diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index 7fede2a..d9294d0 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -46,6 +46,328 @@ ] } }, + "/fitness/score": { + "delete": { + "summary": "删除体测成绩", + "operationId": "CampusService_DeleteFitnessScore2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteFitnessScoreResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "staffId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "schoolYear", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "semester", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "CampusService" + ] + }, + "post": { + "summary": "新增或更新体测成绩", + "operationId": "CampusService_StoreFitnessScore2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1FitnessScoreResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "staffId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "schoolYear", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "semester", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "gender", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "grade", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "weight", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "bmi", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "run50m", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "standingLongJump", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "sitAndReach", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "run800m", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "run1000m", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "sitUps", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pullUps", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "lungCapacity", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "totalScore", + "in": "query", + "required": false, + "type": "number", + "format": "float" + } + ], + "tags": [ + "CampusService" + ] + }, + "patch": { + "summary": "更新体测成绩", + "operationId": "CampusService_UpdateFitnessScore2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1FitnessScoreResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "staffId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "schoolYear", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "semester", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "gender", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "grade", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "weight", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "bmi", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "run50m", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "standingLongJump", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "sitAndReach", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "run800m", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "run1000m", + "in": "query", + "required": false, + "type": "number", + "format": "float" + }, + { + "name": "sitUps", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pullUps", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "lungCapacity", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "totalScore", + "in": "query", + "required": false, + "type": "number", + "format": "float" + } + ], + "tags": [ + "CampusService" + ] + } + }, "/freshman/base": { "get": { "summary": "获取新生基本信息", @@ -395,6 +717,112 @@ ] } }, + "/staff/v1/fitness/score": { + "delete": { + "summary": "删除体测成绩", + "operationId": "CampusService_DeleteFitnessScore", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteFitnessScoreResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "staffId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "schoolYear", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "semester", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "CampusService" + ] + }, + "post": { + "summary": "新增或更新体测成绩", + "operationId": "CampusService_StoreFitnessScore", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1FitnessScoreResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FitnessScoreRequest" + } + } + ], + "tags": [ + "CampusService" + ] + }, + "patch": { + "summary": "更新体测成绩", + "operationId": "CampusService_UpdateFitnessScore", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1FitnessScoreResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FitnessScoreRequest" + } + } + ], + "tags": [ + "CampusService" + ] + } + }, "/staff/v1/freshman/base": { "get": { "summary": "获取新生基本信息", @@ -1655,6 +2083,19 @@ } } }, + "v1DeleteFitnessScoreResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int32" + }, + "msg": { + "type": "string" + } + }, + "title": "DeleteFitnessScoreResponse 删除体测成绩响应" + }, "v1DormInfo": { "type": "object", "properties": { @@ -1672,6 +2113,164 @@ } } }, + "v1FitnessScore": { + "type": "object", + "properties": { + "staffId": { + "type": "string" + }, + "schoolYear": { + "type": "string" + }, + "semester": { + "type": "integer", + "format": "int32" + }, + "gender": { + "type": "string" + }, + "grade": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "number", + "format": "float" + }, + "weight": { + "type": "number", + "format": "float" + }, + "bmi": { + "type": "number", + "format": "float" + }, + "run50m": { + "type": "number", + "format": "float" + }, + "standingLongJump": { + "type": "number", + "format": "float" + }, + "sitAndReach": { + "type": "number", + "format": "float" + }, + "run800m": { + "type": "number", + "format": "float" + }, + "run1000m": { + "type": "number", + "format": "float" + }, + "sitUps": { + "type": "integer", + "format": "int32" + }, + "pullUps": { + "type": "integer", + "format": "int32" + }, + "lungCapacity": { + "type": "integer", + "format": "int32" + }, + "totalScore": { + "type": "number", + "format": "float" + } + }, + "title": "FitnessScore 体测成绩信息" + }, + "v1FitnessScoreRequest": { + "type": "object", + "properties": { + "staffId": { + "type": "string" + }, + "schoolYear": { + "type": "string" + }, + "semester": { + "type": "integer", + "format": "int32" + }, + "gender": { + "type": "string" + }, + "grade": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "number", + "format": "float" + }, + "weight": { + "type": "number", + "format": "float" + }, + "bmi": { + "type": "number", + "format": "float" + }, + "run50m": { + "type": "number", + "format": "float" + }, + "standingLongJump": { + "type": "number", + "format": "float" + }, + "sitAndReach": { + "type": "number", + "format": "float" + }, + "run800m": { + "type": "number", + "format": "float" + }, + "run1000m": { + "type": "number", + "format": "float" + }, + "sitUps": { + "type": "integer", + "format": "int32" + }, + "pullUps": { + "type": "integer", + "format": "int32" + }, + "lungCapacity": { + "type": "integer", + "format": "int32" + }, + "totalScore": { + "type": "number", + "format": "float" + } + }, + "title": "FitnessScoreRequest 体测成绩请求(用于新增和更新)" + }, + "v1FitnessScoreResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int32" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FitnessScore" + } + }, + "title": "FitnessScoreResponse 体测成绩响应(用于新增和更新)" + }, "v1FreshmanBaseInfo": { "type": "object", "properties": { From 1ed8a8f9ce7f5cac46fcb8504a717d9ef6ae05e1 Mon Sep 17 00:00:00 2001 From: Jiahe114514 Date: Thu, 22 Jan 2026 02:40:05 +0800 Subject: [PATCH 2/3] fix: camelCase --- campusapis/staff/v1/campus.pb.go | 819 +++++++++--------- campusapis/staff/v1/campus.proto | 54 +- .../campusapis/staff/v1/campus.swagger.json | 18 +- 3 files changed, 442 insertions(+), 449 deletions(-) diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index c6d07c5..fb7e7a0 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -4705,23 +4705,23 @@ func (x *NiceResponse) GetData() string { // FitnessScoreRequest 体测成绩请求(用于新增和更新) type FitnessScoreRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` - SchoolYear string `protobuf:"bytes,2,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` - Semester int32 `protobuf:"varint,3,opt,name=semester,proto3" json:"semester,omitempty"` + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + SchoolYear string `protobuf:"bytes,2,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` Gender string `protobuf:"bytes,4,opt,name=gender,proto3" json:"gender,omitempty"` Grade int32 `protobuf:"varint,5,opt,name=grade,proto3" json:"grade,omitempty"` Height float32 `protobuf:"fixed32,6,opt,name=height,proto3" json:"height,omitempty"` Weight float32 `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"` Bmi float32 `protobuf:"fixed32,8,opt,name=bmi,proto3" json:"bmi,omitempty"` - Run_50M float32 `protobuf:"fixed32,9,opt,name=run_50m,json=run50m,proto3" json:"run_50m,omitempty"` - StandingLongJump float32 `protobuf:"fixed32,10,opt,name=standing_long_jump,json=standingLongJump,proto3" json:"standing_long_jump,omitempty"` - SitAndReach float32 `protobuf:"fixed32,11,opt,name=sit_and_reach,json=sitAndReach,proto3" json:"sit_and_reach,omitempty"` - Run_800M float32 `protobuf:"fixed32,12,opt,name=run_800m,json=run800m,proto3" json:"run_800m,omitempty"` - Run_1000M float32 `protobuf:"fixed32,13,opt,name=run_1000m,json=run1000m,proto3" json:"run_1000m,omitempty"` - SitUps int32 `protobuf:"varint,14,opt,name=sit_ups,json=sitUps,proto3" json:"sit_ups,omitempty"` - PullUps int32 `protobuf:"varint,15,opt,name=pull_ups,json=pullUps,proto3" json:"pull_ups,omitempty"` - LungCapacity int32 `protobuf:"varint,16,opt,name=lung_capacity,json=lungCapacity,proto3" json:"lung_capacity,omitempty"` - TotalScore float32 `protobuf:"fixed32,17,opt,name=total_score,json=totalScore,proto3" json:"total_score,omitempty"` + Run50M float32 `protobuf:"fixed32,9,opt,name=run50m,proto3" json:"run50m,omitempty"` + StandingLongJump float32 `protobuf:"fixed32,10,opt,name=standingLongJump,proto3" json:"standingLongJump,omitempty"` + SitAndReach float32 `protobuf:"fixed32,11,opt,name=sitAndReach,proto3" json:"sitAndReach,omitempty"` + Run800M float32 `protobuf:"fixed32,12,opt,name=run800m,proto3" json:"run800m,omitempty"` + Run1000M float32 `protobuf:"fixed32,13,opt,name=run1000m,proto3" json:"run1000m,omitempty"` + SitUps int32 `protobuf:"varint,14,opt,name=sitUps,proto3" json:"sitUps,omitempty"` + PullUps int32 `protobuf:"varint,15,opt,name=pullUps,proto3" json:"pullUps,omitempty"` + LungCapacity int32 `protobuf:"varint,16,opt,name=lungCapacity,proto3" json:"lungCapacity,omitempty"` + TotalScore float32 `protobuf:"fixed32,17,opt,name=totalScore,proto3" json:"totalScore,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4770,11 +4770,11 @@ func (x *FitnessScoreRequest) GetSchoolYear() string { return "" } -func (x *FitnessScoreRequest) GetSemester() int32 { +func (x *FitnessScoreRequest) GetSemester() string { if x != nil { return x.Semester } - return 0 + return "" } func (x *FitnessScoreRequest) GetGender() string { @@ -4812,9 +4812,9 @@ func (x *FitnessScoreRequest) GetBmi() float32 { return 0 } -func (x *FitnessScoreRequest) GetRun_50M() float32 { +func (x *FitnessScoreRequest) GetRun50M() float32 { if x != nil { - return x.Run_50M + return x.Run50M } return 0 } @@ -4833,16 +4833,16 @@ func (x *FitnessScoreRequest) GetSitAndReach() float32 { return 0 } -func (x *FitnessScoreRequest) GetRun_800M() float32 { +func (x *FitnessScoreRequest) GetRun800M() float32 { if x != nil { - return x.Run_800M + return x.Run800M } return 0 } -func (x *FitnessScoreRequest) GetRun_1000M() float32 { +func (x *FitnessScoreRequest) GetRun1000M() float32 { if x != nil { - return x.Run_1000M + return x.Run1000M } return 0 } @@ -4939,9 +4939,9 @@ func (x *FitnessScoreResponse) GetData() *FitnessScore { // DeleteFitnessScoreRequest 删除体测成绩请求 type DeleteFitnessScoreRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` - SchoolYear string `protobuf:"bytes,2,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` - Semester int32 `protobuf:"varint,3,opt,name=semester,proto3" json:"semester,omitempty"` + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + SchoolYear string `protobuf:"bytes,2,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4990,11 +4990,11 @@ func (x *DeleteFitnessScoreRequest) GetSchoolYear() string { return "" } -func (x *DeleteFitnessScoreRequest) GetSemester() int32 { +func (x *DeleteFitnessScoreRequest) GetSemester() string { if x != nil { return x.Semester } - return 0 + return "" } // DeleteFitnessScoreResponse 删除体测成绩响应 @@ -5053,23 +5053,23 @@ func (x *DeleteFitnessScoreResponse) GetMsg() string { // FitnessScore 体测成绩信息 type FitnessScore struct { state protoimpl.MessageState `protogen:"open.v1"` - StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` - SchoolYear string `protobuf:"bytes,2,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` - Semester int32 `protobuf:"varint,3,opt,name=semester,proto3" json:"semester,omitempty"` + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + SchoolYear string `protobuf:"bytes,2,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` Gender string `protobuf:"bytes,4,opt,name=gender,proto3" json:"gender,omitempty"` Grade int32 `protobuf:"varint,5,opt,name=grade,proto3" json:"grade,omitempty"` Height float32 `protobuf:"fixed32,6,opt,name=height,proto3" json:"height,omitempty"` Weight float32 `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"` Bmi float32 `protobuf:"fixed32,8,opt,name=bmi,proto3" json:"bmi,omitempty"` - Run_50M float32 `protobuf:"fixed32,9,opt,name=run_50m,json=run50m,proto3" json:"run_50m,omitempty"` - StandingLongJump float32 `protobuf:"fixed32,10,opt,name=standing_long_jump,json=standingLongJump,proto3" json:"standing_long_jump,omitempty"` - SitAndReach float32 `protobuf:"fixed32,11,opt,name=sit_and_reach,json=sitAndReach,proto3" json:"sit_and_reach,omitempty"` - Run_800M float32 `protobuf:"fixed32,12,opt,name=run_800m,json=run800m,proto3" json:"run_800m,omitempty"` - Run_1000M float32 `protobuf:"fixed32,13,opt,name=run_1000m,json=run1000m,proto3" json:"run_1000m,omitempty"` - SitUps int32 `protobuf:"varint,14,opt,name=sit_ups,json=sitUps,proto3" json:"sit_ups,omitempty"` - PullUps int32 `protobuf:"varint,15,opt,name=pull_ups,json=pullUps,proto3" json:"pull_ups,omitempty"` - LungCapacity int32 `protobuf:"varint,16,opt,name=lung_capacity,json=lungCapacity,proto3" json:"lung_capacity,omitempty"` - TotalScore float32 `protobuf:"fixed32,17,opt,name=total_score,json=totalScore,proto3" json:"total_score,omitempty"` + Run50M float32 `protobuf:"fixed32,9,opt,name=run50m,proto3" json:"run50m,omitempty"` + StandingLongJump float32 `protobuf:"fixed32,10,opt,name=standingLongJump,proto3" json:"standingLongJump,omitempty"` + SitAndReach float32 `protobuf:"fixed32,11,opt,name=sitAndReach,proto3" json:"sitAndReach,omitempty"` + Run800M float32 `protobuf:"fixed32,12,opt,name=run800m,proto3" json:"run800m,omitempty"` + Run1000M float32 `protobuf:"fixed32,13,opt,name=run1000m,proto3" json:"run1000m,omitempty"` + SitUps int32 `protobuf:"varint,14,opt,name=sitUps,proto3" json:"sitUps,omitempty"` + PullUps int32 `protobuf:"varint,15,opt,name=pullUps,proto3" json:"pullUps,omitempty"` + LungCapacity int32 `protobuf:"varint,16,opt,name=lungCapacity,proto3" json:"lungCapacity,omitempty"` + TotalScore float32 `protobuf:"fixed32,17,opt,name=totalScore,proto3" json:"totalScore,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5118,11 +5118,11 @@ func (x *FitnessScore) GetSchoolYear() string { return "" } -func (x *FitnessScore) GetSemester() int32 { +func (x *FitnessScore) GetSemester() string { if x != nil { return x.Semester } - return 0 + return "" } func (x *FitnessScore) GetGender() string { @@ -5160,9 +5160,9 @@ func (x *FitnessScore) GetBmi() float32 { return 0 } -func (x *FitnessScore) GetRun_50M() float32 { +func (x *FitnessScore) GetRun50M() float32 { if x != nil { - return x.Run_50M + return x.Run50M } return 0 } @@ -5181,16 +5181,16 @@ func (x *FitnessScore) GetSitAndReach() float32 { return 0 } -func (x *FitnessScore) GetRun_800M() float32 { +func (x *FitnessScore) GetRun800M() float32 { if x != nil { - return x.Run_800M + return x.Run800M } return 0 } -func (x *FitnessScore) GetRun_1000M() float32 { +func (x *FitnessScore) GetRun1000M() float32 { if x != nil { - return x.Run_1000M + return x.Run1000M } return 0 } @@ -6055,389 +6055,388 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = string([]byte{ 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xfa, 0x03, 0x0a, 0x13, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, - 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, - 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, 0x35, 0x30, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6a, 0x75, 0x6d, 0x70, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, - 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x69, 0x74, 0x5f, 0x61, - 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, - 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x72, - 0x75, 0x6e, 0x5f, 0x38, 0x30, 0x30, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, - 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x31, 0x30, + 0x22, 0xed, 0x03, 0x0a, 0x13, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, + 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, + 0x72, 0x75, 0x6e, 0x35, 0x30, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, + 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, + 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, + 0x74, 0x55, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x74, 0x55, + 0x70, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x22, 0x75, 0x0a, 0x14, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x71, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1a, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0xe6, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, + 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, 0x6d, 0x12, + 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, + 0x75, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, + 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, - 0x30, 0x30, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x69, 0x74, 0x5f, 0x75, 0x70, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x75, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x75, 0x6e, 0x67, 0x5f, - 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x75, 0x0a, - 0x14, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, + 0x30, 0x30, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x75, + 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x75, 0x6e, + 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x32, 0xea, 0x23, 0x0a, 0x0d, 0x43, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x73, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1a, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, - 0xf3, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, - 0x35, 0x30, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, - 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, - 0x6e, 0x67, 0x5f, 0x6a, 0x75, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, - 0x22, 0x0a, 0x0d, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x38, 0x30, 0x30, 0x6d, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x75, 0x6e, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, 0x30, 0x30, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x73, - 0x69, 0x74, 0x5f, 0x75, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, - 0x74, 0x55, 0x70, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x75, 0x70, 0x73, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x6c, 0x75, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x32, 0xea, 0x23, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, - 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xa8, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0xb6, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, + 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xa8, 0x01, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, + 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, + 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, - 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, - 0x72, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, + 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8e, 0x01, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x5a, 0x13, + 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, - 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, + 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, + 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, - 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, - 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0xae, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x28, 0x12, 0x26, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, - 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x16, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, - 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, - 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x80, 0x01, 0x0a, - 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x37, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, - 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0x1d, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, - 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, - 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, - 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, + 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, - 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, - 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0xae, 0x01, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, + 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, + 0x61, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x0c, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x5a, 0x1d, 0x12, 0x1b, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x20, 0x12, 0x1e, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xd5, 0x01, - 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1b, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, + 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, + 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, + 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, + 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x5a, 0x19, 0x12, 0x17, 0x2f, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, - 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, - 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, - 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4d, 0x6f, 0x64, 0x69, 0x66, - 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, - 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, - 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3f, 0x5a, 0x1d, 0x3a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x15, 0x2f, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, - 0x22, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, - 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, - 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, + 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x23, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, - 0x13, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, + 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0xf1, 0x01, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, + 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, + 0x20, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x12, 0xd5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, - 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x5a, 0x10, 0x22, 0x0e, 0x2f, 0x66, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x17, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, - 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x5a, 0x10, 0x32, 0x0e, - 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x32, 0x17, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, - 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2e, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, - 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x5a, 0x19, 0x12, 0x17, + 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, + 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, + 0x74, 0x79, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4d, + 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x5a, 0x1d, 0x3a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x15, 0x2f, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, + 0x63, 0x69, 0x74, 0x79, 0x22, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, + 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, + 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, + 0x69, 0x74, 0x79, 0x12, 0x13, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, - 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2a, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, - 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, - 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x5a, 0x10, + 0x22, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x22, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x12, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, + 0x5a, 0x10, 0x32, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x32, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x12, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, + 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2a, 0x17, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, + 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, + 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, }) var ( diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 4ad93b1..6176e21 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -1015,23 +1015,23 @@ message NiceResponse { // FitnessScoreRequest 体测成绩请求(用于新增和更新) message FitnessScoreRequest { - string staff_id = 1; - string school_year = 2; - int32 semester = 3; + string staffId = 1; + string schoolYear = 2; + string semester = 3; string gender = 4; int32 grade = 5; float height = 6; float weight = 7; float bmi = 8; - float run_50m = 9; - float standing_long_jump = 10; - float sit_and_reach = 11; - float run_800m = 12; - float run_1000m = 13; - int32 sit_ups = 14; - int32 pull_ups = 15; - int32 lung_capacity = 16; - float total_score = 17; + float run50m = 9; + float standingLongJump = 10; + float sitAndReach = 11; + float run800m = 12; + float run1000m = 13; + int32 sitUps = 14; + int32 pullUps = 15; + int32 lungCapacity = 16; + float totalScore = 17; } // FitnessScoreResponse 体测成绩响应(用于新增和更新) @@ -1043,9 +1043,9 @@ message FitnessScoreResponse { // DeleteFitnessScoreRequest 删除体测成绩请求 message DeleteFitnessScoreRequest { - string staff_id = 1; - string school_year = 2; - int32 semester = 3; + string staffId = 1; + string schoolYear = 2; + string semester = 3; } // DeleteFitnessScoreResponse 删除体测成绩响应 @@ -1056,21 +1056,21 @@ message DeleteFitnessScoreResponse { // FitnessScore 体测成绩信息 message FitnessScore { - string staff_id = 1; - string school_year = 2; - int32 semester = 3; + string staffId = 1; + string schoolYear = 2; + string semester = 3; string gender = 4; int32 grade = 5; float height = 6; float weight = 7; float bmi = 8; - float run_50m = 9; - float standing_long_jump = 10; - float sit_and_reach = 11; - float run_800m = 12; - float run_1000m = 13; - int32 sit_ups = 14; - int32 pull_ups = 15; - int32 lung_capacity = 16; - float total_score = 17; + float run50m = 9; + float standingLongJump = 10; + float sitAndReach = 11; + float run800m = 12; + float run1000m = 13; + int32 sitUps = 14; + int32 pullUps = 15; + int32 lungCapacity = 16; + float totalScore = 17; } \ No newline at end of file diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index d9294d0..c51eeda 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -81,8 +81,7 @@ "name": "semester", "in": "query", "required": false, - "type": "integer", - "format": "int32" + "type": "string" } ], "tags": [ @@ -123,8 +122,7 @@ "name": "semester", "in": "query", "required": false, - "type": "integer", - "format": "int32" + "type": "string" }, { "name": "gender", @@ -262,8 +260,7 @@ "name": "semester", "in": "query", "required": false, - "type": "integer", - "format": "int32" + "type": "string" }, { "name": "gender", @@ -752,8 +749,7 @@ "name": "semester", "in": "query", "required": false, - "type": "integer", - "format": "int32" + "type": "string" } ], "tags": [ @@ -2123,8 +2119,7 @@ "type": "string" }, "semester": { - "type": "integer", - "format": "int32" + "type": "string" }, "gender": { "type": "string" @@ -2194,8 +2189,7 @@ "type": "string" }, "semester": { - "type": "integer", - "format": "int32" + "type": "string" }, "gender": { "type": "string" From b8156458a6ce75252bd1b2cf45e4f398a40abe8b Mon Sep 17 00:00:00 2001 From: Jiahe114514 Date: Thu, 22 Jan 2026 16:54:15 +0800 Subject: [PATCH 3/3] fix: bug --- campusapis/staff/v1/campus.pb.go | 662 +++++++++--------- campusapis/staff/v1/campus.pb.gw.go | 24 +- campusapis/staff/v1/campus.proto | 14 + .../campusapis/staff/v1/campus.swagger.json | 250 +------ 4 files changed, 372 insertions(+), 578 deletions(-) diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index fb7e7a0..5d3b397 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -7,6 +7,7 @@ package staffv1 import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" staff "github.com/hduhelp/api_open_sdk/campusapis/staff" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -5430,7 +5431,10 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = string([]byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, + 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x15, @@ -6093,350 +6097,356 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = string([]byte{ 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x71, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x22, 0xe6, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, - 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, 0x6d, 0x12, - 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, - 0x75, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, - 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, - 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, - 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, 0x31, 0x30, - 0x30, 0x30, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x75, - 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, - 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x75, 0x6e, - 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x32, 0xea, 0x23, 0x0a, 0x0d, 0x43, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, - 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, - 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xa8, 0x01, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, - 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd2, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x5f, 0x92, 0x41, 0x5c, + 0x0a, 0x5a, 0x2a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x32, 0x1b, 0xe5, + 0x88, 0xa0, 0xe9, 0x99, 0xa4, 0xe4, 0xbd, 0x93, 0xe6, 0xb5, 0x8b, 0xe6, 0x88, 0x90, 0xe7, 0xbb, + 0xa9, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0xd2, 0x01, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0xd2, 0x01, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0xd2, 0x01, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0xe6, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6d, 0x69, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x62, 0x6d, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x75, 0x6e, + 0x35, 0x30, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x35, 0x30, + 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, + 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x74, 0x61, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x6e, 0x67, 0x4a, 0x75, 0x6d, 0x70, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0b, 0x73, 0x69, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x07, 0x72, 0x75, 0x6e, 0x38, 0x30, 0x30, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x75, 0x6e, + 0x31, 0x30, 0x30, 0x30, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x75, 0x6e, + 0x31, 0x30, 0x30, 0x30, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x74, 0x55, 0x70, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x70, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x75, 0x6e, 0x67, 0x43, + 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, + 0x75, 0x6e, 0x67, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x32, 0xf0, 0x23, 0x0a, 0x0d, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x44, - 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x5a, 0x1b, 0x12, 0x19, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, - 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8e, 0x01, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x5a, 0x13, - 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, - 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, + 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xa8, 0x01, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1b, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, - 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x79, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x5a, 0x1b, + 0x12, 0x19, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, + 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, + 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, + 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0xae, 0x01, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, - 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, - 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x5a, + 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, - 0x61, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x28, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, - 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1b, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x82, 0x01, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, - 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, - 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0xae, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, - 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, - 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, - 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, - 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, + 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, + 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, + 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, + 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x65, 0x78, 0x61, 0x6d, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x9e, 0x01, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0xf1, 0x01, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, - 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, - 0x20, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, + 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, + 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x82, 0x01, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x15, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, + 0x70, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, + 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, + 0x79, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, + 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, + 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x12, 0x0e, 0x2f, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, + 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x14, 0x12, 0x12, + 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, + 0xf1, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x61, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x12, 0xd5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x5a, 0x20, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, + 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x69, + 0x6e, 0x66, 0x6f, 0x12, 0xd5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, + 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x5a, 0x19, + 0x12, 0x17, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x5a, 0x19, 0x12, 0x17, - 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x2f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0xd7, 0x01, 0x0a, + 0x1b, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, + 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x5a, 0x1d, 0x3a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, + 0x15, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x22, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x69, + 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, - 0x74, 0x79, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x12, 0x37, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, - 0x43, 0x69, 0x74, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x5a, 0x1d, 0x3a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x15, 0x2f, - 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, - 0x63, 0x69, 0x74, 0x79, 0x22, 0x1e, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, - 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, - 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, - 0x69, 0x74, 0x79, 0x12, 0x13, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x5a, 0x10, - 0x22, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x22, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x12, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x65, 0x74, 0x43, 0x69, 0x74, 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x69, 0x74, + 0x79, 0x42, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x6f, 0x64, 0x65, + 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x13, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x69, 0x74, 0x79, 0x12, 0xa1, 0x01, 0x0a, 0x11, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, - 0x5a, 0x10, 0x32, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x32, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x12, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, - 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2a, 0x17, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, - 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, - 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, - 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, - 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x3a, 0x01, 0x2a, + 0x5a, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0xa2, + 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x31, 0x3a, 0x01, 0x2a, 0x5a, 0x13, 0x3a, 0x01, 0x2a, 0x32, 0x0e, 0x2f, 0x66, 0x69, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x32, 0x17, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2a, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0xd1, + 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, + 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, }) var ( diff --git a/campusapis/staff/v1/campus.pb.gw.go b/campusapis/staff/v1/campus.pb.gw.go index 9f7f454..c25c9fb 100644 --- a/campusapis/staff/v1/campus.pb.gw.go +++ b/campusapis/staff/v1/campus.pb.gw.go @@ -1324,17 +1324,12 @@ func local_request_CampusService_StoreFitnessScore_0(ctx context.Context, marsha return msg, metadata, err } -var filter_CampusService_StoreFitnessScore_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} - func request_CampusService_StoreFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq FitnessScoreRequest metadata runtime.ServerMetadata ) - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_StoreFitnessScore_1); err != nil { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } msg, err := client.StoreFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) @@ -1346,10 +1341,7 @@ func local_request_CampusService_StoreFitnessScore_1(ctx context.Context, marsha protoReq FitnessScoreRequest metadata runtime.ServerMetadata ) - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_StoreFitnessScore_1); err != nil { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } msg, err := server.StoreFitnessScore(ctx, &protoReq) @@ -1380,17 +1372,12 @@ func local_request_CampusService_UpdateFitnessScore_0(ctx context.Context, marsh return msg, metadata, err } -var filter_CampusService_UpdateFitnessScore_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} - func request_CampusService_UpdateFitnessScore_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq FitnessScoreRequest metadata runtime.ServerMetadata ) - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_UpdateFitnessScore_1); err != nil { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } msg, err := client.UpdateFitnessScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) @@ -1402,10 +1389,7 @@ func local_request_CampusService_UpdateFitnessScore_1(ctx context.Context, marsh protoReq FitnessScoreRequest metadata runtime.ServerMetadata ) - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_UpdateFitnessScore_1); err != nil { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } msg, err := server.UpdateFitnessScore(ctx, &protoReq) diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 6176e21..981441d 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -5,6 +5,7 @@ package campusapis.staff.v1; import "campusapis/staff/base.proto"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "./campusapis/staff/v1"; @@ -264,6 +265,7 @@ service CampusService { body: "*" additional_bindings { post: "/fitness/score" + body: "*" } }; } @@ -275,6 +277,7 @@ service CampusService { body: "*" additional_bindings { patch: "/fitness/score" + body: "*" } }; } @@ -1043,6 +1046,17 @@ message FitnessScoreResponse { // DeleteFitnessScoreRequest 删除体测成绩请求 message DeleteFitnessScoreRequest { + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { + json_schema: { + title: "DeleteFitnessScoreRequest" + description: "删除体测成绩请求体" + required: [ + "staffId", + "schoolYear", + "semester" + ] + } + }; string staffId = 1; string schoolYear = 2; string semester = 3; diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index c51eeda..a88e3d7 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -68,19 +68,19 @@ { "name": "staffId", "in": "query", - "required": false, + "required": true, "type": "string" }, { "name": "schoolYear", "in": "query", - "required": false, + "required": true, "type": "string" }, { "name": "semester", "in": "query", - "required": false, + "required": true, "type": "string" } ], @@ -107,119 +107,12 @@ }, "parameters": [ { - "name": "staffId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "schoolYear", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "semester", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "gender", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "grade", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "height", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "weight", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "bmi", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "run50m", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "standingLongJump", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "sitAndReach", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "run800m", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "run1000m", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "sitUps", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "pullUps", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "lungCapacity", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "totalScore", - "in": "query", - "required": false, - "type": "number", - "format": "float" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FitnessScoreRequest" + } } ], "tags": [ @@ -245,119 +138,12 @@ }, "parameters": [ { - "name": "staffId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "schoolYear", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "semester", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "gender", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "grade", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "height", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "weight", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "bmi", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "run50m", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "standingLongJump", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "sitAndReach", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "run800m", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "run1000m", - "in": "query", - "required": false, - "type": "number", - "format": "float" - }, - { - "name": "sitUps", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "pullUps", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "lungCapacity", - "in": "query", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "totalScore", - "in": "query", - "required": false, - "type": "number", - "format": "float" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FitnessScoreRequest" + } } ], "tags": [ @@ -736,19 +522,19 @@ { "name": "staffId", "in": "query", - "required": false, + "required": true, "type": "string" }, { "name": "schoolYear", "in": "query", - "required": false, + "required": true, "type": "string" }, { "name": "semester", "in": "query", - "required": false, + "required": true, "type": "string" } ],