From 8230c35deab8cc33b059628423300020a7aa8a48 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 13 Apr 2023 18:58:04 +0800 Subject: [PATCH 01/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2=20?= =?UTF-8?q?=E5=B7=B2=E9=98=85=E5=92=8C=E5=BE=85=E9=98=85=E8=AF=BB=202.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 6 +----- pkg/serializer/approval.go | 10 ++++++++-- pkg/service/approval.go | 6 +++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 11220c3..c273ce2 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -686,11 +686,7 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("Exhibition.ApprovalExhibitions") if in.Status != 0 { - if in.Status == 6 { - modelObj.Where("status in ?", []int{4, 5}) - } else { - modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) - } + modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) } if in.Type != "" { diff --git a/pkg/serializer/approval.go b/pkg/serializer/approval.go index e6e6ea6..92c4d09 100644 --- a/pkg/serializer/approval.go +++ b/pkg/serializer/approval.go @@ -98,11 +98,17 @@ func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateReques } //BuildApprovals 处理单个detail返回 -func BuildApprovals(list []*model.Approval, userId uint64) (details []*approval.CreateRequest) { +func BuildApprovals(list []*model.Approval, userId uint64, status int) (details []*approval.CreateRequest) { for _, item := range list { temp := BuildApproval(item, userId) - details = append(details, temp) + if status == 6 { + if temp.AllStatus == 4 || temp.AllStatus == 5 { + details = append(details, temp) + } + } else { + details = append(details, temp) + } } return details diff --git a/pkg/service/approval.go b/pkg/service/approval.go index 28d1c10..1abcea4 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -251,7 +251,7 @@ func (a *ApprovalProvider) MySubmit(ctx context.Context, in *approval.ListReques list, count = model.MySubmitApprovals(in) response.Count = uint64(count) - response.Data = serializer.BuildApprovals(list, in.UserID) + response.Data = serializer.BuildApprovals(list, in.UserID, 0) return response, nil } @@ -263,14 +263,14 @@ func (a *ApprovalProvider) MyWork(ctx context.Context, in *approval.ListRequest) var list []*model.Approval var count int64 - if in.Status == 0 && in.ApprovedBossId == 0 { + if (in.Status == 0 || in.Status == 6) && in.ApprovedBossId == 0 { list, count = model.MyAllWorkApprovals(in) } else { list, count = model.MyWorkApprovals(in) } response.Count = uint64(count) - response.Data = serializer.BuildApprovals(list, in.UserID) + response.Data = serializer.BuildApprovals(list, in.UserID, int(in.Status)) return response, nil } From a6eb68c2ad574b0a20dc49902ddca362eb576361 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 13 Apr 2023 19:06:06 +0800 Subject: [PATCH 02/64] =?UTF-8?q?=E6=94=B9=E5=9B=9E=201.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/serializer/approval.go | 10 ++-------- pkg/service/approval.go | 6 +++--- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/pkg/serializer/approval.go b/pkg/serializer/approval.go index 92c4d09..e6e6ea6 100644 --- a/pkg/serializer/approval.go +++ b/pkg/serializer/approval.go @@ -98,17 +98,11 @@ func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateReques } //BuildApprovals 处理单个detail返回 -func BuildApprovals(list []*model.Approval, userId uint64, status int) (details []*approval.CreateRequest) { +func BuildApprovals(list []*model.Approval, userId uint64) (details []*approval.CreateRequest) { for _, item := range list { temp := BuildApproval(item, userId) - if status == 6 { - if temp.AllStatus == 4 || temp.AllStatus == 5 { - details = append(details, temp) - } - } else { - details = append(details, temp) - } + details = append(details, temp) } return details diff --git a/pkg/service/approval.go b/pkg/service/approval.go index 1abcea4..28d1c10 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -251,7 +251,7 @@ func (a *ApprovalProvider) MySubmit(ctx context.Context, in *approval.ListReques list, count = model.MySubmitApprovals(in) response.Count = uint64(count) - response.Data = serializer.BuildApprovals(list, in.UserID, 0) + response.Data = serializer.BuildApprovals(list, in.UserID) return response, nil } @@ -263,14 +263,14 @@ func (a *ApprovalProvider) MyWork(ctx context.Context, in *approval.ListRequest) var list []*model.Approval var count int64 - if (in.Status == 0 || in.Status == 6) && in.ApprovedBossId == 0 { + if in.Status == 0 && in.ApprovedBossId == 0 { list, count = model.MyAllWorkApprovals(in) } else { list, count = model.MyWorkApprovals(in) } response.Count = uint64(count) - response.Data = serializer.BuildApprovals(list, in.UserID, int(in.Status)) + response.Data = serializer.BuildApprovals(list, in.UserID) return response, nil } From a769dd08bf8ff3717e48c852606cdd56a1d4c84e Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 24 Apr 2023 16:17:01 +0800 Subject: [PATCH 03/64] =?UTF-8?q?oa=20=E5=AE=A1=E6=89=B9=20=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 2087 +++++++++++++++++++++---- api/approval/approval.proto | 125 ++ api/approval/approval.validator.pb.go | 140 ++ pkg/model/approval.go | 18 +- pkg/model/approval_oa.go | 274 ++++ pkg/model/approval_type.go | 80 +- 6 files changed, 2353 insertions(+), 371 deletions(-) create mode 100644 pkg/model/approval_oa.go diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 5d47042..48ef5da 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2641,6 +2641,7 @@ type CreateRequest struct { TypeName string `protobuf:"bytes,28,opt,name=TypeName,json=typeName,proto3" json:"TypeName,omitempty"` GroupName string `protobuf:"bytes,29,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` BundlePayPrice *BundlePayPrice `protobuf:"bytes,30,opt,name=BundlePayPrice,json=bundlePayPrice,proto3" json:"BundlePayPrice,omitempty"` + ApprovalOA *ApprovalOA `protobuf:"bytes,31,opt,name=ApprovalOA,proto3" json:"ApprovalOA,omitempty"` } func (x *CreateRequest) Reset() { @@ -2871,6 +2872,13 @@ func (x *CreateRequest) GetBundlePayPrice() *BundlePayPrice { return nil } +func (x *CreateRequest) GetApprovalOA() *ApprovalOA { + if x != nil { + return x.ApprovalOA + } + return nil +} + type WorkFlow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3550,23 +3558,1012 @@ type SettingRequest struct { IsCustom uint64 `protobuf:"varint,12,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` } -func (x *SettingRequest) Reset() { - *x = SettingRequest{} +func (x *SettingRequest) Reset() { + *x = SettingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingRequest) ProtoMessage() {} + +func (x *SettingRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SettingRequest.ProtoReflect.Descriptor instead. +func (*SettingRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{45} +} + +func (x *SettingRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *SettingRequest) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *SettingRequest) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *SettingRequest) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *SettingRequest) GetKeyWord() string { + if x != nil { + return x.KeyWord + } + return "" +} + +func (x *SettingRequest) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *SettingRequest) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +func (x *SettingRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *SettingRequest) GetCustomizeInfo() []*KeyInfo { + if x != nil { + return x.CustomizeInfo + } + return nil +} + +func (x *SettingRequest) GetIsCustom() uint64 { + if x != nil { + return x.IsCustom + } + return 0 +} + +type DetailSettingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyWord string `protobuf:"bytes,1,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` +} + +func (x *DetailSettingRequest) Reset() { + *x = DetailSettingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DetailSettingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetailSettingRequest) ProtoMessage() {} + +func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. +func (*DetailSettingRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{46} +} + +func (x *DetailSettingRequest) GetKeyWord() string { + if x != nil { + return x.KeyWord + } + return "" +} + +func (x *DetailSettingRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +type SettingResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` +} + +func (x *SettingResponse) Reset() { + *x = SettingResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingResponse) ProtoMessage() {} + +func (x *SettingResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. +func (*SettingResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{47} +} + +func (x *SettingResponse) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *SettingResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type ApprovalOA struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + LeaveApply *LeaveApply `protobuf:"bytes,6,opt,name=LeaveApply,json=leaveApply,proto3" json:"LeaveApply,omitempty"` + OutWork *OutWorkApply `protobuf:"bytes,7,opt,name=OutWork,json=outWork,proto3" json:"OutWork,omitempty"` + MakeUp *MakeUpApply `protobuf:"bytes,8,opt,name=MakeUp,json=makeUp,proto3" json:"MakeUp,omitempty"` + Turnover *TurnoverApply `protobuf:"bytes,9,opt,name=Turnover,json=turnover,proto3" json:"Turnover,omitempty"` + OverTime *OverTimeApply `protobuf:"bytes,10,opt,name=OverTime,json=overTime,proto3" json:"OverTime,omitempty"` + Leave *Leave `protobuf:"bytes,11,opt,name=Leave,json=leave,proto3" json:"Leave,omitempty"` +} + +func (x *ApprovalOA) Reset() { + *x = ApprovalOA{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalOA) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalOA) ProtoMessage() {} + +func (x *ApprovalOA) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalOA.ProtoReflect.Descriptor instead. +func (*ApprovalOA) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{48} +} + +func (x *ApprovalOA) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalOA) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *ApprovalOA) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *ApprovalOA) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *ApprovalOA) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *ApprovalOA) GetLeaveApply() *LeaveApply { + if x != nil { + return x.LeaveApply + } + return nil +} + +func (x *ApprovalOA) GetOutWork() *OutWorkApply { + if x != nil { + return x.OutWork + } + return nil +} + +func (x *ApprovalOA) GetMakeUp() *MakeUpApply { + if x != nil { + return x.MakeUp + } + return nil +} + +func (x *ApprovalOA) GetTurnover() *TurnoverApply { + if x != nil { + return x.Turnover + } + return nil +} + +func (x *ApprovalOA) GetOverTime() *OverTimeApply { + if x != nil { + return x.OverTime + } + return nil +} + +func (x *ApprovalOA) GetLeave() *Leave { + if x != nil { + return x.Leave + } + return nil +} + +type LeaveApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Reason string `protobuf:"bytes,10,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + VerifyFile []string `protobuf:"bytes,11,rep,name=VerifyFile,json=verifyFile,proto3" json:"VerifyFile,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,12,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,13,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *LeaveApply) Reset() { + *x = LeaveApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveApply) ProtoMessage() {} + +func (x *LeaveApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeaveApply.ProtoReflect.Descriptor instead. +func (*LeaveApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{49} +} + +func (x *LeaveApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *LeaveApply) GetStaffUID() string { + if x != nil { + return x.StaffUID + } + return "" +} + +func (x *LeaveApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *LeaveApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *LeaveApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *LeaveApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *LeaveApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *LeaveApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *LeaveApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *LeaveApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *LeaveApply) GetVerifyFile() []string { + if x != nil { + return x.VerifyFile + } + return nil +} + +func (x *LeaveApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *LeaveApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type OutWorkApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` + EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` + OutWorkAddress string `protobuf:"bytes,14,opt,name=OutWorkAddress,json=outWorkAddress,proto3" json:"OutWorkAddress,omitempty"` + Vehicle string `protobuf:"bytes,15,opt,name=Vehicle,json=vehicle,proto3" json:"Vehicle,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,16,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *OutWorkApply) Reset() { + *x = OutWorkApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutWorkApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutWorkApply) ProtoMessage() {} + +func (x *OutWorkApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutWorkApply.ProtoReflect.Descriptor instead. +func (*OutWorkApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{50} +} + +func (x *OutWorkApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *OutWorkApply) GetStaffUID() string { + if x != nil { + return x.StaffUID + } + return "" +} + +func (x *OutWorkApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *OutWorkApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *OutWorkApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *OutWorkApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *OutWorkApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *OutWorkApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *OutWorkApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OutWorkApply) GetBeginTime() string { + if x != nil { + return x.BeginTime + } + return "" +} + +func (x *OutWorkApply) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *OutWorkApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *OutWorkApply) GetHours() float32 { + if x != nil { + return x.Hours + } + return 0 +} + +func (x *OutWorkApply) GetOutWorkAddress() string { + if x != nil { + return x.OutWorkAddress + } + return "" +} + +func (x *OutWorkApply) GetVehicle() string { + if x != nil { + return x.Vehicle + } + return "" +} + +func (x *OutWorkApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *OutWorkApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type MakeUpApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + MakeUpDate string `protobuf:"bytes,10,opt,name=MakeUpDate,json=makeUpDate,proto3" json:"MakeUpDate,omitempty"` + MakeUpTime string `protobuf:"bytes,11,opt,name=MakeUpTime,json=makeUpTime,proto3" json:"MakeUpTime,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,13,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,14,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *MakeUpApply) Reset() { + *x = MakeUpApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MakeUpApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MakeUpApply) ProtoMessage() {} + +func (x *MakeUpApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MakeUpApply.ProtoReflect.Descriptor instead. +func (*MakeUpApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{51} +} + +func (x *MakeUpApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *MakeUpApply) GetStaffUID() string { + if x != nil { + return x.StaffUID + } + return "" +} + +func (x *MakeUpApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *MakeUpApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *MakeUpApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *MakeUpApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *MakeUpApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *MakeUpApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *MakeUpApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *MakeUpApply) GetMakeUpDate() string { + if x != nil { + return x.MakeUpDate + } + return "" +} + +func (x *MakeUpApply) GetMakeUpTime() string { + if x != nil { + return x.MakeUpTime + } + return "" +} + +func (x *MakeUpApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *MakeUpApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *MakeUpApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type TurnoverApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + HandoverUID string `protobuf:"bytes,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` + HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` + TurnoverTime string `protobuf:"bytes,12,opt,name=TurnoverTime,json=turnoverTime,proto3" json:"TurnoverTime,omitempty"` + Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *TurnoverApply) Reset() { + *x = TurnoverApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TurnoverApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TurnoverApply) ProtoMessage() {} + +func (x *TurnoverApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TurnoverApply.ProtoReflect.Descriptor instead. +func (*TurnoverApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{52} +} + +func (x *TurnoverApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *TurnoverApply) GetStaffUID() string { + if x != nil { + return x.StaffUID + } + return "" +} + +func (x *TurnoverApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *TurnoverApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *TurnoverApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *TurnoverApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *TurnoverApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *TurnoverApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *TurnoverApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *TurnoverApply) GetHandoverUID() string { + if x != nil { + return x.HandoverUID + } + return "" +} + +func (x *TurnoverApply) GetHandoverName() string { + if x != nil { + return x.HandoverName + } + return "" +} + +func (x *TurnoverApply) GetTurnoverTime() string { + if x != nil { + return x.TurnoverTime + } + return "" +} + +func (x *TurnoverApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *TurnoverApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *TurnoverApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type OverTimeApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` + EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *OverTimeApply) Reset() { + *x = OverTimeApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[45] + mi := &file_api_approval_approval_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SettingRequest) String() string { +func (x *OverTimeApply) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SettingRequest) ProtoMessage() {} +func (*OverTimeApply) ProtoMessage() {} -func (x *SettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[45] +func (x *OverTimeApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3577,107 +4574,156 @@ func (x *SettingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SettingRequest.ProtoReflect.Descriptor instead. -func (*SettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{45} +// Deprecated: Use OverTimeApply.ProtoReflect.Descriptor instead. +func (*OverTimeApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{53} } -func (x *SettingRequest) GetID() uint64 { +func (x *OverTimeApply) GetUUID() string { if x != nil { - return x.ID + return x.UUID } - return 0 + return "" } -func (x *SettingRequest) GetDeletedAt() uint64 { +func (x *OverTimeApply) GetStaffUID() string { if x != nil { - return x.DeletedAt + return x.StaffUID } - return 0 + return "" } -func (x *SettingRequest) GetCreatedAt() string { +func (x *OverTimeApply) GetStaffNum() string { if x != nil { - return x.CreatedAt + return x.StaffNum } return "" } -func (x *SettingRequest) GetUpdatedAt() string { +func (x *OverTimeApply) GetStaffName() string { if x != nil { - return x.UpdatedAt + return x.StaffName } return "" } -func (x *SettingRequest) GetKeyWord() string { +func (x *OverTimeApply) GetDepartmentUID() string { if x != nil { - return x.KeyWord + return x.DepartmentUID } return "" } -func (x *SettingRequest) GetCopyUsers() []*CopyUser { +func (x *OverTimeApply) GetApplyType() string { if x != nil { - return x.CopyUsers + return x.ApplyType } - return nil + return "" } -func (x *SettingRequest) GetApprovalUsers() []*ApprovalUser { +func (x *OverTimeApply) GetActionTime() string { if x != nil { - return x.ApprovalUsers + return x.ActionTime } - return nil + return "" } -func (x *SettingRequest) GetDomain() string { +func (x *OverTimeApply) GetApprovalID() string { if x != nil { - return x.Domain + return x.ApprovalID } return "" } -func (x *SettingRequest) GetCustomizeInfo() []*KeyInfo { +func (x *OverTimeApply) GetStatus() int32 { if x != nil { - return x.CustomizeInfo + return x.Status } - return nil + return 0 } -func (x *SettingRequest) GetIsCustom() uint64 { +func (x *OverTimeApply) GetBeginTime() string { if x != nil { - return x.IsCustom + return x.BeginTime + } + return "" +} + +func (x *OverTimeApply) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *OverTimeApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *OverTimeApply) GetHours() float32 { + if x != nil { + return x.Hours } return 0 } -type DetailSettingRequest struct { +func (x *OverTimeApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *OverTimeApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type Leave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - KeyWord string `protobuf:"bytes,1,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` -} - -func (x *DetailSettingRequest) Reset() { - *x = DetailSettingRequest{} + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` + EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` + Days float32 `protobuf:"fixed32,14,opt,name=Days,json=days,proto3" json:"Days,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,15,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,16,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *Leave) Reset() { + *x = Leave{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[46] + mi := &file_api_approval_approval_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DetailSettingRequest) String() string { +func (x *Leave) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DetailSettingRequest) ProtoMessage() {} +func (*Leave) ProtoMessage() {} -func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[46] +func (x *Leave) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3688,78 +4734,121 @@ func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. -func (*DetailSettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{46} +// Deprecated: Use Leave.ProtoReflect.Descriptor instead. +func (*Leave) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{54} } -func (x *DetailSettingRequest) GetKeyWord() string { +func (x *Leave) GetUUID() string { if x != nil { - return x.KeyWord + return x.UUID } return "" } -func (x *DetailSettingRequest) GetDomain() string { +func (x *Leave) GetStaffUID() string { if x != nil { - return x.Domain + return x.StaffUID } return "" } -type SettingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *Leave) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` +func (x *Leave) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" } -func (x *SettingResponse) Reset() { - *x = SettingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Leave) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID } + return "" } -func (x *SettingResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Leave) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" } -func (*SettingResponse) ProtoMessage() {} +func (x *Leave) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} -func (x *SettingResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Leave) GetApprovalID() string { + if x != nil { + return x.ApprovalID } - return mi.MessageOf(x) + return "" } -// Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. -func (*SettingResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{47} +func (x *Leave) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 } -func (x *SettingResponse) GetID() uint64 { +func (x *Leave) GetBeginTime() string { if x != nil { - return x.ID + return x.BeginTime + } + return "" +} + +func (x *Leave) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +func (x *Leave) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *Leave) GetHours() float32 { + if x != nil { + return x.Hours } return 0 } -func (x *SettingResponse) GetSuccess() bool { +func (x *Leave) GetDays() float32 { if x != nil { - return x.Success + return x.Days } - return false + return 0 +} + +func (x *Leave) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *Leave) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil } var File_api_approval_approval_proto protoreflect.FileDescriptor @@ -4102,7 +5191,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xfd, 0x07, 0x0a, 0x0d, 0x43, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa9, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, @@ -4166,205 +5255,423 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, - 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, - 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, - 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, - 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, - 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, - 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x32, 0xaf, - 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, - 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, - 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x00, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, + 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, + 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, + 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, + 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, + 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, + 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, + 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, + 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, + 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, + 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, + 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, + 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, + 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, + 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, + 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x0a, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xac, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, + 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xdb, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, + 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x87, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, + 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x75, 0x72, 0x6e, 0x6f, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, + 0xeb, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, + 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, + 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf7, 0x03, + 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, + 0x75, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, + 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x32, 0xaf, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, + 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, + 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, + 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, - 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, - 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, - 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, + 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, - 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, - 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, - 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, + 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, + 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4379,7 +5686,7 @@ func file_api_approval_approval_proto_rawDescGZIP() []byte { return file_api_approval_approval_proto_rawDescData } -var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 48) +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_api_approval_approval_proto_goTypes = []interface{}{ (*CommonResponse)(nil), // 0: approval.CommonResponse (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest @@ -4429,6 +5736,13 @@ var file_api_approval_approval_proto_goTypes = []interface{}{ (*SettingRequest)(nil), // 45: approval.SettingRequest (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest (*SettingResponse)(nil), // 47: approval.SettingResponse + (*ApprovalOA)(nil), // 48: approval.ApprovalOA + (*LeaveApply)(nil), // 49: approval.LeaveApply + (*OutWorkApply)(nil), // 50: approval.OutWorkApply + (*MakeUpApply)(nil), // 51: approval.MakeUpApply + (*TurnoverApply)(nil), // 52: approval.TurnoverApply + (*OverTimeApply)(nil), // 53: approval.OverTimeApply + (*Leave)(nil), // 54: approval.Leave } var file_api_approval_approval_proto_depIdxs = []int32{ 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo @@ -4452,58 +5766,77 @@ var file_api_approval_approval_proto_depIdxs = []int32{ 35, // 18: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice - 43, // 21: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser - 44, // 22: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser - 4, // 23: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo - 34, // 24: approval.Approval.Create:input_type -> approval.CreateRequest - 7, // 25: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest - 5, // 26: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest - 36, // 27: approval.Approval.Detail:input_type -> approval.DetailRequest - 34, // 28: approval.Approval.Update:input_type -> approval.CreateRequest - 37, // 29: approval.Approval.Remove:input_type -> approval.RemoveRequest - 19, // 30: approval.Approval.MyWork:input_type -> approval.ListRequest - 19, // 31: approval.Approval.MySubmit:input_type -> approval.ListRequest - 9, // 32: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest - 22, // 33: approval.Approval.Information:input_type -> approval.InformationRequest - 21, // 34: approval.Approval.Viewed:input_type -> approval.ViewedRequest - 17, // 35: approval.Approval.SetStatus:input_type -> approval.StatusRequest - 46, // 36: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest - 45, // 37: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest - 2, // 38: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest - 1, // 39: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest - 12, // 40: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest - 13, // 41: approval.Approval.DetailType:input_type -> approval.TypeResponse - 12, // 42: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest - 11, // 43: approval.Approval.AllType:input_type -> approval.CommonRequest - 37, // 44: approval.Approval.RemoveType:input_type -> approval.RemoveRequest - 11, // 45: approval.Approval.AllGroup:input_type -> approval.CommonRequest - 38, // 46: approval.Approval.Create:output_type -> approval.ApprovalResponse - 8, // 47: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse - 6, // 48: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse - 34, // 49: approval.Approval.Detail:output_type -> approval.CreateRequest - 38, // 50: approval.Approval.Update:output_type -> approval.ApprovalResponse - 39, // 51: approval.Approval.Remove:output_type -> approval.RemoveResponse - 20, // 52: approval.Approval.MyWork:output_type -> approval.ListResponse - 20, // 53: approval.Approval.MySubmit:output_type -> approval.ListResponse - 10, // 54: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse - 24, // 55: approval.Approval.Information:output_type -> approval.InformationResponse - 38, // 56: approval.Approval.Viewed:output_type -> approval.ApprovalResponse - 18, // 57: approval.Approval.SetStatus:output_type -> approval.StatusResponse - 45, // 58: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 47, // 59: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 3, // 60: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse - 0, // 61: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse - 13, // 62: approval.Approval.CreateType:output_type -> approval.TypeResponse - 12, // 63: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest - 13, // 64: approval.Approval.UpdateType:output_type -> approval.TypeResponse - 14, // 65: approval.Approval.AllType:output_type -> approval.AllTypeResponse - 18, // 66: approval.Approval.RemoveType:output_type -> approval.StatusResponse - 16, // 67: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse - 46, // [46:68] is the sub-list for method output_type - 24, // [24:46] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 48, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA + 43, // 22: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser + 44, // 23: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser + 4, // 24: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo + 49, // 25: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply + 50, // 26: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply + 51, // 27: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply + 52, // 28: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply + 53, // 29: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply + 54, // 30: approval.ApprovalOA.Leave:type_name -> approval.Leave + 43, // 31: approval.LeaveApply.CopyUsers:type_name -> approval.CopyUser + 44, // 32: approval.LeaveApply.ApprovalUsers:type_name -> approval.ApprovalUser + 43, // 33: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser + 44, // 34: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser + 43, // 35: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser + 44, // 36: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser + 43, // 37: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser + 44, // 38: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser + 43, // 39: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser + 44, // 40: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser + 43, // 41: approval.Leave.CopyUsers:type_name -> approval.CopyUser + 44, // 42: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser + 34, // 43: approval.Approval.Create:input_type -> approval.CreateRequest + 7, // 44: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest + 5, // 45: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest + 36, // 46: approval.Approval.Detail:input_type -> approval.DetailRequest + 34, // 47: approval.Approval.Update:input_type -> approval.CreateRequest + 37, // 48: approval.Approval.Remove:input_type -> approval.RemoveRequest + 19, // 49: approval.Approval.MyWork:input_type -> approval.ListRequest + 19, // 50: approval.Approval.MySubmit:input_type -> approval.ListRequest + 9, // 51: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest + 22, // 52: approval.Approval.Information:input_type -> approval.InformationRequest + 21, // 53: approval.Approval.Viewed:input_type -> approval.ViewedRequest + 17, // 54: approval.Approval.SetStatus:input_type -> approval.StatusRequest + 46, // 55: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest + 45, // 56: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest + 2, // 57: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest + 1, // 58: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest + 12, // 59: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest + 13, // 60: approval.Approval.DetailType:input_type -> approval.TypeResponse + 12, // 61: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest + 11, // 62: approval.Approval.AllType:input_type -> approval.CommonRequest + 37, // 63: approval.Approval.RemoveType:input_type -> approval.RemoveRequest + 11, // 64: approval.Approval.AllGroup:input_type -> approval.CommonRequest + 38, // 65: approval.Approval.Create:output_type -> approval.ApprovalResponse + 8, // 66: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse + 6, // 67: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse + 34, // 68: approval.Approval.Detail:output_type -> approval.CreateRequest + 38, // 69: approval.Approval.Update:output_type -> approval.ApprovalResponse + 39, // 70: approval.Approval.Remove:output_type -> approval.RemoveResponse + 20, // 71: approval.Approval.MyWork:output_type -> approval.ListResponse + 20, // 72: approval.Approval.MySubmit:output_type -> approval.ListResponse + 10, // 73: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse + 24, // 74: approval.Approval.Information:output_type -> approval.InformationResponse + 38, // 75: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 18, // 76: approval.Approval.SetStatus:output_type -> approval.StatusResponse + 45, // 77: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 47, // 78: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 3, // 79: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse + 0, // 80: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse + 13, // 81: approval.Approval.CreateType:output_type -> approval.TypeResponse + 12, // 82: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest + 13, // 83: approval.Approval.UpdateType:output_type -> approval.TypeResponse + 14, // 84: approval.Approval.AllType:output_type -> approval.AllTypeResponse + 18, // 85: approval.Approval.RemoveType:output_type -> approval.StatusResponse + 16, // 86: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse + 65, // [65:87] is the sub-list for method output_type + 43, // [43:65] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name } func init() { file_api_approval_approval_proto_init() } @@ -5088,6 +6421,90 @@ func file_api_approval_approval_proto_init() { return nil } } + file_api_approval_approval_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalOA); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutWorkApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MakeUpApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TurnoverApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OverTimeApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Leave); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -5095,7 +6512,7 @@ func file_api_approval_approval_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, - NumMessages: 48, + NumMessages: 55, NumExtensions: 0, NumServices: 1, }, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 5a1b1f0..5563f7c 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -326,6 +326,7 @@ message CreateRequest { string TypeName = 28 [json_name = "typeName"]; string GroupName = 29 [json_name = "groupName"]; BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"]; + ApprovalOA ApprovalOA = 31 [json_name = ""]; } message WorkFlow { @@ -415,4 +416,128 @@ message DetailSettingRequest { message SettingResponse { uint64 ID=1 [json_name = "ID"]; bool Success=2 [json_name = "success"]; +} + +// oa审批 + +message ApprovalOA { + uint64 ID=1 [json_name = "ID"]; + uint64 DeletedAt=2 [json_name = "deletedAt"]; + string CreatedAt=3 [json_name = "createdAt"]; + string UpdatedAt=4 [json_name = "updatedAt"]; + uint64 ApprovalID=5 [json_name = "approvalID"]; + LeaveApply LeaveApply = 6 [json_name = "leaveApply"]; + OutWorkApply OutWork = 7 [json_name = "outWork"]; + MakeUpApply MakeUp = 8 [json_name = "makeUp"]; + TurnoverApply Turnover = 9 [json_name = "turnover"]; + OverTimeApply OverTime = 10 [json_name = "overTime"]; + Leave Leave = 11 [json_name = "leave"]; +} + +message LeaveApply { + string UUID = 1 [json_name = "UUID"]; + string StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string Reason = 10 [json_name = "reason"]; + repeated string VerifyFile = 11 [json_name = "verifyFile"]; + repeated CopyUser CopyUsers = 12 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 13 [json_name = "approvalUsers"]; +} + +message OutWorkApply { + string UUID = 1 [json_name = "UUID"]; + string StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string BeginTime = 10 [json_name = "beginTime"]; + string EndTime = 11 [json_name = "endTime"]; + string Reason = 12 [json_name = "reason"]; + float Hours = 13 [json_name = "hours"]; + string OutWorkAddress = 14 [json_name = "outWorkAddress"]; + string Vehicle = 15 [json_name = "vehicle"]; + repeated CopyUser CopyUsers = 16 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 17 [json_name = "approvalUsers"]; +} + +message MakeUpApply { + string UUID = 1 [json_name = "UUID"]; + string StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string MakeUpDate =10 [json_name = "makeUpDate"]; + string MakeUpTime =11 [json_name = "makeUpTime"]; + string Reason = 12 [json_name = "reason"]; + repeated CopyUser CopyUsers = 13 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 14 [json_name = "approvalUsers"]; +} + +message TurnoverApply { + string UUID = 1 [json_name = "UUID"]; + string StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string HandoverUID = 10 [json_name = "handoverUID"]; + string HandoverName = 11 [json_name = "handoverName"]; + string TurnoverTime = 12 [json_name = "turnoverTime"]; + string Reason = 13 [json_name = "reason"]; + repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; +} + +message OverTimeApply { + string UUID = 1 [json_name = "UUID"]; + string StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string BeginTime = 10 [json_name = "beginTime"]; + string EndTime = 11 [json_name = "endTime"]; + string Reason = 12 [json_name = "reason"]; + float Hours = 13 [json_name = "hours"]; + repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; +} + +message Leave { + string UUID = 1 [json_name = "UUID"]; + string StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string BeginTime = 10 [json_name = "beginTime"]; + string EndTime = 11 [json_name = "endTime"]; + string Reason = 12 [json_name = "reason"]; + float Hours = 13 [json_name = "hours"]; + float Days = 14 [json_name = "days"]; + repeated CopyUser CopyUsers = 15 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"]; } \ No newline at end of file diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go index e89305d..e876b7b 100644 --- a/api/approval/approval.validator.pb.go +++ b/api/approval/approval.validator.pb.go @@ -263,6 +263,11 @@ func (this *CreateRequest) Validate() error { return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err) } } + if this.ApprovalOA != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ApprovalOA); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalOA", err) + } + } return nil } func (this *WorkFlow) Validate() error { @@ -325,3 +330,138 @@ func (this *DetailSettingRequest) Validate() error { func (this *SettingResponse) Validate() error { return nil } +func (this *ApprovalOA) Validate() error { + if this.LeaveApply != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.LeaveApply); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("LeaveApply", err) + } + } + if this.OutWork != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OutWork); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("OutWork", err) + } + } + if this.MakeUp != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MakeUp); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("MakeUp", err) + } + } + if this.Turnover != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Turnover); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Turnover", err) + } + } + if this.OverTime != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OverTime); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("OverTime", err) + } + } + if this.Leave != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Leave); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Leave", err) + } + } + return nil +} +func (this *LeaveApply) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *OutWorkApply) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *MakeUpApply) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *TurnoverApply) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *OverTimeApply) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *Leave) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 9ab950b..6521b80 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -51,6 +51,7 @@ type Approval struct { BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"` + ApprovalOA *ApprovalOA `gorm:"foreignKey:ApprovalID" json:"OA"` } func (j *KeyInfos) Scan(src interface{}) error { @@ -541,7 +542,7 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { modelObj = modelObj.Where(&Approval{Type: in.Type}).Where( DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的 - Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 + Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 modelObj.Count(&count) if len(ids) > 0 { //根据具体id排序 @@ -586,8 +587,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } @@ -643,8 +644,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } @@ -804,6 +805,11 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro case TypeArtExhibitionReward: return &ExhibitionReward{}, nil default: - return &Approval{}, nil + v, _ := TypeMap[typeFiled] + if v == "oa" { + return &ApprovalOA{}, nil + } else { + return &Approval{}, nil + } } } diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go new file mode 100644 index 0000000..57b1ebb --- /dev/null +++ b/pkg/model/approval_oa.go @@ -0,0 +1,274 @@ +package model + +import ( + "errors" + "github.com/fonchain_enterprise/fonchain-approval/api/approval" + m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m" + "github.com/jinzhu/copier" + "gorm.io/plugin/soft_delete" + "strconv" + "time" +) + +type ApprovalOA struct { + ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 + CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 + ApprovalID uint64 `gorm:"column:approval_id" json:"approvalID"` // 申请的id + LeaveApply LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` + OutWork OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` + MakeUp MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` + Turnover TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` + OverTime OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` + Leave Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` +} + +// LeaveApply +// 假期额度申请 +type LeaveApply struct { + UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` + StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 + StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 + DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID + ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` + ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` + ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` + VerifyFile VerifyFiles `json:"verifyFile" gorm:"column:verify_file;type:json;comment:证明文件(图片|pdf)"` + ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` + CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` +} + +// OutWorkApply +// 外勤申请 +type OutWorkApply struct { + UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` + StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 + StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 + DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID + ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` + ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` + BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` + EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` + OutWorkAddress string `json:"outWorkAddress" gorm:"column:out_work_address;type:varchar(255);comment:外勤地址"` + Vehicle string `json:"vehicle" gorm:"column:vehicle;type:varchar(255);comment:交通工具"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` + Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` + ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` + CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` +} + +// MakeUpApply +// 补卡申请 +type MakeUpApply struct { + UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` + StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 + StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 + DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID + ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` + ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` + MakeUpDate string `json:"makeUpDate" gorm:"column:make_up_date;type:varchar(255);comment:补卡日期"` + MakeUpTime string `json:"makeUpTime" gorm:"column:make_up_time;type:varchar(255);comment:补卡时间"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` + Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` + ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` + CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` +} + +// TurnoverApply +// 离职申请 +type TurnoverApply struct { + UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` + StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 + StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 + DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID + ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` + ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + HandoverUID string `json:"handoverUID" gorm:"column:handover_uid;type:varchar(255);comment:交接人"` + HandoverName string `json:"handoverName" gorm:"column:handover_name;type:varchar(255);comment:交接人姓名"` + TurnoverTime string `json:"turnoverTime" gorm:"column:turnover_time;type:varchar(255);comment:离职时间"` + ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` + Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` + ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` + CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` +} + +// OverTimeApply +// 加班申请 +type OverTimeApply struct { + UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` + StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 + StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 + DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID + ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` + ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` + ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` + BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` + EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` + Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` + ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` + CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` +} + +// Leave +// 请假 +type Leave struct { + UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` + StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 + StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 + DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID + ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` + ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` + ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` + BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` + EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` + Days float32 `json:"days" gorm:"column:days;type:decimal(10,2);comment:时长(天)"` + Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` + ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` + CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` +} + +type VerifyFiles []string + +var sonMap = map[string]string{ + "leave": "leave", // 事假 + "sick": "leave", // 病假 + "annualLeave": "leave", // 年假 + "dayOff": "leave", // 调休 + "maritalLeave": "leave", // 婚假 + "matingCheckLeave": "leave", // 孕检假 + "maternityLeave": "leave", // 产假 + "paternityLeave": "leave", // 陪产假 + "parentalLeave": "leave", // 育儿假 + "nursingLeave": "leave", // 独生子女护理假 + "funeralLeave": "leave", // 丧假 + + "makeUp": "makeUp", // 补卡 + "overTime": "overTime", // 加班 + "outWork": "outWork", // 外勤 + "turnover": "turnover", // 离职 + + "annualLeaveApply": "leaveApply", // 年假申请 + "maritalLeaveApply": "leaveApply", // 婚假申请 + "matingCheckLeaveApply": "leaveApply", // 孕检假申请 + "maternityLeaveApply": "leaveApply", // 产假申请 + "paternityLeaveApply": "leaveApply", // 陪产假申请 + "parentalLeaveApply": "leaveApply", // 育儿假申请 + "nursingLeaveApply": "leaveApply", // 独生子女护理假申请 +} + +// TableName get sql table name.获取数据库表名 +func (oa *ApprovalOA) TableName() string { + return "approval_oa" +} + +func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { + + var entity *Approval + if err := DB. + Preload("ApprovalWorkFlows"). + Preload("ApprovalType"). + Preload("ApprovalOA"). + First(&entity, id).Error; err != nil { + return entity, err + } + + return entity, nil +} + +func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { + + copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true}) + oa.ApprovalID = a.ID + + if err := oa.addOtherInfo(a); err != nil { + return err + } + + return DB.Create(&oa).Error +} + +func (oa *ApprovalOA) addOtherInfo(a *Approval) error { + if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { + switch v { + case "leave": + oa.Leave.ApprovalUsers = a.ApprovalUsers + oa.Leave.CopyUsers = a.CopyUsers + if oa.Leave.ApplyType != "" { + oa.Leave.ApplyType = a.ApprovalType.KeyWord + } + oa.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) + oa.Leave.Status = int32(a.Status) + case "makeUp": + oa.MakeUp.ApprovalUsers = a.ApprovalUsers + oa.MakeUp.CopyUsers = a.CopyUsers + oa.MakeUp.ApplyType = a.ApprovalType.KeyWord + oa.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) + oa.MakeUp.Status = int32(a.Status) + case "overTime": + oa.OverTime.ApprovalUsers = a.ApprovalUsers + oa.OverTime.CopyUsers = a.CopyUsers + oa.OverTime.ApplyType = a.ApprovalType.KeyWord + oa.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) + oa.OverTime.Status = int32(a.Status) + case "outWork": + oa.OutWork.ApprovalUsers = a.ApprovalUsers + oa.OutWork.CopyUsers = a.CopyUsers + oa.OutWork.ApplyType = a.ApprovalType.KeyWord + oa.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) + oa.OutWork.Status = int32(a.Status) + case "turnover": + oa.Turnover.ApprovalUsers = a.ApprovalUsers + oa.Turnover.CopyUsers = a.CopyUsers + oa.Turnover.ApplyType = a.ApprovalType.KeyWord + oa.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) + oa.Turnover.Status = int32(a.Status) + case "leaveApply": + oa.LeaveApply.ApprovalUsers = a.ApprovalUsers + oa.LeaveApply.CopyUsers = a.CopyUsers + oa.LeaveApply.ApplyType = a.ApprovalType.KeyWord + oa.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) + oa.LeaveApply.Status = int32(a.Status) + default: + return errors.New("未找到相关审批类型") + } + } + return nil +} + +func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error { + + var entity *ApprovalOA + + if err := DB.Where(&ApprovalOA{ApprovalID: a.ID}).First(&entity).Error; err != nil { + return errors.New(m2.ErrorNotFound) + } + + oa.ID = entity.ID + + return DB.Model(&oa).Updates(oa).Error +} + +func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) { + +} + +func (oa *ApprovalOA) DeleteApproval(p *Approval) error { + return DB.Where(&ApprovalOA{ApprovalID: p.ID}).Delete(&ApprovalOA{}).Error +} diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index a849a97..296d5b9 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -40,21 +40,31 @@ var TypeMap = map[string]string{ TypeBundlePayPrice: "", TypeArtExhibitionReward: "", - "leave": "", // 事假 - "sick": "", // 病假 - "annualLeave": "", // 年假 - "dayOff": "", // 调休 - "maritalLeave": "", // 婚假 - "matingCheckLeave": "", // 孕检假 - "maternityLeave": "", // 产假 - "paternityLeave": "", // 陪产假 - "parentalLeave": "", // 育儿假 - "nursingLeave": "", // 独生子女护理假 - "funeralLeave": "", // 丧假 - "makeUp": "", // 补卡 - "overtime": "", // 加班 - "outwork": "", // 外勤 - "turnover": "", // 离职 + "leave": "oa", // 事假 + "sick": "oa", // 病假 + "annualLeave": "oa", // 年假 + "dayOff": "oa", // 调休 + "maritalLeave": "oa", // 婚假 + "matingCheckLeave": "oa", // 孕检假 + "maternityLeave": "oa", // 产假 + "paternityLeave": "oa", // 陪产假 + "parentalLeave": "oa", // 育儿假 + "nursingLeave": "oa", // 独生子女护理假 + "funeralLeave": "oa", // 丧假 + + "makeUp": "oa", // 补卡 + "overTime": "oa", // 加班 + "outWork": "oa", // 外勤 + "turnover": "oa", // 离职 + + "annualLeaveApply": "oa", // 年假申请 + "maritalLeaveApply": "oa", // 婚假申请 + "matingCheckLeaveApply": "oa", // 孕检假申请 + "maternityLeaveApply": "oa", // 产假申请 + "paternityLeaveApply": "oa", // 陪产假申请 + "parentalLeaveApply": "oa", // 育儿假申请 + "nursingLeaveApply": "oa", // 独生子女护理假申请 + } var keyWordMap = map[string]string{ @@ -65,21 +75,31 @@ var keyWordMap = map[string]string{ "画展审批": "show", "画展包付款单申请": TypeBundlePayPrice, "画作润格审批": TypeArtExhibitionReward, - "事假": "leave", // 事假 - "病假": "sick", // 病假 - "年假": "annualLeave", // 年假 - "调休": "dayOff", // 调休 - "婚假": "maritalLeave", // 婚假 - "孕检假": "matingCheckLeave", // 孕检假 - "产假": "maternityLeave", // 产假 - "陪产假": "paternityLeave", // 陪产假 - "育儿假": "parentalLeave", // 育儿假 - "独生子女护理假": "nursingLeave", // 独生子女护理假 - "丧假": "funeralLeave", // 丧假 - "补卡": "makeUp", // 补卡 - "加班": "overtime", // 加班 - "外勤": "outwork", // 外勤 - "离职": "turnover", // 离职 + + "事假": "leave", // 事假 + "病假": "sick", // 病假 + "年假": "annualLeave", // 年假 + "调休": "dayOff", // 调休 + "婚假": "maritalLeave", // 婚假 + "孕检假": "matingCheckLeave", // 孕检假 + "产假": "maternityLeave", // 产假 + "陪产假": "paternityLeave", // 陪产假 + "育儿假": "parentalLeave", // 育儿假 + "独生子女护理假": "nursingLeave", // 独生子女护理假 + "丧假": "funeralLeave", // 丧假 + + "补卡": "makeUp", // 补卡 + "加班": "overtime", // 加班 + "外勤": "outwork", // 外勤 + "离职": "turnover", // 离职 + + "年假申请": "annualLeaveApply", // 年假申请 + "婚假申请": "maritalLeaveApply", // 婚假申请 + "孕检假申请": "matingCheckLeaveApply", // 孕检假申请 + "产假申请": "maternityLeaveApply", // 产假申请 + "陪产假申请": "paternityLeaveApply", // 陪产假申请 + "育儿假申请": "parentalLeaveApply", // 育儿假申请 + "独生子女护理假申请": "nursingLeaveApply", // 独生子女护理假申请 } func DataExist(domain, keyWork, title string) bool { From 5942b76a3f8f9849e24857a20a831f400e7c7366 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 25 Apr 2023 15:17:46 +0800 Subject: [PATCH 04/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/financial_form.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/model/financial_form.go b/pkg/model/financial_form.go index 62bc7f2..9480c67 100644 --- a/pkg/model/financial_form.go +++ b/pkg/model/financial_form.go @@ -9,6 +9,7 @@ import ( "time" ) +// financial_form type FinancialForm struct { ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 From 05cc84845d8bf1bc9d136939d5870d381ebaab4b Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 4 May 2023 10:15:50 +0800 Subject: [PATCH 05/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 32 +++++++++++++++++++++++++++----- pkg/model/approval_type.go | 24 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 6521b80..b1851e8 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -51,7 +51,11 @@ type Approval struct { BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"` +<<<<<<< Updated upstream ApprovalOA *ApprovalOA `gorm:"foreignKey:ApprovalID" json:"OA"` +======= + ApprovalOA *ApprovalOA `gorm:"foreignKey:ApprovalID" json:"oa"` +>>>>>>> Stashed changes } func (j *KeyInfos) Scan(src interface{}) error { @@ -73,6 +77,24 @@ const ( TypeBundle = "bundle" TypeBundlePayPrice = "bundlePayPrice" TypeArtExhibitionReward = "artExhibitionReward" + TypeOa = "oa" // oa 父类 + /* 子类 */ + TypeOaLeave = "oa_leave" // 事假 + TypeOaSick = "oa_sick" // 病假 + TypeOaAnnualLeave = "oa_annualLeave" // 年假 + TypeOaDayOff = "oa_dayOff" // 调休 + TypeOaMaritalLeave = "oa_maritalLeave" // 婚假 + TypeOaMatingCheckLeave = "oa_matingCheckLeave" // 孕检假 + TypeOaMaternityLeave = "oa_maternityLeave" // 产假 + TypeOaPaternityLeave = "oa_paternityLeave" // 陪产假 + TypeOaParentalLeave = "oa_parentalLeave" // 育儿假 + TypeOaNursingLeave = "oa_nursingLeave" // 独生子女护理假 + TypeOaFuneralLeave = "oa_funeralLeave" // 丧假 + TypeOaMakeUp = "oa_makeUp" // 补卡 + TypeOaOvertime = "oa_overtime" // 加班 + TypeOaOutwork = "oa_outwork" // 外勤 + TypeOaTurnover = "oa_turnover" // 离职 + /* */ ) const ( StatusDoing = 1 @@ -542,7 +564,7 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { modelObj = modelObj.Where(&Approval{Type: in.Type}).Where( DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的 - Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 + Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 modelObj.Count(&count) if len(ids) > 0 { //根据具体id排序 @@ -587,8 +609,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } @@ -644,8 +666,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index 296d5b9..edd192b 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -39,6 +39,7 @@ var TypeMap = map[string]string{ "show": "", TypeBundlePayPrice: "", TypeArtExhibitionReward: "", +<<<<<<< Updated upstream "leave": "oa", // 事假 "sick": "oa", // 病假 @@ -65,6 +66,25 @@ var TypeMap = map[string]string{ "parentalLeaveApply": "oa", // 育儿假申请 "nursingLeaveApply": "oa", // 独生子女护理假申请 + + /*=================================*/ + // TODO 育儿假 等 额度 审批 + TypeOaLeave: "oa", // 事假 + TypeOaSick: "oa", // 病假 + TypeOaAnnualLeave: "oa", // 年假 + TypeOaDayOff: "oa", // 调休 + TypeOaMaritalLeave: "oa", // 婚假 + TypeOaMatingCheckLeave: "oa", // 孕检假 + TypeOaMaternityLeave: "oa", // 产假 + TypeOaPaternityLeave: "oa", // 陪产假 + TypeOaParentalLeave: "oa", // 育儿假 + TypeOaNursingLeave: "oa", // 独生子女护理假 + TypeOaFuneralLeave: "oa", // 丧假 + TypeOaMakeUp: "oa", // 补卡 + TypeOaOvertime: "oa", // 加班 + TypeOaOutwork: "oa", // 外勤 + TypeOaTurnover: "oa", // 离职 + } var keyWordMap = map[string]string{ @@ -158,6 +178,10 @@ func IsSystemKeyWork(title string) bool { return isOk } +// TODO +// 增加 逻辑 取出 value值 判断是否为 "" +// 为 "" 则为 系统 +// 不为 "" 则为 自定义中特殊类型 func IsSystemType(title string) bool { _, isOk := TypeMap[title] return isOk From 844730ad0bec0dc4dfa405cf1262f4eba8bb6b99 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 4 May 2023 10:17:33 +0800 Subject: [PATCH 06/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 4 ---- pkg/model/approval_type.go | 20 -------------------- 2 files changed, 24 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index b1851e8..17429eb 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -51,11 +51,7 @@ type Approval struct { BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"` -<<<<<<< Updated upstream - ApprovalOA *ApprovalOA `gorm:"foreignKey:ApprovalID" json:"OA"` -======= ApprovalOA *ApprovalOA `gorm:"foreignKey:ApprovalID" json:"oa"` ->>>>>>> Stashed changes } func (j *KeyInfos) Scan(src interface{}) error { diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index edd192b..fbc91ad 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -39,7 +39,6 @@ var TypeMap = map[string]string{ "show": "", TypeBundlePayPrice: "", TypeArtExhibitionReward: "", -<<<<<<< Updated upstream "leave": "oa", // 事假 "sick": "oa", // 病假 @@ -66,25 +65,6 @@ var TypeMap = map[string]string{ "parentalLeaveApply": "oa", // 育儿假申请 "nursingLeaveApply": "oa", // 独生子女护理假申请 - - /*=================================*/ - // TODO 育儿假 等 额度 审批 - TypeOaLeave: "oa", // 事假 - TypeOaSick: "oa", // 病假 - TypeOaAnnualLeave: "oa", // 年假 - TypeOaDayOff: "oa", // 调休 - TypeOaMaritalLeave: "oa", // 婚假 - TypeOaMatingCheckLeave: "oa", // 孕检假 - TypeOaMaternityLeave: "oa", // 产假 - TypeOaPaternityLeave: "oa", // 陪产假 - TypeOaParentalLeave: "oa", // 育儿假 - TypeOaNursingLeave: "oa", // 独生子女护理假 - TypeOaFuneralLeave: "oa", // 丧假 - TypeOaMakeUp: "oa", // 补卡 - TypeOaOvertime: "oa", // 加班 - TypeOaOutwork: "oa", // 外勤 - TypeOaTurnover: "oa", // 离职 - } var keyWordMap = map[string]string{ From 874c6d377ad554b24bcabdd0fab273e2b7e03441 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 8 May 2023 10:52:00 +0800 Subject: [PATCH 07/64] =?UTF-8?q?oa=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 1243 +++++++++++++------------ api/approval/approval.proto | 65 +- api/approval/approval.validator.pb.go | 50 +- pkg/model/approval.go | 37 +- pkg/model/approval_oa.go | 138 ++- pkg/model/migration.go | 4 +- 6 files changed, 861 insertions(+), 676 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 593b584..29dd7ed 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -3786,6 +3786,69 @@ func (x *SettingResponse) GetSuccess() bool { return false } +type ApplyTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Date string `protobuf:"bytes,1,opt,name=Date,json=date,proto3" json:"Date,omitempty"` + Hour string `protobuf:"bytes,2,opt,name=Hour,json=hour,proto3" json:"Hour,omitempty"` + M string `protobuf:"bytes,3,opt,name=M,json=m,proto3" json:"M,omitempty"` +} + +func (x *ApplyTime) Reset() { + *x = ApplyTime{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplyTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyTime) ProtoMessage() {} + +func (x *ApplyTime) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplyTime.ProtoReflect.Descriptor instead. +func (*ApplyTime) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{48} +} + +func (x *ApplyTime) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *ApplyTime) GetHour() string { + if x != nil { + return x.Hour + } + return "" +} + +func (x *ApplyTime) GetM() string { + if x != nil { + return x.M + } + return "" +} + type ApprovalOA struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3807,7 +3870,7 @@ type ApprovalOA struct { func (x *ApprovalOA) Reset() { *x = ApprovalOA{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[48] + mi := &file_api_approval_approval_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3820,7 +3883,7 @@ func (x *ApprovalOA) String() string { func (*ApprovalOA) ProtoMessage() {} func (x *ApprovalOA) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[48] + mi := &file_api_approval_approval_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3833,7 +3896,7 @@ func (x *ApprovalOA) ProtoReflect() protoreflect.Message { // Deprecated: Use ApprovalOA.ProtoReflect.Descriptor instead. func (*ApprovalOA) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{48} + return file_api_approval_approval_proto_rawDescGZIP(), []int{49} } func (x *ApprovalOA) GetID() uint64 { @@ -3936,7 +3999,7 @@ type LeaveApply struct { func (x *LeaveApply) Reset() { *x = LeaveApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[49] + mi := &file_api_approval_approval_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3949,7 +4012,7 @@ func (x *LeaveApply) String() string { func (*LeaveApply) ProtoMessage() {} func (x *LeaveApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[49] + mi := &file_api_approval_approval_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3962,7 +4025,7 @@ func (x *LeaveApply) ProtoReflect() protoreflect.Message { // Deprecated: Use LeaveApply.ProtoReflect.Descriptor instead. func (*LeaveApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{49} + return file_api_approval_approval_proto_rawDescGZIP(), []int{50} } func (x *LeaveApply) GetUUID() string { @@ -4070,8 +4133,7 @@ type OutWorkApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` - EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` OutWorkAddress string `protobuf:"bytes,14,opt,name=OutWorkAddress,json=outWorkAddress,proto3" json:"OutWorkAddress,omitempty"` @@ -4083,7 +4145,7 @@ type OutWorkApply struct { func (x *OutWorkApply) Reset() { *x = OutWorkApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[50] + mi := &file_api_approval_approval_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4096,7 +4158,7 @@ func (x *OutWorkApply) String() string { func (*OutWorkApply) ProtoMessage() {} func (x *OutWorkApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[50] + mi := &file_api_approval_approval_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4109,7 +4171,7 @@ func (x *OutWorkApply) ProtoReflect() protoreflect.Message { // Deprecated: Use OutWorkApply.ProtoReflect.Descriptor instead. func (*OutWorkApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{50} + return file_api_approval_approval_proto_rawDescGZIP(), []int{51} } func (x *OutWorkApply) GetUUID() string { @@ -4175,18 +4237,11 @@ func (x *OutWorkApply) GetStatus() int32 { return 0 } -func (x *OutWorkApply) GetBeginTime() string { +func (x *OutWorkApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.BeginTime + return x.ApplyTimes } - return "" -} - -func (x *OutWorkApply) GetEndTime() string { - if x != nil { - return x.EndTime - } - return "" + return nil } func (x *OutWorkApply) GetReason() string { @@ -4245,8 +4300,7 @@ type MakeUpApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - MakeUpDate string `protobuf:"bytes,10,opt,name=MakeUpDate,json=makeUpDate,proto3" json:"MakeUpDate,omitempty"` - MakeUpTime string `protobuf:"bytes,11,opt,name=MakeUpTime,json=makeUpTime,proto3" json:"MakeUpTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,13,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,14,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` @@ -4255,7 +4309,7 @@ type MakeUpApply struct { func (x *MakeUpApply) Reset() { *x = MakeUpApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[51] + mi := &file_api_approval_approval_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4268,7 +4322,7 @@ func (x *MakeUpApply) String() string { func (*MakeUpApply) ProtoMessage() {} func (x *MakeUpApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[51] + mi := &file_api_approval_approval_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4281,7 +4335,7 @@ func (x *MakeUpApply) ProtoReflect() protoreflect.Message { // Deprecated: Use MakeUpApply.ProtoReflect.Descriptor instead. func (*MakeUpApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{51} + return file_api_approval_approval_proto_rawDescGZIP(), []int{52} } func (x *MakeUpApply) GetUUID() string { @@ -4347,18 +4401,11 @@ func (x *MakeUpApply) GetStatus() int32 { return 0 } -func (x *MakeUpApply) GetMakeUpDate() string { - if x != nil { - return x.MakeUpDate - } - return "" -} - -func (x *MakeUpApply) GetMakeUpTime() string { +func (x *MakeUpApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.MakeUpTime + return x.ApplyTimes } - return "" + return nil } func (x *MakeUpApply) GetReason() string { @@ -4398,7 +4445,7 @@ type TurnoverApply struct { Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` HandoverUID string `protobuf:"bytes,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` - TurnoverTime string `protobuf:"bytes,12,opt,name=TurnoverTime,json=turnoverTime,proto3" json:"TurnoverTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` @@ -4407,7 +4454,7 @@ type TurnoverApply struct { func (x *TurnoverApply) Reset() { *x = TurnoverApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[52] + mi := &file_api_approval_approval_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4420,7 +4467,7 @@ func (x *TurnoverApply) String() string { func (*TurnoverApply) ProtoMessage() {} func (x *TurnoverApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[52] + mi := &file_api_approval_approval_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4433,7 +4480,7 @@ func (x *TurnoverApply) ProtoReflect() protoreflect.Message { // Deprecated: Use TurnoverApply.ProtoReflect.Descriptor instead. func (*TurnoverApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{52} + return file_api_approval_approval_proto_rawDescGZIP(), []int{53} } func (x *TurnoverApply) GetUUID() string { @@ -4513,11 +4560,11 @@ func (x *TurnoverApply) GetHandoverName() string { return "" } -func (x *TurnoverApply) GetTurnoverTime() string { +func (x *TurnoverApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.TurnoverTime + return x.ApplyTimes } - return "" + return nil } func (x *TurnoverApply) GetReason() string { @@ -4555,8 +4602,7 @@ type OverTimeApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` - EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` @@ -4566,7 +4612,7 @@ type OverTimeApply struct { func (x *OverTimeApply) Reset() { *x = OverTimeApply{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[53] + mi := &file_api_approval_approval_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4579,7 +4625,7 @@ func (x *OverTimeApply) String() string { func (*OverTimeApply) ProtoMessage() {} func (x *OverTimeApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[53] + mi := &file_api_approval_approval_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4592,7 +4638,7 @@ func (x *OverTimeApply) ProtoReflect() protoreflect.Message { // Deprecated: Use OverTimeApply.ProtoReflect.Descriptor instead. func (*OverTimeApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{53} + return file_api_approval_approval_proto_rawDescGZIP(), []int{54} } func (x *OverTimeApply) GetUUID() string { @@ -4658,18 +4704,11 @@ func (x *OverTimeApply) GetStatus() int32 { return 0 } -func (x *OverTimeApply) GetBeginTime() string { +func (x *OverTimeApply) GetApplyTimes() []*ApplyTime { if x != nil { - return x.BeginTime + return x.ApplyTimes } - return "" -} - -func (x *OverTimeApply) GetEndTime() string { - if x != nil { - return x.EndTime - } - return "" + return nil } func (x *OverTimeApply) GetReason() string { @@ -4714,8 +4753,7 @@ type Leave struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - BeginTime string `protobuf:"bytes,10,opt,name=BeginTime,json=beginTime,proto3" json:"BeginTime,omitempty"` - EndTime string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` Days float32 `protobuf:"fixed32,14,opt,name=Days,json=days,proto3" json:"Days,omitempty"` @@ -4726,7 +4764,7 @@ type Leave struct { func (x *Leave) Reset() { *x = Leave{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[54] + mi := &file_api_approval_approval_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4739,7 +4777,7 @@ func (x *Leave) String() string { func (*Leave) ProtoMessage() {} func (x *Leave) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[54] + mi := &file_api_approval_approval_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4752,7 +4790,7 @@ func (x *Leave) ProtoReflect() protoreflect.Message { // Deprecated: Use Leave.ProtoReflect.Descriptor instead. func (*Leave) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{54} + return file_api_approval_approval_proto_rawDescGZIP(), []int{55} } func (x *Leave) GetUUID() string { @@ -4818,18 +4856,11 @@ func (x *Leave) GetStatus() int32 { return 0 } -func (x *Leave) GetBeginTime() string { +func (x *Leave) GetApplyTimes() []*ApplyTime { if x != nil { - return x.BeginTime + return x.ApplyTimes } - return "" -} - -func (x *Leave) GetEndTime() string { - if x != nil { - return x.EndTime - } - return "" + return nil } func (x *Leave) GetReason() string { @@ -4867,36 +4898,32 @@ func (x *Leave) GetApprovalUsers() []*ApprovalUser { return nil } -type CostInfo struct { +// 财务报表审批 +type GetNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` - UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` - CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` - CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` - TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` - UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` + SettingType string `protobuf:"bytes,1,opt,name=SettingType,json=settingType,proto3" json:"SettingType,omitempty"` } -func (x *CostInfo) Reset() { - *x = CostInfo{} +func (x *GetNameRequest) Reset() { + *x = GetNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[55] + mi := &file_api_approval_approval_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CostInfo) String() string { +func (x *GetNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CostInfo) ProtoMessage() {} +func (*GetNameRequest) ProtoMessage() {} -func (x *CostInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[55] +func (x *GetNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4907,87 +4934,102 @@ func (x *CostInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CostInfo.ProtoReflect.Descriptor instead. -func (*CostInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{55} +// Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. +func (*GetNameRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{56} } -func (x *CostInfo) GetDescription() string { +func (x *GetNameRequest) GetSettingType() string { if x != nil { - return x.Description + return x.SettingType } return "" } -func (x *CostInfo) GetUnitPrice() string { - if x != nil { - return x.UnitPrice - } - return "" +type GetNameResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name []string `protobuf:"bytes,1,rep,name=Name,json=name,proto3" json:"Name,omitempty"` } -func (x *CostInfo) GetCostUnit() string { - if x != nil { - return x.CostUnit +func (x *GetNameResponse) Reset() { + *x = GetNameResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *CostInfo) GetCostNum() int64 { - if x != nil { - return x.CostNum - } - return 0 +func (x *GetNameResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CostInfo) GetTotalPrice() string { - if x != nil { - return x.TotalPrice +func (*GetNameResponse) ProtoMessage() {} + +func (x *GetNameResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *CostInfo) GetUsedDepartment() string { +// Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. +func (*GetNameResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{57} +} + +func (x *GetNameResponse) GetName() []string { if x != nil { - return x.UsedDepartment + return x.Name } - return "" + return nil } -type InvoiceInfo struct { +type FinancialForm struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` - InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` - InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` - Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` - UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` - Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` - PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` - PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` - InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` - Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + PaymentCompany string `protobuf:"bytes,6,opt,name=PaymentCompany,json=paymentCompany,proto3" json:"PaymentCompany,omitempty"` + TransactionDepartment string `protobuf:"bytes,7,opt,name=TransactionDepartment,json=transactionDepartment,proto3" json:"TransactionDepartment,omitempty"` + Payee string `protobuf:"bytes,8,opt,name=Payee,json=payee,proto3" json:"Payee,omitempty"` + BeneficiaryBank string `protobuf:"bytes,9,opt,name=BeneficiaryBank,json=beneficiaryBank,proto3" json:"BeneficiaryBank,omitempty"` + BankNo string `protobuf:"bytes,10,opt,name=BankNo,json=bankNo,proto3" json:"BankNo,omitempty"` + CostInfo []*CostInfo `protobuf:"bytes,11,rep,name=CostInfo,json=costInfo,proto3" json:"CostInfo,omitempty"` + PaymentMethod string `protobuf:"bytes,12,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` + InvoiceInfo []*InvoiceInfo `protobuf:"bytes,13,rep,name=InvoiceInfo,json=invoiceInfo,proto3" json:"InvoiceInfo,omitempty"` } -func (x *InvoiceInfo) Reset() { - *x = InvoiceInfo{} +func (x *FinancialForm) Reset() { + *x = FinancialForm{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[56] + mi := &file_api_approval_approval_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InvoiceInfo) String() string { +func (x *FinancialForm) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InvoiceInfo) ProtoMessage() {} +func (*FinancialForm) ProtoMessage() {} -func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[56] +func (x *FinancialForm) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4998,107 +5040,132 @@ func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InvoiceInfo.ProtoReflect.Descriptor instead. -func (*InvoiceInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{56} +// Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. +func (*FinancialForm) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{58} } -func (x *InvoiceInfo) GetInvoiceDate() string { +func (x *FinancialForm) GetID() uint64 { if x != nil { - return x.InvoiceDate + return x.ID } - return "" + return 0 } -func (x *InvoiceInfo) GetInvoiceNo() string { +func (x *FinancialForm) GetDeletedAt() uint64 { if x != nil { - return x.InvoiceNo + return x.DeletedAt } - return "" + return 0 } -func (x *InvoiceInfo) GetInvoiceProvider() string { +func (x *FinancialForm) GetCreatedAt() string { if x != nil { - return x.InvoiceProvider + return x.CreatedAt } return "" } -func (x *InvoiceInfo) GetAmount() string { +func (x *FinancialForm) GetUpdatedAt() string { if x != nil { - return x.Amount + return x.UpdatedAt } return "" } -func (x *InvoiceInfo) GetUseTo() string { +func (x *FinancialForm) GetApprovalID() uint64 { if x != nil { - return x.UseTo + return x.ApprovalID + } + return 0 +} + +func (x *FinancialForm) GetPaymentCompany() string { + if x != nil { + return x.PaymentCompany } return "" } -func (x *InvoiceInfo) GetApplicant() string { +func (x *FinancialForm) GetTransactionDepartment() string { if x != nil { - return x.Applicant + return x.TransactionDepartment } return "" } -func (x *InvoiceInfo) GetPaymentMethod() string { +func (x *FinancialForm) GetPayee() string { if x != nil { - return x.PaymentMethod + return x.Payee } return "" } -func (x *InvoiceInfo) GetPaymentObj() string { +func (x *FinancialForm) GetBeneficiaryBank() string { if x != nil { - return x.PaymentObj + return x.BeneficiaryBank } return "" } -func (x *InvoiceInfo) GetInvoiceType() string { +func (x *FinancialForm) GetBankNo() string { if x != nil { - return x.InvoiceType + return x.BankNo } return "" } -func (x *InvoiceInfo) GetNotes() string { +func (x *FinancialForm) GetCostInfo() []*CostInfo { if x != nil { - return x.Notes + return x.CostInfo + } + return nil +} + +func (x *FinancialForm) GetPaymentMethod() string { + if x != nil { + return x.PaymentMethod } return "" } -// 财务报表审批 -type GetNameRequest struct { +func (x *FinancialForm) GetInvoiceInfo() []*InvoiceInfo { + if x != nil { + return x.InvoiceInfo + } + return nil +} + +type CostInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SettingType string `protobuf:"bytes,1,opt,name=SettingType,json=settingType,proto3" json:"SettingType,omitempty"` + Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` + UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` + CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` + CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` + TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` + UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` } -func (x *GetNameRequest) Reset() { - *x = GetNameRequest{} +func (x *CostInfo) Reset() { + *x = CostInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[57] + mi := &file_api_approval_approval_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetNameRequest) String() string { +func (x *CostInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetNameRequest) ProtoMessage() {} +func (*CostInfo) ProtoMessage() {} -func (x *GetNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[57] +func (x *CostInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5109,102 +5176,87 @@ func (x *GetNameRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. -func (*GetNameRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{57} +// Deprecated: Use CostInfo.ProtoReflect.Descriptor instead. +func (*CostInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{59} } -func (x *GetNameRequest) GetSettingType() string { +func (x *CostInfo) GetDescription() string { if x != nil { - return x.SettingType + return x.Description } return "" } -type GetNameResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name []string `protobuf:"bytes,1,rep,name=Name,json=name,proto3" json:"Name,omitempty"` -} - -func (x *GetNameResponse) Reset() { - *x = GetNameResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CostInfo) GetUnitPrice() string { + if x != nil { + return x.UnitPrice } + return "" } -func (x *GetNameResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *CostInfo) GetCostUnit() string { + if x != nil { + return x.CostUnit + } + return "" } -func (*GetNameResponse) ProtoMessage() {} - -func (x *GetNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CostInfo) GetCostNum() int64 { + if x != nil { + return x.CostNum } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. -func (*GetNameResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{58} +func (x *CostInfo) GetTotalPrice() string { + if x != nil { + return x.TotalPrice + } + return "" } -func (x *GetNameResponse) GetName() []string { +func (x *CostInfo) GetUsedDepartment() string { if x != nil { - return x.Name + return x.UsedDepartment } - return nil + return "" } -type FinancialForm struct { +type InvoiceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - PaymentCompany string `protobuf:"bytes,6,opt,name=PaymentCompany,json=paymentCompany,proto3" json:"PaymentCompany,omitempty"` - TransactionDepartment string `protobuf:"bytes,7,opt,name=TransactionDepartment,json=transactionDepartment,proto3" json:"TransactionDepartment,omitempty"` - Payee string `protobuf:"bytes,8,opt,name=Payee,json=payee,proto3" json:"Payee,omitempty"` - BeneficiaryBank string `protobuf:"bytes,9,opt,name=BeneficiaryBank,json=beneficiaryBank,proto3" json:"BeneficiaryBank,omitempty"` - BankNo string `protobuf:"bytes,10,opt,name=BankNo,json=bankNo,proto3" json:"BankNo,omitempty"` - CostInfo []*CostInfo `protobuf:"bytes,11,rep,name=CostInfo,json=costInfo,proto3" json:"CostInfo,omitempty"` - PaymentMethod string `protobuf:"bytes,12,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` - InvoiceInfo []*InvoiceInfo `protobuf:"bytes,13,rep,name=InvoiceInfo,json=invoiceInfo,proto3" json:"InvoiceInfo,omitempty"` + InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` + InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` + InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` + Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` + UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` + Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` + PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` + PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` + InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` + Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` } -func (x *FinancialForm) Reset() { - *x = FinancialForm{} +func (x *InvoiceInfo) Reset() { + *x = InvoiceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[59] + mi := &file_api_approval_approval_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FinancialForm) String() string { +func (x *InvoiceInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FinancialForm) ProtoMessage() {} +func (*InvoiceInfo) ProtoMessage() {} -func (x *FinancialForm) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[59] +func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5215,100 +5267,79 @@ func (x *FinancialForm) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. -func (*FinancialForm) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{59} -} - -func (x *FinancialForm) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *FinancialForm) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 +// Deprecated: Use InvoiceInfo.ProtoReflect.Descriptor instead. +func (*InvoiceInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{60} } -func (x *FinancialForm) GetCreatedAt() string { +func (x *InvoiceInfo) GetInvoiceDate() string { if x != nil { - return x.CreatedAt + return x.InvoiceDate } return "" } -func (x *FinancialForm) GetUpdatedAt() string { +func (x *InvoiceInfo) GetInvoiceNo() string { if x != nil { - return x.UpdatedAt + return x.InvoiceNo } return "" } -func (x *FinancialForm) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *FinancialForm) GetPaymentCompany() string { +func (x *InvoiceInfo) GetInvoiceProvider() string { if x != nil { - return x.PaymentCompany + return x.InvoiceProvider } return "" } -func (x *FinancialForm) GetTransactionDepartment() string { +func (x *InvoiceInfo) GetAmount() string { if x != nil { - return x.TransactionDepartment + return x.Amount } return "" } -func (x *FinancialForm) GetPayee() string { +func (x *InvoiceInfo) GetUseTo() string { if x != nil { - return x.Payee + return x.UseTo } return "" } -func (x *FinancialForm) GetBeneficiaryBank() string { +func (x *InvoiceInfo) GetApplicant() string { if x != nil { - return x.BeneficiaryBank + return x.Applicant } return "" } -func (x *FinancialForm) GetBankNo() string { +func (x *InvoiceInfo) GetPaymentMethod() string { if x != nil { - return x.BankNo + return x.PaymentMethod } return "" } -func (x *FinancialForm) GetCostInfo() []*CostInfo { +func (x *InvoiceInfo) GetPaymentObj() string { if x != nil { - return x.CostInfo + return x.PaymentObj } - return nil + return "" } -func (x *FinancialForm) GetPaymentMethod() string { +func (x *InvoiceInfo) GetInvoiceType() string { if x != nil { - return x.PaymentMethod + return x.InvoiceType } return "" } -func (x *FinancialForm) GetInvoiceInfo() []*InvoiceInfo { +func (x *InvoiceInfo) GetNotes() string { if x != nil { - return x.InvoiceInfo + return x.Notes } - return nil + return "" } var File_api_approval_approval_proto protoreflect.FileDescriptor @@ -5821,84 +5852,88 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, 0x65, - 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, 0x61, - 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, 0x72, - 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, - 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, - 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x0a, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, - 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xac, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, + 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, + 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, + 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, + 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, + 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, + 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, + 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, @@ -5912,7 +5947,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xdb, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, @@ -5929,84 +5964,54 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, + 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, + 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x22, 0x87, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, - 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, - 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, - 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, - 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xeb, - 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, - 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, - 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf7, 0x03, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, @@ -6022,11 +6027,41 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, + 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, + 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, + 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, @@ -6037,76 +6072,76 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, - 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, - 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, - 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, - 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, - 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, - 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, - 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, - 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, + 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, + 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, + 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, + 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, + 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, + 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, + 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, + 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, + 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, + 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, + 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, @@ -6225,7 +6260,7 @@ func file_api_approval_approval_proto_rawDescGZIP() []byte { return file_api_approval_approval_proto_rawDescData } -var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 60) +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 61) var file_api_approval_approval_proto_goTypes = []interface{}{ (*CommonResponse)(nil), // 0: approval.CommonResponse (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest @@ -6275,18 +6310,19 @@ var file_api_approval_approval_proto_goTypes = []interface{}{ (*SettingRequest)(nil), // 45: approval.SettingRequest (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest (*SettingResponse)(nil), // 47: approval.SettingResponse - (*ApprovalOA)(nil), // 48: approval.ApprovalOA - (*LeaveApply)(nil), // 49: approval.LeaveApply - (*OutWorkApply)(nil), // 50: approval.OutWorkApply - (*MakeUpApply)(nil), // 51: approval.MakeUpApply - (*TurnoverApply)(nil), // 52: approval.TurnoverApply - (*OverTimeApply)(nil), // 53: approval.OverTimeApply - (*Leave)(nil), // 54: approval.Leave - (*CostInfo)(nil), // 55: approval.CostInfo - (*InvoiceInfo)(nil), // 56: approval.InvoiceInfo - (*GetNameRequest)(nil), // 57: approval.GetNameRequest - (*GetNameResponse)(nil), // 58: approval.GetNameResponse - (*FinancialForm)(nil), // 59: approval.FinancialForm + (*ApplyTime)(nil), // 48: approval.ApplyTime + (*ApprovalOA)(nil), // 49: approval.ApprovalOA + (*LeaveApply)(nil), // 50: approval.LeaveApply + (*OutWorkApply)(nil), // 51: approval.OutWorkApply + (*MakeUpApply)(nil), // 52: approval.MakeUpApply + (*TurnoverApply)(nil), // 53: approval.TurnoverApply + (*OverTimeApply)(nil), // 54: approval.OverTimeApply + (*Leave)(nil), // 55: approval.Leave + (*GetNameRequest)(nil), // 56: approval.GetNameRequest + (*GetNameResponse)(nil), // 57: approval.GetNameResponse + (*FinancialForm)(nil), // 58: approval.FinancialForm + (*CostInfo)(nil), // 59: approval.CostInfo + (*InvoiceInfo)(nil), // 60: approval.InvoiceInfo } var file_api_approval_approval_proto_depIdxs = []int32{ 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo @@ -6310,82 +6346,87 @@ var file_api_approval_approval_proto_depIdxs = []int32{ 35, // 18: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice - 48, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA - 59, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm + 49, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA + 58, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm 43, // 23: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser 44, // 24: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser 4, // 25: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo - 49, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply - 50, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply - 51, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply - 52, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply - 53, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply - 54, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave + 50, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply + 51, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply + 52, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply + 53, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply + 54, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply + 55, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave 43, // 32: approval.LeaveApply.CopyUsers:type_name -> approval.CopyUser 44, // 33: approval.LeaveApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 34: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser - 44, // 35: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 36: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser - 44, // 37: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 38: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser - 44, // 39: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 40: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser - 44, // 41: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser - 43, // 42: approval.Leave.CopyUsers:type_name -> approval.CopyUser - 44, // 43: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser - 55, // 44: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo - 56, // 45: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo - 34, // 46: approval.Approval.Create:input_type -> approval.CreateRequest - 7, // 47: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest - 5, // 48: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest - 36, // 49: approval.Approval.Detail:input_type -> approval.DetailRequest - 34, // 50: approval.Approval.Update:input_type -> approval.CreateRequest - 37, // 51: approval.Approval.Remove:input_type -> approval.RemoveRequest - 19, // 52: approval.Approval.MyWork:input_type -> approval.ListRequest - 19, // 53: approval.Approval.MySubmit:input_type -> approval.ListRequest - 9, // 54: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest - 22, // 55: approval.Approval.Information:input_type -> approval.InformationRequest - 21, // 56: approval.Approval.Viewed:input_type -> approval.ViewedRequest - 17, // 57: approval.Approval.SetStatus:input_type -> approval.StatusRequest - 46, // 58: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest - 45, // 59: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest - 2, // 60: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest - 1, // 61: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest - 12, // 62: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest - 13, // 63: approval.Approval.DetailType:input_type -> approval.TypeResponse - 12, // 64: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest - 11, // 65: approval.Approval.AllType:input_type -> approval.CommonRequest - 37, // 66: approval.Approval.RemoveType:input_type -> approval.RemoveRequest - 11, // 67: approval.Approval.AllGroup:input_type -> approval.CommonRequest - 57, // 68: approval.Approval.GetName:input_type -> approval.GetNameRequest - 38, // 69: approval.Approval.Create:output_type -> approval.ApprovalResponse - 8, // 70: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse - 6, // 71: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse - 34, // 72: approval.Approval.Detail:output_type -> approval.CreateRequest - 38, // 73: approval.Approval.Update:output_type -> approval.ApprovalResponse - 39, // 74: approval.Approval.Remove:output_type -> approval.RemoveResponse - 20, // 75: approval.Approval.MyWork:output_type -> approval.ListResponse - 20, // 76: approval.Approval.MySubmit:output_type -> approval.ListResponse - 10, // 77: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse - 24, // 78: approval.Approval.Information:output_type -> approval.InformationResponse - 38, // 79: approval.Approval.Viewed:output_type -> approval.ApprovalResponse - 18, // 80: approval.Approval.SetStatus:output_type -> approval.StatusResponse - 45, // 81: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 47, // 82: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 3, // 83: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse - 0, // 84: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse - 13, // 85: approval.Approval.CreateType:output_type -> approval.TypeResponse - 12, // 86: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest - 13, // 87: approval.Approval.UpdateType:output_type -> approval.TypeResponse - 14, // 88: approval.Approval.AllType:output_type -> approval.AllTypeResponse - 18, // 89: approval.Approval.RemoveType:output_type -> approval.StatusResponse - 16, // 90: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse - 58, // 91: approval.Approval.GetName:output_type -> approval.GetNameResponse - 69, // [69:92] is the sub-list for method output_type - 46, // [46:69] is the sub-list for method input_type - 46, // [46:46] is the sub-list for extension type_name - 46, // [46:46] is the sub-list for extension extendee - 0, // [0:46] is the sub-list for field type_name + 48, // 34: approval.OutWorkApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 35: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser + 44, // 36: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 37: approval.MakeUpApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 38: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser + 44, // 39: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 40: approval.TurnoverApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 41: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser + 44, // 42: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 43: approval.OverTimeApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 44: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser + 44, // 45: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 46: approval.Leave.ApplyTimes:type_name -> approval.ApplyTime + 43, // 47: approval.Leave.CopyUsers:type_name -> approval.CopyUser + 44, // 48: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser + 59, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo + 60, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo + 34, // 51: approval.Approval.Create:input_type -> approval.CreateRequest + 7, // 52: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest + 5, // 53: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest + 36, // 54: approval.Approval.Detail:input_type -> approval.DetailRequest + 34, // 55: approval.Approval.Update:input_type -> approval.CreateRequest + 37, // 56: approval.Approval.Remove:input_type -> approval.RemoveRequest + 19, // 57: approval.Approval.MyWork:input_type -> approval.ListRequest + 19, // 58: approval.Approval.MySubmit:input_type -> approval.ListRequest + 9, // 59: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest + 22, // 60: approval.Approval.Information:input_type -> approval.InformationRequest + 21, // 61: approval.Approval.Viewed:input_type -> approval.ViewedRequest + 17, // 62: approval.Approval.SetStatus:input_type -> approval.StatusRequest + 46, // 63: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest + 45, // 64: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest + 2, // 65: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest + 1, // 66: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest + 12, // 67: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest + 13, // 68: approval.Approval.DetailType:input_type -> approval.TypeResponse + 12, // 69: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest + 11, // 70: approval.Approval.AllType:input_type -> approval.CommonRequest + 37, // 71: approval.Approval.RemoveType:input_type -> approval.RemoveRequest + 11, // 72: approval.Approval.AllGroup:input_type -> approval.CommonRequest + 56, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest + 38, // 74: approval.Approval.Create:output_type -> approval.ApprovalResponse + 8, // 75: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse + 6, // 76: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse + 34, // 77: approval.Approval.Detail:output_type -> approval.CreateRequest + 38, // 78: approval.Approval.Update:output_type -> approval.ApprovalResponse + 39, // 79: approval.Approval.Remove:output_type -> approval.RemoveResponse + 20, // 80: approval.Approval.MyWork:output_type -> approval.ListResponse + 20, // 81: approval.Approval.MySubmit:output_type -> approval.ListResponse + 10, // 82: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse + 24, // 83: approval.Approval.Information:output_type -> approval.InformationResponse + 38, // 84: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 18, // 85: approval.Approval.SetStatus:output_type -> approval.StatusResponse + 45, // 86: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 47, // 87: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 3, // 88: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse + 0, // 89: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse + 13, // 90: approval.Approval.CreateType:output_type -> approval.TypeResponse + 12, // 91: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest + 13, // 92: approval.Approval.UpdateType:output_type -> approval.TypeResponse + 14, // 93: approval.Approval.AllType:output_type -> approval.AllTypeResponse + 18, // 94: approval.Approval.RemoveType:output_type -> approval.StatusResponse + 16, // 95: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse + 57, // 96: approval.Approval.GetName:output_type -> approval.GetNameResponse + 74, // [74:97] is the sub-list for method output_type + 51, // [51:74] is the sub-list for method input_type + 51, // [51:51] is the sub-list for extension type_name + 51, // [51:51] is the sub-list for extension extendee + 0, // [0:51] is the sub-list for field type_name } func init() { file_api_approval_approval_proto_init() } @@ -6971,7 +7012,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalOA); i { + switch v := v.(*ApplyTime); i { case 0: return &v.state case 1: @@ -6983,7 +7024,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveApply); i { + switch v := v.(*ApprovalOA); i { case 0: return &v.state case 1: @@ -6995,7 +7036,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutWorkApply); i { + switch v := v.(*LeaveApply); i { case 0: return &v.state case 1: @@ -7007,7 +7048,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MakeUpApply); i { + switch v := v.(*OutWorkApply); i { case 0: return &v.state case 1: @@ -7019,7 +7060,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TurnoverApply); i { + switch v := v.(*MakeUpApply); i { case 0: return &v.state case 1: @@ -7031,7 +7072,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OverTimeApply); i { + switch v := v.(*TurnoverApply); i { case 0: return &v.state case 1: @@ -7043,7 +7084,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Leave); i { + switch v := v.(*OverTimeApply); i { case 0: return &v.state case 1: @@ -7055,7 +7096,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CostInfo); i { + switch v := v.(*Leave); i { case 0: return &v.state case 1: @@ -7067,7 +7108,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvoiceInfo); i { + switch v := v.(*GetNameRequest); i { case 0: return &v.state case 1: @@ -7079,7 +7120,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNameRequest); i { + switch v := v.(*GetNameResponse); i { case 0: return &v.state case 1: @@ -7091,7 +7132,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNameResponse); i { + switch v := v.(*FinancialForm); i { case 0: return &v.state case 1: @@ -7103,7 +7144,19 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinancialForm); i { + switch v := v.(*CostInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvoiceInfo); i { case 0: return &v.state case 1: @@ -7121,7 +7174,7 @@ func file_api_approval_approval_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, - NumMessages: 60, + NumMessages: 61, NumExtensions: 0, NumServices: 1, }, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index c237426..74e10fb 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -425,6 +425,12 @@ message SettingResponse { // oa审批 +message ApplyTime { + string Date = 1 [json_name = "date"]; + string Hour = 2 [json_name = "hour"]; + string M = 3 [json_name = "m"]; +} + message ApprovalOA { uint64 ID=1 [json_name = "ID"]; uint64 DeletedAt=2 [json_name = "deletedAt"]; @@ -465,8 +471,7 @@ message OutWorkApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string BeginTime = 10 [json_name = "beginTime"]; - string EndTime = 11 [json_name = "endTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; float Hours = 13 [json_name = "hours"]; string OutWorkAddress = 14 [json_name = "outWorkAddress"]; @@ -485,8 +490,7 @@ message MakeUpApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string MakeUpDate =10 [json_name = "makeUpDate"]; - string MakeUpTime =11 [json_name = "makeUpTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; repeated CopyUser CopyUsers = 13 [json_name = "copyUsers"]; repeated ApprovalUser ApprovalUsers = 14 [json_name = "approvalUsers"]; @@ -504,7 +508,7 @@ message TurnoverApply { int32 Status = 9 [json_name = "status"]; string HandoverUID = 10 [json_name = "handoverUID"]; string HandoverName = 11 [json_name = "handoverName"]; - string TurnoverTime = 12 [json_name = "turnoverTime"]; + repeated ApplyTime ApplyTimes = 12 [json_name = "applyTimes"]; string Reason = 13 [json_name = "reason"]; repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; @@ -520,8 +524,7 @@ message OverTimeApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string BeginTime = 10 [json_name = "beginTime"]; - string EndTime = 11 [json_name = "endTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; float Hours = 13 [json_name = "hours"]; repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; @@ -538,8 +541,7 @@ message Leave { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string BeginTime = 10 [json_name = "beginTime"]; - string EndTime = 11 [json_name = "endTime"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; string Reason = 12 [json_name = "reason"]; float Hours = 13 [json_name = "hours"]; float Days = 14 [json_name = "days"]; @@ -547,28 +549,6 @@ message Leave { repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"]; } -message CostInfo { - string Description = 1 [json_name = "description"]; - string UnitPrice = 2 [json_name = "unitPrice"]; - string CostUnit = 3 [json_name = "costUnit"]; - int64 CostNum = 4 [json_name = "costNum"]; - string TotalPrice = 5 [json_name = "totalPrice"]; - string UsedDepartment = 6 [json_name = "usedDepartment"]; -} - -message InvoiceInfo { - string InvoiceDate = 1 [json_name = "invoiceDate"]; - string InvoiceNo = 2 [json_name = "invoiceNo"]; - string InvoiceProvider = 3 [json_name = "invoiceProvider"]; - string Amount = 4 [json_name = "amount"]; - string UseTo = 5 [json_name = "useTo"]; - string Applicant = 6 [json_name = "applicant"]; - string PaymentMethod = 7 [json_name = "paymentMethod"]; - string PaymentObj = 8 [json_name = "paymentObj"]; - string InvoiceType = 9 [json_name = "invoiceType"]; - string Notes = 10 [json_name = "notes"]; -} - // 财务报表审批 message GetNameRequest { @@ -593,4 +573,27 @@ message FinancialForm { repeated CostInfo CostInfo = 11 [json_name = "costInfo"]; string PaymentMethod = 12 [json_name = "paymentMethod"]; repeated InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"]; +} + + +message CostInfo { + string Description = 1 [json_name = "description"]; + string UnitPrice = 2 [json_name = "unitPrice"]; + string CostUnit = 3 [json_name = "costUnit"]; + int64 CostNum = 4 [json_name = "costNum"]; + string TotalPrice = 5 [json_name = "totalPrice"]; + string UsedDepartment = 6 [json_name = "usedDepartment"]; +} + +message InvoiceInfo { + string InvoiceDate = 1 [json_name = "invoiceDate"]; + string InvoiceNo = 2 [json_name = "invoiceNo"]; + string InvoiceProvider = 3 [json_name = "invoiceProvider"]; + string Amount = 4 [json_name = "amount"]; + string UseTo = 5 [json_name = "useTo"]; + string Applicant = 6 [json_name = "applicant"]; + string PaymentMethod = 7 [json_name = "paymentMethod"]; + string PaymentObj = 8 [json_name = "paymentObj"]; + string InvoiceType = 9 [json_name = "invoiceType"]; + string Notes = 10 [json_name = "notes"]; } \ No newline at end of file diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go index 9bb2e57..1b84048 100644 --- a/api/approval/approval.validator.pb.go +++ b/api/approval/approval.validator.pb.go @@ -335,6 +335,9 @@ func (this *DetailSettingRequest) Validate() error { func (this *SettingResponse) Validate() error { return nil } +func (this *ApplyTime) Validate() error { + return nil +} func (this *ApprovalOA) Validate() error { if this.LeaveApply != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.LeaveApply); err != nil { @@ -386,6 +389,13 @@ func (this *LeaveApply) Validate() error { return nil } func (this *OutWorkApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -403,6 +413,13 @@ func (this *OutWorkApply) Validate() error { return nil } func (this *MakeUpApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -420,6 +437,13 @@ func (this *MakeUpApply) Validate() error { return nil } func (this *TurnoverApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -437,6 +461,13 @@ func (this *TurnoverApply) Validate() error { return nil } func (this *OverTimeApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -454,6 +485,13 @@ func (this *OverTimeApply) Validate() error { return nil } func (this *Leave) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } for _, item := range this.CopyUsers { if item != nil { if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { @@ -470,12 +508,6 @@ func (this *Leave) Validate() error { } return nil } -func (this *CostInfo) Validate() error { - return nil -} -func (this *InvoiceInfo) Validate() error { - return nil -} func (this *GetNameRequest) Validate() error { return nil } @@ -499,3 +531,9 @@ func (this *FinancialForm) Validate() error { } return nil } +func (this *CostInfo) Validate() error { + return nil +} +func (this *InvoiceInfo) Validate() error { + return nil +} diff --git a/pkg/model/approval.go b/pkg/model/approval.go index cd78f51..7a193e7 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -76,23 +76,6 @@ const ( TypeArtExhibitionReward = "artExhibitionReward" TypeOa = "oa" // oa 父类 - /* 子类 */ - TypeOaLeave = "oa_leave" // 事假 - TypeOaSick = "oa_sick" // 病假 - TypeOaAnnualLeave = "oa_annualLeave" // 年假 - TypeOaDayOff = "oa_dayOff" // 调休 - TypeOaMaritalLeave = "oa_maritalLeave" // 婚假 - TypeOaMatingCheckLeave = "oa_matingCheckLeave" // 孕检假 - TypeOaMaternityLeave = "oa_maternityLeave" // 产假 - TypeOaPaternityLeave = "oa_paternityLeave" // 陪产假 - TypeOaParentalLeave = "oa_parentalLeave" // 育儿假 - TypeOaNursingLeave = "oa_nursingLeave" // 独生子女护理假 - TypeOaFuneralLeave = "oa_funeralLeave" // 丧假 - TypeOaMakeUp = "oa_makeUp" // 补卡 - TypeOaOvertime = "oa_overtime" // 加班 - TypeOaOutwork = "oa_outwork" // 外勤 - TypeOaTurnover = "oa_turnover" // 离职 - /* */ TypeFinancialForm = "financialFormApply" ) @@ -557,7 +540,8 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") //我未阅读的和我未操作的 DB.Model(&Approval{}).Where(&Approval{Type: in.Type}).Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}).Order("id desc").Select("id").Find(&ids) @@ -595,7 +579,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Type != "" { modelObj = modelObj.Where(&Approval{Type: in.Type}) @@ -653,7 +638,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalWorkFlows"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Type != "" { modelObj = modelObj.Where(&Approval{Type: in.Type}) @@ -710,7 +696,8 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalType.ApprovalTypeGroup"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Status != 0 { modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) @@ -743,7 +730,8 @@ func MyReadApprovals(in *approval.ListRequest) ([]*Approval, int64) { Preload("ExhibitionReward.ApprovalExhibitions"). Preload("ApprovalType.ApprovalTypeGroup"). Preload("Exhibition.ApprovalExhibitions"). - Preload("FinancialForm") + Preload("FinancialForm"). + Preload("ApprovalOA") if in.Type != "" { modelObj = modelObj.Where(&Approval{Type: in.Type}) @@ -834,11 +822,10 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro case TypeFinancialForm: return &FinancialForm{}, nil default: - v, _ := TypeMap[typeFiled] - if v == "oa" { + if TypeMap[typeFiled] == TypeOa { return &ApprovalOA{}, nil } else { - return &Approval{}, nil + return nil, errors.New("无法识别的审批类型") } } } diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 57b1ebb..5f93c0c 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -16,12 +16,12 @@ type ApprovalOA struct { CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 ApprovalID uint64 `gorm:"column:approval_id" json:"approvalID"` // 申请的id - LeaveApply LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` - OutWork OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` - MakeUp MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` - Turnover TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` - OverTime OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` - Leave Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` + LeaveApply *LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` + OutWork *OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` + MakeUp *MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` + Turnover *TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` + OverTime *OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` + Leave *Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` } // LeaveApply @@ -52,8 +52,7 @@ type OutWorkApply struct { DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` - BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` - EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` OutWorkAddress string `json:"outWorkAddress" gorm:"column:out_work_address;type:varchar(255);comment:外勤地址"` Vehicle string `json:"vehicle" gorm:"column:vehicle;type:varchar(255);comment:交通工具"` @@ -74,8 +73,7 @@ type MakeUpApply struct { DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` - MakeUpDate string `json:"makeUpDate" gorm:"column:make_up_date;type:varchar(255);comment:补卡日期"` - MakeUpTime string `json:"makeUpTime" gorm:"column:make_up_time;type:varchar(255);comment:补卡时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` @@ -96,7 +94,7 @@ type TurnoverApply struct { Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` HandoverUID string `json:"handoverUID" gorm:"column:handover_uid;type:varchar(255);comment:交接人"` HandoverName string `json:"handoverName" gorm:"column:handover_name;type:varchar(255);comment:交接人姓名"` - TurnoverTime string `json:"turnoverTime" gorm:"column:turnover_time;type:varchar(255);comment:离职时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` @@ -114,8 +112,7 @@ type OverTimeApply struct { ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` - BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` - EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` @@ -134,8 +131,7 @@ type Leave struct { ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` - BeginTime string `json:"beginTime" gorm:"column:begin_time;type:varchar(255);comment:开始时间"` - EndTime string `json:"endTime" gorm:"column:end_time;type:varchar(255);comment:结束时间"` + ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"` Days float32 `json:"days" gorm:"column:days;type:decimal(10,2);comment:时长(天)"` @@ -146,6 +142,14 @@ type Leave struct { type VerifyFiles []string +type ApplyTime struct { + Date string `json:"date"` // 日期 2023-05-08 + Hour string `json:"hour"` // 时间 09:00 + M string `json:"m"` // 上午|下午 +} + +type ApplyTimes []ApplyTime + var sonMap = map[string]string{ "leave": "leave", // 事假 "sick": "leave", // 病假 @@ -194,17 +198,25 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { + if err := oa.copyOAToModel(in, a); err != nil { + return err + } + + return DB.Create(&oa).Error +} + +func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) error { copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true}) oa.ApprovalID = a.ID - if err := oa.addOtherInfo(a); err != nil { + if err := oa.addOtherInfoToModel(in, a); err != nil { return err } - return DB.Create(&oa).Error + return nil } -func (oa *ApprovalOA) addOtherInfo(a *Approval) error { +func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval) error { if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": @@ -215,30 +227,80 @@ func (oa *ApprovalOA) addOtherInfo(a *Approval) error { } oa.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) oa.Leave.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, + Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, + M: in.ApprovalOA.Leave.ApplyTimes[i].M, + }) + } + oa.Leave.ApplyTimes = applyTimes case "makeUp": oa.MakeUp.ApprovalUsers = a.ApprovalUsers oa.MakeUp.CopyUsers = a.CopyUsers oa.MakeUp.ApplyType = a.ApprovalType.KeyWord oa.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) oa.MakeUp.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, + Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, + M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, + }) + } + oa.MakeUp.ApplyTimes = applyTimes case "overTime": oa.OverTime.ApprovalUsers = a.ApprovalUsers oa.OverTime.CopyUsers = a.CopyUsers oa.OverTime.ApplyType = a.ApprovalType.KeyWord oa.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) oa.OverTime.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, + Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, + M: in.ApprovalOA.OverTime.ApplyTimes[i].M, + }) + } + oa.OverTime.ApplyTimes = applyTimes case "outWork": oa.OutWork.ApprovalUsers = a.ApprovalUsers oa.OutWork.CopyUsers = a.CopyUsers oa.OutWork.ApplyType = a.ApprovalType.KeyWord oa.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) oa.OutWork.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, + Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, + M: in.ApprovalOA.OutWork.ApplyTimes[i].M, + }) + } + oa.OutWork.ApplyTimes = applyTimes case "turnover": oa.Turnover.ApprovalUsers = a.ApprovalUsers oa.Turnover.CopyUsers = a.CopyUsers oa.Turnover.ApplyType = a.ApprovalType.KeyWord oa.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) oa.Turnover.Status = int32(a.Status) + + applyTimes := make([]ApplyTime, 0) + for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { + applyTimes = append(applyTimes, ApplyTime{ + Date: in.ApprovalOA.Turnover.ApplyTimes[i].Date, + Hour: in.ApprovalOA.Turnover.ApplyTimes[i].Hour, + M: in.ApprovalOA.Turnover.ApplyTimes[i].M, + }) + } + oa.Turnover.ApplyTimes = applyTimes case "leaveApply": oa.LeaveApply.ApprovalUsers = a.ApprovalUsers oa.LeaveApply.CopyUsers = a.CopyUsers @@ -262,11 +324,51 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro oa.ID = entity.ID + if err := oa.copyOAToModel(in, a); err != nil { + return err + } + return DB.Model(&oa).Updates(oa).Error } func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) { + if err := oa.copyOAToRpc(a, request); err != nil { + return + } +} + +func (oa *ApprovalOA) copyOAToRpc(a *Approval, in *approval.CreateRequest) error { + copier.CopyWithOption(&in.ApprovalOA, a, copier.Option{DeepCopy: true}) + + if err := oa.addOtherInfoToRpc(a, in); err != nil { + return err + } + + return nil +} +func (oa *ApprovalOA) addOtherInfoToRpc(a *Approval, in *approval.CreateRequest) error { + if oa.Leave != nil { + copier.CopyWithOption(&a.ApprovalOA.Leave.ApplyTimes, in.ApprovalOA.Leave.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.MakeUp != nil { + copier.CopyWithOption(&a.ApprovalOA.MakeUp.ApplyTimes, in.ApprovalOA.MakeUp.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.Turnover != nil { + copier.CopyWithOption(&a.ApprovalOA.Turnover.ApplyTimes, in.ApprovalOA.Turnover.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.OverTime != nil { + copier.CopyWithOption(&a.ApprovalOA.OverTime.ApplyTimes, in.ApprovalOA.OverTime.ApplyTimes, copier.Option{DeepCopy: true}) + } + + if oa.OutWork != nil { + copier.CopyWithOption(&a.ApprovalOA.OutWork.ApplyTimes, in.ApprovalOA.OutWork.ApplyTimes, copier.Option{DeepCopy: true}) + } + + return nil } func (oa *ApprovalOA) DeleteApproval(p *Approval) error { diff --git a/pkg/model/migration.go b/pkg/model/migration.go index 5c3abe9..e7bfcc1 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -14,7 +14,9 @@ func migration() { addTable(&ApprovalReward{}) addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息 - addTable(&FinancialForm{}) // 财务报表审批 设置信息 + addTable(&FinancialForm{}) // 财务报表审批 + + addTable(&ApprovalOA{}) // OA //增加字段 addColumn(&ApprovalType{}, "is_normal") From e1610eb0193f6828e16e521d16eda5dc1476751b Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 8 May 2023 16:46:05 +0800 Subject: [PATCH 08/64] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 7a193e7..10831ed 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -825,7 +825,7 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro if TypeMap[typeFiled] == TypeOa { return &ApprovalOA{}, nil } else { - return nil, errors.New("无法识别的审批类型") + return &Approval{}, nil } } } From 9f29def7f2f2b5dff25bfdc56e22ad4a10da176c Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 10:58:35 +0800 Subject: [PATCH 09/64] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20oa=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E7=9A=84uuid=E5=88=B0=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 720 ++++++++++++++++---------- api/approval/approval.proto | 12 + api/approval/approval.validator.pb.go | 6 + api/approval/approval_triple.pb.go | 47 ++ pkg/e/code.go | 3 + pkg/e/msg.go | 3 + pkg/model/approval_type.go | 31 ++ pkg/service/approval_oa.go | 44 ++ 8 files changed, 583 insertions(+), 283 deletions(-) create mode 100644 pkg/service/approval_oa.go diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 29dd7ed..f90dd41 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -4898,6 +4898,116 @@ func (x *Leave) GetApprovalUsers() []*ApprovalUser { return nil } +type UpdateApprovalOAUUIDReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + ApplyType string `protobuf:"bytes,2,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` +} + +func (x *UpdateApprovalOAUUIDReq) Reset() { + *x = UpdateApprovalOAUUIDReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApprovalOAUUIDReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApprovalOAUUIDReq) ProtoMessage() {} + +func (x *UpdateApprovalOAUUIDReq) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateApprovalOAUUIDReq.ProtoReflect.Descriptor instead. +func (*UpdateApprovalOAUUIDReq) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{56} +} + +func (x *UpdateApprovalOAUUIDReq) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *UpdateApprovalOAUUIDReq) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *UpdateApprovalOAUUIDReq) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +type UpdateApprovalOAUUIDResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` +} + +func (x *UpdateApprovalOAUUIDResponse) Reset() { + *x = UpdateApprovalOAUUIDResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApprovalOAUUIDResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApprovalOAUUIDResponse) ProtoMessage() {} + +func (x *UpdateApprovalOAUUIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateApprovalOAUUIDResponse.ProtoReflect.Descriptor instead. +func (*UpdateApprovalOAUUIDResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{57} +} + +func (x *UpdateApprovalOAUUIDResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + // 财务报表审批 type GetNameRequest struct { state protoimpl.MessageState @@ -4910,7 +5020,7 @@ type GetNameRequest struct { func (x *GetNameRequest) Reset() { *x = GetNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[56] + mi := &file_api_approval_approval_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4923,7 +5033,7 @@ func (x *GetNameRequest) String() string { func (*GetNameRequest) ProtoMessage() {} func (x *GetNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[56] + mi := &file_api_approval_approval_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4936,7 +5046,7 @@ func (x *GetNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. func (*GetNameRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{56} + return file_api_approval_approval_proto_rawDescGZIP(), []int{58} } func (x *GetNameRequest) GetSettingType() string { @@ -4957,7 +5067,7 @@ type GetNameResponse struct { func (x *GetNameResponse) Reset() { *x = GetNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[57] + mi := &file_api_approval_approval_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4970,7 +5080,7 @@ func (x *GetNameResponse) String() string { func (*GetNameResponse) ProtoMessage() {} func (x *GetNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[57] + mi := &file_api_approval_approval_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4983,7 +5093,7 @@ func (x *GetNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. func (*GetNameResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{57} + return file_api_approval_approval_proto_rawDescGZIP(), []int{59} } func (x *GetNameResponse) GetName() []string { @@ -5016,7 +5126,7 @@ type FinancialForm struct { func (x *FinancialForm) Reset() { *x = FinancialForm{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[58] + mi := &file_api_approval_approval_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5029,7 +5139,7 @@ func (x *FinancialForm) String() string { func (*FinancialForm) ProtoMessage() {} func (x *FinancialForm) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[58] + mi := &file_api_approval_approval_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5042,7 +5152,7 @@ func (x *FinancialForm) ProtoReflect() protoreflect.Message { // Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. func (*FinancialForm) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{58} + return file_api_approval_approval_proto_rawDescGZIP(), []int{60} } func (x *FinancialForm) GetID() uint64 { @@ -5152,7 +5262,7 @@ type CostInfo struct { func (x *CostInfo) Reset() { *x = CostInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[59] + mi := &file_api_approval_approval_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5165,7 +5275,7 @@ func (x *CostInfo) String() string { func (*CostInfo) ProtoMessage() {} func (x *CostInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[59] + mi := &file_api_approval_approval_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5178,7 +5288,7 @@ func (x *CostInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CostInfo.ProtoReflect.Descriptor instead. func (*CostInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{59} + return file_api_approval_approval_proto_rawDescGZIP(), []int{61} } func (x *CostInfo) GetDescription() string { @@ -5243,7 +5353,7 @@ type InvoiceInfo struct { func (x *InvoiceInfo) Reset() { *x = InvoiceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[60] + mi := &file_api_approval_approval_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5256,7 +5366,7 @@ func (x *InvoiceInfo) String() string { func (*InvoiceInfo) ProtoMessage() {} func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[60] + mi := &file_api_approval_approval_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5269,7 +5379,7 @@ func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use InvoiceInfo.ProtoReflect.Descriptor instead. func (*InvoiceInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{60} + return file_api_approval_approval_proto_rawDescGZIP(), []int{62} } func (x *InvoiceInfo) GetInvoiceDate() string { @@ -6072,180 +6182,196 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, - 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, - 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, - 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, - 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, - 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, - 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, - 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, - 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, - 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, - 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, - 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, - 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, - 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, - 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, - 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, - 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, - 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, - 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, - 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, - 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, - 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, + 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, + 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, + 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, + 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, + 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, + 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, + 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, + 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, + 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, + 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, + 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, + 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, + 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, + 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, + 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, + 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, - 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, - 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, - 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, - 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, - 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, + 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, + 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, + 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, + 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, + 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6260,69 +6386,71 @@ func file_api_approval_approval_proto_rawDescGZIP() []byte { return file_api_approval_approval_proto_rawDescData } -var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 61) +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 63) var file_api_approval_approval_proto_goTypes = []interface{}{ - (*CommonResponse)(nil), // 0: approval.CommonResponse - (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest - (*IsExistPayRightRequest)(nil), // 2: approval.IsExistPayRightRequest - (*IsExistPayRightResponse)(nil), // 3: approval.IsExistPayRightResponse - (*KeyInfo)(nil), // 4: approval.KeyInfo - (*UpdateEhApplyIDRequest)(nil), // 5: approval.UpdateEhApplyIDRequest - (*UpdateEhApplyIDResponse)(nil), // 6: approval.UpdateEhApplyIDResponse - (*UsedNumByUserRequest)(nil), // 7: approval.UsedNumByUserRequest - (*UsedNumByUserResponse)(nil), // 8: approval.UsedNumByUserResponse - (*NowLevelByInfoRequest)(nil), // 9: approval.NowLevelByInfoRequest - (*WorkFlowResponse)(nil), // 10: approval.WorkFlowResponse - (*CommonRequest)(nil), // 11: approval.CommonRequest - (*CreateTypeRequest)(nil), // 12: approval.CreateTypeRequest - (*TypeResponse)(nil), // 13: approval.TypeResponse - (*AllTypeResponse)(nil), // 14: approval.AllTypeResponse - (*CreateTypeGroupRequest)(nil), // 15: approval.CreateTypeGroupRequest - (*AllGroupResponse)(nil), // 16: approval.AllGroupResponse - (*StatusRequest)(nil), // 17: approval.StatusRequest - (*StatusResponse)(nil), // 18: approval.StatusResponse - (*ListRequest)(nil), // 19: approval.ListRequest - (*ListResponse)(nil), // 20: approval.ListResponse - (*ViewedRequest)(nil), // 21: approval.ViewedRequest - (*InformationRequest)(nil), // 22: approval.InformationRequest - (*Information)(nil), // 23: approval.Information - (*InformationResponse)(nil), // 24: approval.InformationResponse - (*Bundle)(nil), // 25: approval.Bundle - (*Show)(nil), // 26: approval.Show - (*ApprovalWork)(nil), // 27: approval.ApprovalWork - (*Work)(nil), // 28: approval.Work - (*ApprovalExhibition)(nil), // 29: approval.ApprovalExhibition - (*Exhibition)(nil), // 30: approval.Exhibition - (*Artwork)(nil), // 31: approval.Artwork - (*ArtExhibitionDetail)(nil), // 32: approval.ArtExhibitionDetail - (*BundlePayPrice)(nil), // 33: approval.BundlePayPrice - (*CreateRequest)(nil), // 34: approval.CreateRequest - (*WorkFlow)(nil), // 35: approval.WorkFlow - (*DetailRequest)(nil), // 36: approval.DetailRequest - (*RemoveRequest)(nil), // 37: approval.RemoveRequest - (*ApprovalResponse)(nil), // 38: approval.ApprovalResponse - (*RemoveResponse)(nil), // 39: approval.RemoveResponse - (*ApprovalExhibitionRemove)(nil), // 40: approval.ApprovalExhibitionRemove - (*ApprovalExhibitionRequest)(nil), // 41: approval.ApprovalExhibitionRequest - (*ApprovalExhibitionDetail)(nil), // 42: approval.ApprovalExhibitionDetail - (*CopyUser)(nil), // 43: approval.CopyUser - (*ApprovalUser)(nil), // 44: approval.ApprovalUser - (*SettingRequest)(nil), // 45: approval.SettingRequest - (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest - (*SettingResponse)(nil), // 47: approval.SettingResponse - (*ApplyTime)(nil), // 48: approval.ApplyTime - (*ApprovalOA)(nil), // 49: approval.ApprovalOA - (*LeaveApply)(nil), // 50: approval.LeaveApply - (*OutWorkApply)(nil), // 51: approval.OutWorkApply - (*MakeUpApply)(nil), // 52: approval.MakeUpApply - (*TurnoverApply)(nil), // 53: approval.TurnoverApply - (*OverTimeApply)(nil), // 54: approval.OverTimeApply - (*Leave)(nil), // 55: approval.Leave - (*GetNameRequest)(nil), // 56: approval.GetNameRequest - (*GetNameResponse)(nil), // 57: approval.GetNameResponse - (*FinancialForm)(nil), // 58: approval.FinancialForm - (*CostInfo)(nil), // 59: approval.CostInfo - (*InvoiceInfo)(nil), // 60: approval.InvoiceInfo + (*CommonResponse)(nil), // 0: approval.CommonResponse + (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest + (*IsExistPayRightRequest)(nil), // 2: approval.IsExistPayRightRequest + (*IsExistPayRightResponse)(nil), // 3: approval.IsExistPayRightResponse + (*KeyInfo)(nil), // 4: approval.KeyInfo + (*UpdateEhApplyIDRequest)(nil), // 5: approval.UpdateEhApplyIDRequest + (*UpdateEhApplyIDResponse)(nil), // 6: approval.UpdateEhApplyIDResponse + (*UsedNumByUserRequest)(nil), // 7: approval.UsedNumByUserRequest + (*UsedNumByUserResponse)(nil), // 8: approval.UsedNumByUserResponse + (*NowLevelByInfoRequest)(nil), // 9: approval.NowLevelByInfoRequest + (*WorkFlowResponse)(nil), // 10: approval.WorkFlowResponse + (*CommonRequest)(nil), // 11: approval.CommonRequest + (*CreateTypeRequest)(nil), // 12: approval.CreateTypeRequest + (*TypeResponse)(nil), // 13: approval.TypeResponse + (*AllTypeResponse)(nil), // 14: approval.AllTypeResponse + (*CreateTypeGroupRequest)(nil), // 15: approval.CreateTypeGroupRequest + (*AllGroupResponse)(nil), // 16: approval.AllGroupResponse + (*StatusRequest)(nil), // 17: approval.StatusRequest + (*StatusResponse)(nil), // 18: approval.StatusResponse + (*ListRequest)(nil), // 19: approval.ListRequest + (*ListResponse)(nil), // 20: approval.ListResponse + (*ViewedRequest)(nil), // 21: approval.ViewedRequest + (*InformationRequest)(nil), // 22: approval.InformationRequest + (*Information)(nil), // 23: approval.Information + (*InformationResponse)(nil), // 24: approval.InformationResponse + (*Bundle)(nil), // 25: approval.Bundle + (*Show)(nil), // 26: approval.Show + (*ApprovalWork)(nil), // 27: approval.ApprovalWork + (*Work)(nil), // 28: approval.Work + (*ApprovalExhibition)(nil), // 29: approval.ApprovalExhibition + (*Exhibition)(nil), // 30: approval.Exhibition + (*Artwork)(nil), // 31: approval.Artwork + (*ArtExhibitionDetail)(nil), // 32: approval.ArtExhibitionDetail + (*BundlePayPrice)(nil), // 33: approval.BundlePayPrice + (*CreateRequest)(nil), // 34: approval.CreateRequest + (*WorkFlow)(nil), // 35: approval.WorkFlow + (*DetailRequest)(nil), // 36: approval.DetailRequest + (*RemoveRequest)(nil), // 37: approval.RemoveRequest + (*ApprovalResponse)(nil), // 38: approval.ApprovalResponse + (*RemoveResponse)(nil), // 39: approval.RemoveResponse + (*ApprovalExhibitionRemove)(nil), // 40: approval.ApprovalExhibitionRemove + (*ApprovalExhibitionRequest)(nil), // 41: approval.ApprovalExhibitionRequest + (*ApprovalExhibitionDetail)(nil), // 42: approval.ApprovalExhibitionDetail + (*CopyUser)(nil), // 43: approval.CopyUser + (*ApprovalUser)(nil), // 44: approval.ApprovalUser + (*SettingRequest)(nil), // 45: approval.SettingRequest + (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest + (*SettingResponse)(nil), // 47: approval.SettingResponse + (*ApplyTime)(nil), // 48: approval.ApplyTime + (*ApprovalOA)(nil), // 49: approval.ApprovalOA + (*LeaveApply)(nil), // 50: approval.LeaveApply + (*OutWorkApply)(nil), // 51: approval.OutWorkApply + (*MakeUpApply)(nil), // 52: approval.MakeUpApply + (*TurnoverApply)(nil), // 53: approval.TurnoverApply + (*OverTimeApply)(nil), // 54: approval.OverTimeApply + (*Leave)(nil), // 55: approval.Leave + (*UpdateApprovalOAUUIDReq)(nil), // 56: approval.UpdateApprovalOAUUIDReq + (*UpdateApprovalOAUUIDResponse)(nil), // 57: approval.UpdateApprovalOAUUIDResponse + (*GetNameRequest)(nil), // 58: approval.GetNameRequest + (*GetNameResponse)(nil), // 59: approval.GetNameResponse + (*FinancialForm)(nil), // 60: approval.FinancialForm + (*CostInfo)(nil), // 61: approval.CostInfo + (*InvoiceInfo)(nil), // 62: approval.InvoiceInfo } var file_api_approval_approval_proto_depIdxs = []int32{ 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo @@ -6347,7 +6475,7 @@ var file_api_approval_approval_proto_depIdxs = []int32{ 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice 49, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA - 58, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm + 60, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm 43, // 23: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser 44, // 24: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser 4, // 25: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo @@ -6374,8 +6502,8 @@ var file_api_approval_approval_proto_depIdxs = []int32{ 48, // 46: approval.Leave.ApplyTimes:type_name -> approval.ApplyTime 43, // 47: approval.Leave.CopyUsers:type_name -> approval.CopyUser 44, // 48: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser - 59, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo - 60, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo + 61, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo + 62, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo 34, // 51: approval.Approval.Create:input_type -> approval.CreateRequest 7, // 52: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest 5, // 53: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest @@ -6398,32 +6526,34 @@ var file_api_approval_approval_proto_depIdxs = []int32{ 11, // 70: approval.Approval.AllType:input_type -> approval.CommonRequest 37, // 71: approval.Approval.RemoveType:input_type -> approval.RemoveRequest 11, // 72: approval.Approval.AllGroup:input_type -> approval.CommonRequest - 56, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest - 38, // 74: approval.Approval.Create:output_type -> approval.ApprovalResponse - 8, // 75: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse - 6, // 76: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse - 34, // 77: approval.Approval.Detail:output_type -> approval.CreateRequest - 38, // 78: approval.Approval.Update:output_type -> approval.ApprovalResponse - 39, // 79: approval.Approval.Remove:output_type -> approval.RemoveResponse - 20, // 80: approval.Approval.MyWork:output_type -> approval.ListResponse - 20, // 81: approval.Approval.MySubmit:output_type -> approval.ListResponse - 10, // 82: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse - 24, // 83: approval.Approval.Information:output_type -> approval.InformationResponse - 38, // 84: approval.Approval.Viewed:output_type -> approval.ApprovalResponse - 18, // 85: approval.Approval.SetStatus:output_type -> approval.StatusResponse - 45, // 86: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 47, // 87: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 3, // 88: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse - 0, // 89: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse - 13, // 90: approval.Approval.CreateType:output_type -> approval.TypeResponse - 12, // 91: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest - 13, // 92: approval.Approval.UpdateType:output_type -> approval.TypeResponse - 14, // 93: approval.Approval.AllType:output_type -> approval.AllTypeResponse - 18, // 94: approval.Approval.RemoveType:output_type -> approval.StatusResponse - 16, // 95: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse - 57, // 96: approval.Approval.GetName:output_type -> approval.GetNameResponse - 74, // [74:97] is the sub-list for method output_type - 51, // [51:74] is the sub-list for method input_type + 58, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest + 56, // 74: approval.Approval.UpdateApprovalOAUUID:input_type -> approval.UpdateApprovalOAUUIDReq + 38, // 75: approval.Approval.Create:output_type -> approval.ApprovalResponse + 8, // 76: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse + 6, // 77: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse + 34, // 78: approval.Approval.Detail:output_type -> approval.CreateRequest + 38, // 79: approval.Approval.Update:output_type -> approval.ApprovalResponse + 39, // 80: approval.Approval.Remove:output_type -> approval.RemoveResponse + 20, // 81: approval.Approval.MyWork:output_type -> approval.ListResponse + 20, // 82: approval.Approval.MySubmit:output_type -> approval.ListResponse + 10, // 83: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse + 24, // 84: approval.Approval.Information:output_type -> approval.InformationResponse + 38, // 85: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 18, // 86: approval.Approval.SetStatus:output_type -> approval.StatusResponse + 45, // 87: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 47, // 88: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 3, // 89: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse + 0, // 90: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse + 13, // 91: approval.Approval.CreateType:output_type -> approval.TypeResponse + 12, // 92: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest + 13, // 93: approval.Approval.UpdateType:output_type -> approval.TypeResponse + 14, // 94: approval.Approval.AllType:output_type -> approval.AllTypeResponse + 18, // 95: approval.Approval.RemoveType:output_type -> approval.StatusResponse + 16, // 96: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse + 59, // 97: approval.Approval.GetName:output_type -> approval.GetNameResponse + 57, // 98: approval.Approval.UpdateApprovalOAUUID:output_type -> approval.UpdateApprovalOAUUIDResponse + 75, // [75:99] is the sub-list for method output_type + 51, // [51:75] is the sub-list for method input_type 51, // [51:51] is the sub-list for extension type_name 51, // [51:51] is the sub-list for extension extendee 0, // [0:51] is the sub-list for field type_name @@ -7108,7 +7238,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNameRequest); i { + switch v := v.(*UpdateApprovalOAUUIDReq); i { case 0: return &v.state case 1: @@ -7120,7 +7250,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNameResponse); i { + switch v := v.(*UpdateApprovalOAUUIDResponse); i { case 0: return &v.state case 1: @@ -7132,7 +7262,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinancialForm); i { + switch v := v.(*GetNameRequest); i { case 0: return &v.state case 1: @@ -7144,7 +7274,7 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CostInfo); i { + switch v := v.(*GetNameResponse); i { case 0: return &v.state case 1: @@ -7156,6 +7286,30 @@ func file_api_approval_approval_proto_init() { } } file_api_approval_approval_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinancialForm); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CostInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvoiceInfo); i { case 0: return &v.state @@ -7174,7 +7328,7 @@ func file_api_approval_approval_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, - NumMessages: 61, + NumMessages: 63, NumExtensions: 0, NumServices: 1, }, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 74e10fb..f55732d 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -34,6 +34,9 @@ service Approval { // 财务报表审批 rpc GetName(GetNameRequest) returns (GetNameResponse) {}; + + // OA审批 更新 OA系统的 UUID + rpc UpdateApprovalOAUUID(UpdateApprovalOAUUIDReq) returns (UpdateApprovalOAUUIDResponse) {}; } message CommonResponse { @@ -549,6 +552,15 @@ message Leave { repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"]; } +message UpdateApprovalOAUUIDReq { + string UUID = 1 [json_name = "UUID"]; + string ApplyType = 2 [json_name = "applyType"]; + uint64 ApprovalID = 3 [json_name = "approvalID"]; +} + +message UpdateApprovalOAUUIDResponse { + string Msg = 1 [json_name = "msg"]; +} // 财务报表审批 message GetNameRequest { diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go index 1b84048..27bf287 100644 --- a/api/approval/approval.validator.pb.go +++ b/api/approval/approval.validator.pb.go @@ -508,6 +508,12 @@ func (this *Leave) Validate() error { } return nil } +func (this *UpdateApprovalOAUUIDReq) Validate() error { + return nil +} +func (this *UpdateApprovalOAUUIDResponse) Validate() error { + return nil +} func (this *GetNameRequest) Validate() error { return nil } diff --git a/api/approval/approval_triple.pb.go b/api/approval/approval_triple.pb.go index 3c1de5b..eb011f4 100644 --- a/api/approval/approval_triple.pb.go +++ b/api/approval/approval_triple.pb.go @@ -52,6 +52,8 @@ type ApprovalClient interface { AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment) // 财务报表审批 GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment) + // OA审批 更新 OA系统的 UUID + UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) } type approvalClient struct { @@ -82,6 +84,7 @@ type ApprovalClientImpl struct { RemoveType func(ctx context.Context, in *RemoveRequest) (*StatusResponse, error) AllGroup func(ctx context.Context, in *CommonRequest) (*AllGroupResponse, error) GetName func(ctx context.Context, in *GetNameRequest) (*GetNameResponse, error) + UpdateApprovalOAUUID func(ctx context.Context, in *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) } func (c *ApprovalClientImpl) GetDubboStub(cc *triple.TripleConn) ApprovalClient { @@ -234,6 +237,12 @@ func (c *approvalClient) GetName(ctx context.Context, in *GetNameRequest, opts . return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetName", in, out) } +func (c *approvalClient) UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) { + out := new(UpdateApprovalOAUUIDResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateApprovalOAUUID", in, out) +} + // ApprovalServer is the server API for Approval service. // All implementations must embed UnimplementedApprovalServer // for forward compatibility @@ -262,6 +271,8 @@ type ApprovalServer interface { AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error) // 财务报表审批 GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) + // OA审批 更新 OA系统的 UUID + UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) mustEmbedUnimplementedApprovalServer() } @@ -339,6 +350,9 @@ func (UnimplementedApprovalServer) AllGroup(context.Context, *CommonRequest) (*A func (UnimplementedApprovalServer) GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetName not implemented") } +func (UnimplementedApprovalServer) UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApprovalOAUUID not implemented") +} func (s *UnimplementedApprovalServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -1034,6 +1048,35 @@ func _Approval_GetName_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Approval_UpdateApprovalOAUUID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApprovalOAUUIDReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateApprovalOAUUID", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // Approval_ServiceDesc is the grpc_go.ServiceDesc for Approval service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1133,6 +1176,10 @@ var Approval_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "GetName", Handler: _Approval_GetName_Handler, }, + { + MethodName: "UpdateApprovalOAUUID", + Handler: _Approval_UpdateApprovalOAUUID_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "api/approval/approval.proto", diff --git a/pkg/e/code.go b/pkg/e/code.go index 9d7332a..ef7b44c 100644 --- a/pkg/e/code.go +++ b/pkg/e/code.go @@ -84,4 +84,7 @@ const ( ErrNoTitle = 70013 ErrNoUrl = 70014 ErrNoMethod = 70015 + + // oa + ApprovalIsNotExist = 80001 ) diff --git a/pkg/e/msg.go b/pkg/e/msg.go index 91925d0..4d5d2e4 100644 --- a/pkg/e/msg.go +++ b/pkg/e/msg.go @@ -63,6 +63,9 @@ var MsgFlags = map[int]string{ ErrNoTitle: "缺少标题", ErrNoUrl: "缺少url", ErrNoMethod: "缺少method", + + // oa + ApprovalIsNotExist: "该审批不存在", } // GetMsg 获取状态码对应信息 diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index 1cec001..3b4a2ab 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -171,3 +171,34 @@ func IsSystemType(title string) bool { _, isOk := TypeMap[title] return isOk } + +var OaTypeMap = map[string]string{ + "leave": "leave", // 事假 + "sick": "leave", // 病假 + "annualLeave": "leave", // 年假 + "dayOff": "leave", // 调休 + "maritalLeave": "leave", // 婚假 + "matingCheckLeave": "leave", // 孕检假 + "maternityLeave": "leave", // 产假 + "paternityLeave": "leave", // 陪产假 + "parentalLeave": "leave", // 育儿假 + "nursingLeave": "leave", // 独生子女护理假 + "funeralLeave": "leave", // 丧假 + + "makeUp": "makeUp", // 补卡 + "overTime": "overTime", // 加班 + "outWork": "outWork", // 外勤 + "turnover": "turnover", // 离职 + + "annualLeaveApply": "leaveApply", // 年假申请 + "maritalLeaveApply": "leaveApply", // 婚假申请 + "matingCheckLeaveApply": "leaveApply", // 孕检假申请 + "maternityLeaveApply": "leaveApply", // 产假申请 + "paternityLeaveApply": "leaveApply", // 陪产假申请 + "parentalLeaveApply": "leaveApply", // 育儿假申请 + "nursingLeaveApply": "leaveApply", // 独生子女护理假申请 +} + +func GetOaType(k string) string { + return OaTypeMap[k] +} diff --git a/pkg/service/approval_oa.go b/pkg/service/approval_oa.go new file mode 100644 index 0000000..666e65c --- /dev/null +++ b/pkg/service/approval_oa.go @@ -0,0 +1,44 @@ +package service + +import ( + "context" + "errors" + "github.com/fonchain_enterprise/fonchain-approval/api/approval" + "github.com/fonchain_enterprise/fonchain-approval/pkg/e" + "github.com/fonchain_enterprise/fonchain-approval/pkg/model" + "gorm.io/gorm" +) + +func (a *ApprovalProvider) UpdateApprovalOAUUID(_ context.Context, in *approval.UpdateApprovalOAUUIDReq) (*approval.UpdateApprovalOAUUIDResponse, error) { + + response := &approval.UpdateApprovalOAUUIDResponse{} + approvalOA := new(model.ApprovalOA) + result := model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Find(&approvalOA) + if result.Error != nil { + if result.Error != gorm.ErrRecordNotFound { + return response, errors.New(e.GetMsg(e.ApprovalIsNotExist)) + } + return response, result.Error + } + + if model.GetOaType(in.ApplyType) == "leave" { + approvalOA.Leave.UUID = in.UUID + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave", approvalOA.Leave) + } else if model.GetOaType(in.ApplyType) == "outWork" { + approvalOA.OutWork.UUID = in.UUID + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("outWork", approvalOA.OutWork) + } else if model.GetOaType(in.ApplyType) == "makeUp" { + approvalOA.MakeUp.UUID = in.UUID + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("makeUp", approvalOA.MakeUp) + } else if model.GetOaType(in.ApplyType) == "turnover" { + approvalOA.Turnover.UUID = in.UUID + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("turnover", approvalOA.Turnover) + } else if model.GetOaType(in.ApplyType) == "overTime" { + approvalOA.OverTime.UUID = in.UUID + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("overTime", approvalOA.OverTime) + } else if model.GetOaType(in.ApplyType) == "leaveApply" { + approvalOA.LeaveApply.UUID = in.UUID + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leaveApply", approvalOA.LeaveApply) + } + return response, nil +} From 3840a485719954b560a7e7a27362b16c2fcae669 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 14:27:15 +0800 Subject: [PATCH 10/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 97 +++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 5f93c0c..10b2c88 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -198,35 +198,37 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { - if err := oa.copyOAToModel(in, a); err != nil { + approvalOA, err := oa.copyOAToModel(in, a) + if err != nil { return err } - return DB.Create(&oa).Error + return DB.Create(&approvalOA).Error } -func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) error { - copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true}) - oa.ApprovalID = a.ID +func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) { - if err := oa.addOtherInfoToModel(in, a); err != nil { - return err + copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true}) + approvalOA.ApprovalID = a.ID + + if err := oa.addOtherInfoToModel(in, a, approvalOA); err != nil { + return nil, err } - return nil + return approvalOA, nil } -func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval) error { +func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval, appprovalOA *ApprovalOA) error { if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": - oa.Leave.ApprovalUsers = a.ApprovalUsers - oa.Leave.CopyUsers = a.CopyUsers - if oa.Leave.ApplyType != "" { - oa.Leave.ApplyType = a.ApprovalType.KeyWord + appprovalOA.Leave.ApprovalUsers = a.ApprovalUsers + appprovalOA.Leave.CopyUsers = a.CopyUsers + if appprovalOA.Leave.ApplyType != "" { + appprovalOA.Leave.ApplyType = a.ApprovalType.KeyWord } - oa.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) - oa.Leave.Status = int32(a.Status) + appprovalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) + appprovalOA.Leave.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { @@ -236,13 +238,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.Leave.ApplyTimes[i].M, }) } - oa.Leave.ApplyTimes = applyTimes + appprovalOA.Leave.ApplyTimes = applyTimes case "makeUp": - oa.MakeUp.ApprovalUsers = a.ApprovalUsers - oa.MakeUp.CopyUsers = a.CopyUsers - oa.MakeUp.ApplyType = a.ApprovalType.KeyWord - oa.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) - oa.MakeUp.Status = int32(a.Status) + appprovalOA.MakeUp.ApprovalUsers = a.ApprovalUsers + appprovalOA.MakeUp.CopyUsers = a.CopyUsers + appprovalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord + appprovalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) + appprovalOA.MakeUp.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { @@ -252,13 +254,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, }) } - oa.MakeUp.ApplyTimes = applyTimes + appprovalOA.MakeUp.ApplyTimes = applyTimes case "overTime": - oa.OverTime.ApprovalUsers = a.ApprovalUsers - oa.OverTime.CopyUsers = a.CopyUsers - oa.OverTime.ApplyType = a.ApprovalType.KeyWord - oa.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) - oa.OverTime.Status = int32(a.Status) + appprovalOA.OverTime.ApprovalUsers = a.ApprovalUsers + appprovalOA.OverTime.CopyUsers = a.CopyUsers + appprovalOA.OverTime.ApplyType = a.ApprovalType.KeyWord + appprovalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) + appprovalOA.OverTime.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { @@ -268,13 +270,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.OverTime.ApplyTimes[i].M, }) } - oa.OverTime.ApplyTimes = applyTimes + appprovalOA.OverTime.ApplyTimes = applyTimes case "outWork": - oa.OutWork.ApprovalUsers = a.ApprovalUsers - oa.OutWork.CopyUsers = a.CopyUsers - oa.OutWork.ApplyType = a.ApprovalType.KeyWord - oa.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) - oa.OutWork.Status = int32(a.Status) + appprovalOA.OutWork.ApprovalUsers = a.ApprovalUsers + appprovalOA.OutWork.CopyUsers = a.CopyUsers + appprovalOA.OutWork.ApplyType = a.ApprovalType.KeyWord + appprovalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) + appprovalOA.OutWork.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { @@ -284,13 +286,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.OutWork.ApplyTimes[i].M, }) } - oa.OutWork.ApplyTimes = applyTimes + appprovalOA.OutWork.ApplyTimes = applyTimes case "turnover": - oa.Turnover.ApprovalUsers = a.ApprovalUsers - oa.Turnover.CopyUsers = a.CopyUsers - oa.Turnover.ApplyType = a.ApprovalType.KeyWord - oa.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) - oa.Turnover.Status = int32(a.Status) + appprovalOA.Turnover.ApprovalUsers = a.ApprovalUsers + appprovalOA.Turnover.CopyUsers = a.CopyUsers + appprovalOA.Turnover.ApplyType = a.ApprovalType.KeyWord + appprovalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) + appprovalOA.Turnover.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { @@ -300,13 +302,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.Turnover.ApplyTimes[i].M, }) } - oa.Turnover.ApplyTimes = applyTimes + appprovalOA.Turnover.ApplyTimes = applyTimes case "leaveApply": - oa.LeaveApply.ApprovalUsers = a.ApprovalUsers - oa.LeaveApply.CopyUsers = a.CopyUsers - oa.LeaveApply.ApplyType = a.ApprovalType.KeyWord - oa.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) - oa.LeaveApply.Status = int32(a.Status) + appprovalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers + appprovalOA.LeaveApply.CopyUsers = a.CopyUsers + appprovalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord + appprovalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) + appprovalOA.LeaveApply.Status = int32(a.Status) default: return errors.New("未找到相关审批类型") } @@ -324,11 +326,12 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro oa.ID = entity.ID - if err := oa.copyOAToModel(in, a); err != nil { + approvalOA, err := oa.copyOAToModel(in, a) + if err != nil { return err } - return DB.Model(&oa).Updates(oa).Error + return DB.Model(&oa).Updates(approvalOA).Error } func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) { From 69e0b9858fe82f4a53a369278338ab3eb66f65f4 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 14:33:40 +0800 Subject: [PATCH 11/64] =?UTF-8?q?=E8=BE=93=E5=87=BA=20approval=5Foag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 10b2c88..8521466 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -2,6 +2,7 @@ package model import ( "errors" + "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m" "github.com/jinzhu/copier" @@ -203,6 +204,9 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva return err } + fmt.Println("============== 打印 审批内容 ========== 开始 =========") + fmt.Println("approval_oa info is : ", approvalOA) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") return DB.Create(&approvalOA).Error } From b6b5b0e654da55f8b07654606effc64b6feaea24 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 14:38:17 +0800 Subject: [PATCH 12/64] =?UTF-8?q?=E8=BE=93=E5=87=BA=20approval=5Foa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 8521466..1ca44da 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -198,7 +198,7 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { } func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { - + fmt.Println("保存 approval_oa 信息 ") approvalOA, err := oa.copyOAToModel(in, a) if err != nil { return err From 568526bb2333997dd31af142528c4f39cc5e420c Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 14:47:17 +0800 Subject: [PATCH 13/64] =?UTF-8?q?=E8=BE=93=E5=87=BA=20approval=5Foa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 82 ++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 1ca44da..e8ac4bd 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -199,14 +199,12 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { fmt.Println("保存 approval_oa 信息 ") + approvalOA, err := oa.copyOAToModel(in, a) if err != nil { return err } - fmt.Println("============== 打印 审批内容 ========== 开始 =========") - fmt.Println("approval_oa info is : ", approvalOA) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") return DB.Create(&approvalOA).Error } @@ -215,6 +213,10 @@ func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (ap copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true}) approvalOA.ApprovalID = a.ID + fmt.Println("============== 打印 审批内容 ========== 开始 =========") + fmt.Println("approval_oa info is : ", approvalOA) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") + if err := oa.addOtherInfoToModel(in, a, approvalOA); err != nil { return nil, err } @@ -222,17 +224,17 @@ func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (ap return approvalOA, nil } -func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval, appprovalOA *ApprovalOA) error { +func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *ApprovalOA) error { if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": - appprovalOA.Leave.ApprovalUsers = a.ApprovalUsers - appprovalOA.Leave.CopyUsers = a.CopyUsers - if appprovalOA.Leave.ApplyType != "" { - appprovalOA.Leave.ApplyType = a.ApprovalType.KeyWord + approvalOA.Leave.ApprovalUsers = a.ApprovalUsers + approvalOA.Leave.CopyUsers = a.CopyUsers + if approvalOA.Leave.ApplyType != "" { + approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord } - appprovalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) - appprovalOA.Leave.Status = int32(a.Status) + approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.Leave.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { @@ -242,13 +244,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.Leave.ApplyTimes[i].M, }) } - appprovalOA.Leave.ApplyTimes = applyTimes + approvalOA.Leave.ApplyTimes = applyTimes case "makeUp": - appprovalOA.MakeUp.ApprovalUsers = a.ApprovalUsers - appprovalOA.MakeUp.CopyUsers = a.CopyUsers - appprovalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord - appprovalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) - appprovalOA.MakeUp.Status = int32(a.Status) + approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers + approvalOA.MakeUp.CopyUsers = a.CopyUsers + approvalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord + approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.MakeUp.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { @@ -258,13 +260,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, }) } - appprovalOA.MakeUp.ApplyTimes = applyTimes + approvalOA.MakeUp.ApplyTimes = applyTimes case "overTime": - appprovalOA.OverTime.ApprovalUsers = a.ApprovalUsers - appprovalOA.OverTime.CopyUsers = a.CopyUsers - appprovalOA.OverTime.ApplyType = a.ApprovalType.KeyWord - appprovalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) - appprovalOA.OverTime.Status = int32(a.Status) + approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers + approvalOA.OverTime.CopyUsers = a.CopyUsers + approvalOA.OverTime.ApplyType = a.ApprovalType.KeyWord + approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.OverTime.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { @@ -274,13 +276,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.OverTime.ApplyTimes[i].M, }) } - appprovalOA.OverTime.ApplyTimes = applyTimes + approvalOA.OverTime.ApplyTimes = applyTimes case "outWork": - appprovalOA.OutWork.ApprovalUsers = a.ApprovalUsers - appprovalOA.OutWork.CopyUsers = a.CopyUsers - appprovalOA.OutWork.ApplyType = a.ApprovalType.KeyWord - appprovalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) - appprovalOA.OutWork.Status = int32(a.Status) + approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers + approvalOA.OutWork.CopyUsers = a.CopyUsers + approvalOA.OutWork.ApplyType = a.ApprovalType.KeyWord + approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.OutWork.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { @@ -290,13 +292,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.OutWork.ApplyTimes[i].M, }) } - appprovalOA.OutWork.ApplyTimes = applyTimes + approvalOA.OutWork.ApplyTimes = applyTimes case "turnover": - appprovalOA.Turnover.ApprovalUsers = a.ApprovalUsers - appprovalOA.Turnover.CopyUsers = a.CopyUsers - appprovalOA.Turnover.ApplyType = a.ApprovalType.KeyWord - appprovalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) - appprovalOA.Turnover.Status = int32(a.Status) + approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers + approvalOA.Turnover.CopyUsers = a.CopyUsers + approvalOA.Turnover.ApplyType = a.ApprovalType.KeyWord + approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.Turnover.Status = int32(a.Status) applyTimes := make([]ApplyTime, 0) for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { @@ -306,13 +308,13 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva M: in.ApprovalOA.Turnover.ApplyTimes[i].M, }) } - appprovalOA.Turnover.ApplyTimes = applyTimes + approvalOA.Turnover.ApplyTimes = applyTimes case "leaveApply": - appprovalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers - appprovalOA.LeaveApply.CopyUsers = a.CopyUsers - appprovalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord - appprovalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) - appprovalOA.LeaveApply.Status = int32(a.Status) + approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers + approvalOA.LeaveApply.CopyUsers = a.CopyUsers + approvalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord + approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.LeaveApply.Status = int32(a.Status) default: return errors.New("未找到相关审批类型") } From 3a329b0a05aebcdd9c0b260dc633a5781ffa8f26 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 14:50:15 +0800 Subject: [PATCH 14/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index e8ac4bd..46a66ca 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -209,7 +209,7 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva } func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) { - + approvalOA = new(ApprovalOA) copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true}) approvalOA.ApprovalID = a.ID From 48a3a59c0fd7eee6ed0116153348a65ff627e593 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 14:54:28 +0800 Subject: [PATCH 15/64] =?UTF-8?q?=E5=8F=96=E6=B6=88=20applyTimes=20?= =?UTF-8?q?=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 90 ++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 46a66ca..0349e34 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -236,15 +236,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, - Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, - M: in.ApprovalOA.Leave.ApplyTimes[i].M, - }) - } - approvalOA.Leave.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, + // M: in.ApprovalOA.Leave.ApplyTimes[i].M, + // }) + //} + //approvalOA.Leave.ApplyTimes = applyTimes case "makeUp": approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers approvalOA.MakeUp.CopyUsers = a.CopyUsers @@ -252,15 +252,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, - Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, - M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, - }) - } - approvalOA.MakeUp.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, + // M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, + // }) + //} + //approvalOA.MakeUp.ApplyTimes = applyTimes case "overTime": approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers approvalOA.OverTime.CopyUsers = a.CopyUsers @@ -268,15 +268,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, - Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, - M: in.ApprovalOA.OverTime.ApplyTimes[i].M, - }) - } - approvalOA.OverTime.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, + // M: in.ApprovalOA.OverTime.ApplyTimes[i].M, + // }) + //} + //approvalOA.OverTime.ApplyTimes = applyTimes case "outWork": approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers approvalOA.OutWork.CopyUsers = a.CopyUsers @@ -284,15 +284,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, - Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, - M: in.ApprovalOA.OutWork.ApplyTimes[i].M, - }) - } - approvalOA.OutWork.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, + // M: in.ApprovalOA.OutWork.ApplyTimes[i].M, + // }) + //} + //approvalOA.OutWork.ApplyTimes = applyTimes case "turnover": approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers approvalOA.Turnover.CopyUsers = a.CopyUsers @@ -300,15 +300,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Turnover.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.Turnover.ApplyTimes[i].Date, - Hour: in.ApprovalOA.Turnover.ApplyTimes[i].Hour, - M: in.ApprovalOA.Turnover.ApplyTimes[i].M, - }) - } - approvalOA.Turnover.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.Turnover.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.Turnover.ApplyTimes[i].Hour, + // M: in.ApprovalOA.Turnover.ApplyTimes[i].M, + // }) + //} + //approvalOA.Turnover.ApplyTimes = applyTimes case "leaveApply": approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers approvalOA.LeaveApply.CopyUsers = a.CopyUsers From 25a7a423294afd28b82c5c18e3a61757ccb2a27f Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 15:11:36 +0800 Subject: [PATCH 16/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 46a66ca..4c32dc1 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -200,6 +200,9 @@ func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) { func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { fmt.Println("保存 approval_oa 信息 ") + fmt.Println("approval info :", a.CopyUsers) + fmt.Println("approval info :", a.ApprovalUsers) + approvalOA, err := oa.copyOAToModel(in, a) if err != nil { return err From a24a215b3595ac1221a1548f585e484516488c99 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 15:16:36 +0800 Subject: [PATCH 17/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 4c32dc1..805f6d5 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -208,7 +208,9 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva return err } - return DB.Create(&approvalOA).Error + fmt.Println("存入 数据库 approval_oa 信息 ") + + return DB.Create(approvalOA).Error } func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) { @@ -233,7 +235,7 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva case "leave": approvalOA.Leave.ApprovalUsers = a.ApprovalUsers approvalOA.Leave.CopyUsers = a.CopyUsers - if approvalOA.Leave.ApplyType != "" { + if approvalOA.Leave.ApplyType == "" { approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord } approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) @@ -318,6 +320,9 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.LeaveApply.Status = int32(a.Status) + if approvalOA.Leave.ApplyType == "" { + approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord + } default: return errors.New("未找到相关审批类型") } From 0ec7533677a3479c388b4caa82dcf5d8be8ebb45 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 15:24:28 +0800 Subject: [PATCH 18/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 72 ++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 805f6d5..0743417 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -241,15 +241,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, - Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, - M: in.ApprovalOA.Leave.ApplyTimes[i].M, - }) - } - approvalOA.Leave.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, + // M: in.ApprovalOA.Leave.ApplyTimes[i].M, + // }) + //} + //approvalOA.Leave.ApplyTimes = applyTimes case "makeUp": approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers approvalOA.MakeUp.CopyUsers = a.CopyUsers @@ -257,15 +257,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, - Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, - M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, - }) - } - approvalOA.MakeUp.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, + // M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, + // }) + //} + //approvalOA.MakeUp.ApplyTimes = applyTimes case "overTime": approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers approvalOA.OverTime.CopyUsers = a.CopyUsers @@ -273,15 +273,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, - Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, - M: in.ApprovalOA.OverTime.ApplyTimes[i].M, - }) - } - approvalOA.OverTime.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, + // M: in.ApprovalOA.OverTime.ApplyTimes[i].M, + // }) + //} + //approvalOA.OverTime.ApplyTimes = applyTimes case "outWork": approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers approvalOA.OutWork.CopyUsers = a.CopyUsers @@ -289,15 +289,15 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, - Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, - M: in.ApprovalOA.OutWork.ApplyTimes[i].M, - }) - } - approvalOA.OutWork.ApplyTimes = applyTimes + //applyTimes := make([]ApplyTime, 0) + //for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { + // applyTimes = append(applyTimes, ApplyTime{ + // Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, + // Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, + // M: in.ApprovalOA.OutWork.ApplyTimes[i].M, + // }) + //} + //approvalOA.OutWork.ApplyTimes = applyTimes case "turnover": approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers approvalOA.Turnover.CopyUsers = a.CopyUsers From 5b976105440884bde258d72f5876200127251903 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 15:58:26 +0800 Subject: [PATCH 19/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 3 + pkg/model/approval_oa_test.go | 555 ++++++++++++++++++++++++++++++++++ 2 files changed, 558 insertions(+) create mode 100644 pkg/model/approval_oa_test.go diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 0743417..5c1f15f 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -233,7 +233,10 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": + approvalOA.Leave.ApprovalUsers = make([]ApprovalUser, 0) approvalOA.Leave.ApprovalUsers = a.ApprovalUsers + + approvalOA.Leave.CopyUsers = make([]CopyUser, 0) approvalOA.Leave.CopyUsers = a.CopyUsers if approvalOA.Leave.ApplyType == "" { approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord diff --git a/pkg/model/approval_oa_test.go b/pkg/model/approval_oa_test.go new file mode 100644 index 0000000..096d0ed --- /dev/null +++ b/pkg/model/approval_oa_test.go @@ -0,0 +1,555 @@ +package model + +import ( + "github.com/fonchain_enterprise/fonchain-approval/api/approval" + "gorm.io/plugin/soft_delete" + "reflect" + "testing" + "time" +) + +func TestApprovalOA_BuildResContent(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + a *Approval + request *approval.CreateRequest + } + tests := []struct { + name string + fields fields + args args + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + oa.BuildResContent(tt.args.a, tt.args.request) + }) + } +} + +func TestApprovalOA_DeleteApproval(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + p *Approval + } + tests := []struct { + name string + fields fields + args args + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if err := oa.DeleteApproval(tt.args.p); (err != nil) != tt.wantErr { + t.Errorf("DeleteApproval() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestApprovalOA_GetApproval(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + id uint64 + } + tests := []struct { + name string + fields fields + args args + want *Approval + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + got, err := oa.GetApproval(tt.args.id) + if (err != nil) != tt.wantErr { + t.Errorf("GetApproval() error = %v, wantErr %v", err, tt.wantErr) + return + } + if !reflect.DeepEqual(got, tt.want) { + t.Errorf("GetApproval() got = %v, want %v", got, tt.want) + } + }) + } +} + +func TestApprovalOA_SaveApprovalContent(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + in *approval.CreateRequest + a *Approval + } + tests := []struct { + name string + fields fields + args args + wantErr bool + }{ + { + args: args{ + in: &approval.CreateRequest{ + ID: 0, + Domain: "", + Status: 0, + Type: "", + SubmitterID: 40, + SubmitterName: "超级管理员", + CopyUsers: nil, + Content: "", + Reply: "", + CanView: false, + ApprovalUsers: nil, + CanApproval: false, + WorkFlows: nil, + AllStatus: 0, + NowUserId: 0, + NowUserName: "", + Level: 0, + NowLevel: 0, + CreatedAt: "", + CustomizeInfo: nil, + IsCustom: 0, + TypeName: "", + GroupName: "", + BundlePayPrice: nil, + ApprovalOA: nil, + FinancialForm: nil, + }, + a: &Approval{ + SubmitterID: 40, + Status: 0, + SubmitterName: "", + CopyUsers: nil, + ApprovalUsers: nil, + Type: "", + Level: 0, + NowLevel: 0, + NowUserId: 0, + NowUserName: "", + Content: "", + ValueJson: nil, + Reply: "", + Domain: nil, + Show: nil, + ApprovalType: nil, + Work: nil, + Bundle: nil, + Exhibition: nil, + BundlePayPrice: nil, + ExhibitionReward: nil, + ApprovalWorkFlows: nil, + ApprovalOA: nil, + FinancialForm: nil, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if err := oa.SaveApprovalContent(tt.args.in, tt.args.a); (err != nil) != tt.wantErr { + t.Errorf("SaveApprovalContent() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestApprovalOA_TableName(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + tests := []struct { + name string + fields fields + want string + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if got := oa.TableName(); got != tt.want { + t.Errorf("TableName() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestApprovalOA_UpdateApprovalContent(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + in *approval.CreateRequest + a *Approval + } + tests := []struct { + name string + fields fields + args args + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if err := oa.UpdateApprovalContent(tt.args.in, tt.args.a); (err != nil) != tt.wantErr { + t.Errorf("UpdateApprovalContent() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestApprovalOA_addOtherInfoToModel(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + in *approval.CreateRequest + a *Approval + approvalOA *ApprovalOA + } + tests := []struct { + name string + fields fields + args args + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if err := oa.addOtherInfoToModel(tt.args.in, tt.args.a, tt.args.approvalOA); (err != nil) != tt.wantErr { + t.Errorf("addOtherInfoToModel() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestApprovalOA_addOtherInfoToRpc(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + a *Approval + in *approval.CreateRequest + } + tests := []struct { + name string + fields fields + args args + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if err := oa.addOtherInfoToRpc(tt.args.a, tt.args.in); (err != nil) != tt.wantErr { + t.Errorf("addOtherInfoToRpc() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} + +func TestApprovalOA_copyOAToModel(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + in *approval.CreateRequest + a *Approval + } + + arg := args{} + leave := Leave{} + leave.ActionTime := make([]) + arg.in.ApprovalOA.Leave = + + tests := []struct { + name string + fields fields + args args + wantApprovalOA *ApprovalOA + wantErr bool + }{ + + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + gotApprovalOA, err := oa.copyOAToModel(tt.args.in, tt.args.a) + if (err != nil) != tt.wantErr { + t.Errorf("copyOAToModel() error = %v, wantErr %v", err, tt.wantErr) + return + } + if !reflect.DeepEqual(gotApprovalOA, tt.wantApprovalOA) { + t.Errorf("copyOAToModel() gotApprovalOA = %v, want %v", gotApprovalOA, tt.wantApprovalOA) + } + }) + } +} + +func TestApprovalOA_copyOAToRpc(t *testing.T) { + type fields struct { + ID uint64 + DeletedAt soft_delete.DeletedAt + CreatedAt time.Time + UpdatedAt time.Time + ApprovalID uint64 + LeaveApply *LeaveApply + OutWork *OutWorkApply + MakeUp *MakeUpApply + Turnover *TurnoverApply + OverTime *OverTimeApply + Leave *Leave + } + type args struct { + a *Approval + in *approval.CreateRequest + } + tests := []struct { + name string + fields fields + args args + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + oa := &ApprovalOA{ + ID: tt.fields.ID, + DeletedAt: tt.fields.DeletedAt, + CreatedAt: tt.fields.CreatedAt, + UpdatedAt: tt.fields.UpdatedAt, + ApprovalID: tt.fields.ApprovalID, + LeaveApply: tt.fields.LeaveApply, + OutWork: tt.fields.OutWork, + MakeUp: tt.fields.MakeUp, + Turnover: tt.fields.Turnover, + OverTime: tt.fields.OverTime, + Leave: tt.fields.Leave, + } + if err := oa.copyOAToRpc(tt.args.a, tt.args.in); (err != nil) != tt.wantErr { + t.Errorf("copyOAToRpc() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} From 8584515c4f303943f07edaaf8bd82ca27d769b9b Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 16:02:56 +0800 Subject: [PATCH 20/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 5c1f15f..5c063ca 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -218,14 +218,24 @@ func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (ap copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true}) approvalOA.ApprovalID = a.ID - fmt.Println("============== 打印 审批内容 ========== 开始 =========") + fmt.Println("============== 打印 审批内容 1.0 ========== 开始 =========") fmt.Println("approval_oa info is : ", approvalOA) + fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Println("a CopyUsers info is : ", a.CopyUsers) + fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") if err := oa.addOtherInfoToModel(in, a, approvalOA); err != nil { return nil, err } + fmt.Println("============== 打印 审批内容 2.0 ========== 开始 =========") + fmt.Println("approval_oa info is : ", approvalOA) + fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Println("a CopyUsers info is : ", a.CopyUsers) + fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") + return approvalOA, nil } From 2061ae57f174f3f3749ae78a73b070353ffecc4b Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 16:08:40 +0800 Subject: [PATCH 21/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 5c063ca..2225c07 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -245,9 +245,22 @@ func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approva case "leave": approvalOA.Leave.ApprovalUsers = make([]ApprovalUser, 0) approvalOA.Leave.ApprovalUsers = a.ApprovalUsers + fmt.Println("============== 打印 审批内容 3.0 ========== 开始 =========") + fmt.Println("approval_oa info is : ", approvalOA) + fmt.Println("approval_oa info is : ", approvalOA.Leave) + //fmt.Println("a CopyUsers info is : ", a.CopyUsers) + fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") approvalOA.Leave.CopyUsers = make([]CopyUser, 0) approvalOA.Leave.CopyUsers = a.CopyUsers + fmt.Println("============== 打印 审批内容 4.0 ========== 开始 =========") + fmt.Println("approval_oa info is : ", approvalOA) + fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Println("a CopyUsers info is : ", a.CopyUsers) + //fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") + if approvalOA.Leave.ApplyType == "" { approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord } From 0e381a32dcc55d538448cb0ab7e055f3d8c6d683 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 16:17:08 +0800 Subject: [PATCH 22/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 2225c07..86060ca 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -203,7 +203,7 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva fmt.Println("approval info :", a.CopyUsers) fmt.Println("approval info :", a.ApprovalUsers) - approvalOA, err := oa.copyOAToModel(in, a) + approvalOA, err := copyOAToModel(in, a) if err != nil { return err } @@ -213,7 +213,7 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva return DB.Create(approvalOA).Error } -func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) { +func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) { approvalOA = new(ApprovalOA) copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true}) approvalOA.ApprovalID = a.ID @@ -225,7 +225,7 @@ func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (ap fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") - if err := oa.addOtherInfoToModel(in, a, approvalOA); err != nil { + if err := addOtherInfoToModel(in, a, approvalOA); err != nil { return nil, err } @@ -239,7 +239,7 @@ func (oa *ApprovalOA) copyOAToModel(in *approval.CreateRequest, a *Approval) (ap return approvalOA, nil } -func (oa *ApprovalOA) addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *ApprovalOA) error { +func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *ApprovalOA) error { if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": @@ -366,7 +366,7 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro oa.ID = entity.ID - approvalOA, err := oa.copyOAToModel(in, a) + approvalOA, err := copyOAToModel(in, a) if err != nil { return err } From 58c1ab43f1f058164e54244fcc543ea34a490e0d Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 16:22:29 +0800 Subject: [PATCH 23/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 55 +++------------------------------------- 1 file changed, 3 insertions(+), 52 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 86060ca..a0379b5 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -239,26 +239,22 @@ func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *Approva return approvalOA, nil } -func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *ApprovalOA) error { +func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": - approvalOA.Leave.ApprovalUsers = make([]ApprovalUser, 0) - approvalOA.Leave.ApprovalUsers = a.ApprovalUsers + copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) fmt.Println("============== 打印 审批内容 3.0 ========== 开始 =========") fmt.Println("approval_oa info is : ", approvalOA) fmt.Println("approval_oa info is : ", approvalOA.Leave) - //fmt.Println("a CopyUsers info is : ", a.CopyUsers) fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") - approvalOA.Leave.CopyUsers = make([]CopyUser, 0) - approvalOA.Leave.CopyUsers = a.CopyUsers + copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) fmt.Println("============== 打印 审批内容 4.0 ========== 开始 =========") fmt.Println("approval_oa info is : ", approvalOA) fmt.Println("approval_oa info is : ", approvalOA.Leave) fmt.Println("a CopyUsers info is : ", a.CopyUsers) - //fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") if approvalOA.Leave.ApplyType == "" { @@ -267,15 +263,6 @@ func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *Ap approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) - //applyTimes := make([]ApplyTime, 0) - //for i := 0; i < len(in.ApprovalOA.Leave.ApplyTimes); i++ { - // applyTimes = append(applyTimes, ApplyTime{ - // Date: in.ApprovalOA.Leave.ApplyTimes[i].Date, - // Hour: in.ApprovalOA.Leave.ApplyTimes[i].Hour, - // M: in.ApprovalOA.Leave.ApplyTimes[i].M, - // }) - //} - //approvalOA.Leave.ApplyTimes = applyTimes case "makeUp": approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers approvalOA.MakeUp.CopyUsers = a.CopyUsers @@ -283,15 +270,6 @@ func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *Ap approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) - //applyTimes := make([]ApplyTime, 0) - //for i := 0; i < len(in.ApprovalOA.MakeUp.ApplyTimes); i++ { - // applyTimes = append(applyTimes, ApplyTime{ - // Date: in.ApprovalOA.MakeUp.ApplyTimes[i].Date, - // Hour: in.ApprovalOA.MakeUp.ApplyTimes[i].Hour, - // M: in.ApprovalOA.MakeUp.ApplyTimes[i].M, - // }) - //} - //approvalOA.MakeUp.ApplyTimes = applyTimes case "overTime": approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers approvalOA.OverTime.CopyUsers = a.CopyUsers @@ -299,15 +277,6 @@ func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *Ap approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) - //applyTimes := make([]ApplyTime, 0) - //for i := 0; i < len(in.ApprovalOA.OverTime.ApplyTimes); i++ { - // applyTimes = append(applyTimes, ApplyTime{ - // Date: in.ApprovalOA.OverTime.ApplyTimes[i].Date, - // Hour: in.ApprovalOA.OverTime.ApplyTimes[i].Hour, - // M: in.ApprovalOA.OverTime.ApplyTimes[i].M, - // }) - //} - //approvalOA.OverTime.ApplyTimes = applyTimes case "outWork": approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers approvalOA.OutWork.CopyUsers = a.CopyUsers @@ -315,15 +284,6 @@ func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *Ap approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) - //applyTimes := make([]ApplyTime, 0) - //for i := 0; i < len(in.ApprovalOA.OutWork.ApplyTimes); i++ { - // applyTimes = append(applyTimes, ApplyTime{ - // Date: in.ApprovalOA.OutWork.ApplyTimes[i].Date, - // Hour: in.ApprovalOA.OutWork.ApplyTimes[i].Hour, - // M: in.ApprovalOA.OutWork.ApplyTimes[i].M, - // }) - //} - //approvalOA.OutWork.ApplyTimes = applyTimes case "turnover": approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers approvalOA.Turnover.CopyUsers = a.CopyUsers @@ -331,15 +291,6 @@ func addOtherInfoToModel(in *approval.CreateRequest, a *Approval, approvalOA *Ap approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Turnover.Status = int32(a.Status) - applyTimes := make([]ApplyTime, 0) - for i := 0; i < len(in.ApprovalOA.Turnover.ApplyTimes); i++ { - applyTimes = append(applyTimes, ApplyTime{ - Date: in.ApprovalOA.Turnover.ApplyTimes[i].Date, - Hour: in.ApprovalOA.Turnover.ApplyTimes[i].Hour, - M: in.ApprovalOA.Turnover.ApplyTimes[i].M, - }) - } - approvalOA.Turnover.ApplyTimes = applyTimes case "leaveApply": approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers approvalOA.LeaveApply.CopyUsers = a.CopyUsers From fc0865f83bd541736ede9cad7c9f1625b39ca828 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 16:24:12 +0800 Subject: [PATCH 24/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index a0379b5..c7b903c 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -219,19 +219,19 @@ func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *Approva approvalOA.ApprovalID = a.ID fmt.Println("============== 打印 审批内容 1.0 ========== 开始 =========") - fmt.Println("approval_oa info is : ", approvalOA) - fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) fmt.Println("a CopyUsers info is : ", a.CopyUsers) fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") - if err := addOtherInfoToModel(in, a, approvalOA); err != nil { + if err := addOtherInfoToModel(a, approvalOA); err != nil { return nil, err } fmt.Println("============== 打印 审批内容 2.0 ========== 开始 =========") - fmt.Println("approval_oa info is : ", approvalOA) - fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) fmt.Println("a CopyUsers info is : ", a.CopyUsers) fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") @@ -245,15 +245,15 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { case "leave": copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) fmt.Println("============== 打印 审批内容 3.0 ========== 开始 =========") - fmt.Println("approval_oa info is : ", approvalOA) - fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) fmt.Println("============== 打印 审批内容 4.0 ========== 开始 =========") - fmt.Println("approval_oa info is : ", approvalOA) - fmt.Println("approval_oa info is : ", approvalOA.Leave) + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) fmt.Println("a CopyUsers info is : ", a.CopyUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") From f4c7bc7b03058005d83de7bcf9467c215bc28dea Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 17:13:40 +0800 Subject: [PATCH 25/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index c7b903c..6b89438 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -240,6 +240,12 @@ func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *Approva } func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { + fmt.Println("============== 打印 审批内容 5.0 ========== 开始 =========") + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) + fmt.Printf("a info is : %+v\n", a) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") + if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { switch v { case "leave": From a55529b1bba42981045f74627d72d21d58f390e1 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 17:26:12 +0800 Subject: [PATCH 26/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 130 ++++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 6b89438..bfbffbc 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -178,6 +178,10 @@ var sonMap = map[string]string{ "nursingLeaveApply": "leaveApply", // 独生子女护理假申请 } +func GetSonMapValue(k string) string { + return sonMap[k] +} + // TableName get sql table name.获取数据库表名 func (oa *ApprovalOA) TableName() string { return "approval_oa" @@ -246,70 +250,72 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { fmt.Printf("a info is : %+v\n", a) fmt.Println("============== 打印 审批内容 ========== 结束 =========") - if v, ok := sonMap[a.ApprovalType.KeyWord]; ok { - switch v { - case "leave": - copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) - fmt.Println("============== 打印 审批内容 3.0 ========== 开始 =========") - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) - fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") - - copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) - fmt.Println("============== 打印 审批内容 4.0 ========== 开始 =========") - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) - fmt.Println("a CopyUsers info is : ", a.CopyUsers) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") - - if approvalOA.Leave.ApplyType == "" { - approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord - } - approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) - approvalOA.Leave.Status = int32(a.Status) - - case "makeUp": - approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers - approvalOA.MakeUp.CopyUsers = a.CopyUsers - approvalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord - approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) - approvalOA.MakeUp.Status = int32(a.Status) - - case "overTime": - approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers - approvalOA.OverTime.CopyUsers = a.CopyUsers - approvalOA.OverTime.ApplyType = a.ApprovalType.KeyWord - approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) - approvalOA.OverTime.Status = int32(a.Status) - - case "outWork": - approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers - approvalOA.OutWork.CopyUsers = a.CopyUsers - approvalOA.OutWork.ApplyType = a.ApprovalType.KeyWord - approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) - approvalOA.OutWork.Status = int32(a.Status) - - case "turnover": - approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers - approvalOA.Turnover.CopyUsers = a.CopyUsers - approvalOA.Turnover.ApplyType = a.ApprovalType.KeyWord - approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) - approvalOA.Turnover.Status = int32(a.Status) - - case "leaveApply": - approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers - approvalOA.LeaveApply.CopyUsers = a.CopyUsers - approvalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord - approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) - approvalOA.LeaveApply.Status = int32(a.Status) - if approvalOA.Leave.ApplyType == "" { - approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord - } - default: - return errors.New("未找到相关审批类型") + fmt.Println(sonMap[a.ApprovalType.KeyWord]) + + v := GetSonMapValue(a.ApprovalType.KeyWord) + switch v { + case "leave": + copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) + fmt.Println("============== 打印 审批内容 3.0 ========== 开始 =========") + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) + fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") + + copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) + fmt.Println("============== 打印 审批内容 4.0 ========== 开始 =========") + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) + fmt.Println("a CopyUsers info is : ", a.CopyUsers) + fmt.Println("============== 打印 审批内容 ========== 结束 =========") + + if approvalOA.Leave.ApplyType == "" { + approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord } + approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.Leave.Status = int32(a.Status) + + case "makeUp": + approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers + approvalOA.MakeUp.CopyUsers = a.CopyUsers + approvalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord + approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.MakeUp.Status = int32(a.Status) + + case "overTime": + approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers + approvalOA.OverTime.CopyUsers = a.CopyUsers + approvalOA.OverTime.ApplyType = a.ApprovalType.KeyWord + approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.OverTime.Status = int32(a.Status) + + case "outWork": + approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers + approvalOA.OutWork.CopyUsers = a.CopyUsers + approvalOA.OutWork.ApplyType = a.ApprovalType.KeyWord + approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.OutWork.Status = int32(a.Status) + + case "turnover": + approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers + approvalOA.Turnover.CopyUsers = a.CopyUsers + approvalOA.Turnover.ApplyType = a.ApprovalType.KeyWord + approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.Turnover.Status = int32(a.Status) + + case "leaveApply": + approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers + approvalOA.LeaveApply.CopyUsers = a.CopyUsers + approvalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord + approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) + approvalOA.LeaveApply.Status = int32(a.Status) + if approvalOA.Leave.ApplyType == "" { + approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord + } + default: + return errors.New("未找到相关审批类型") } + return nil } From 73075d6be93e4ef6ca32c84e7b503db511104c97 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 17:29:04 +0800 Subject: [PATCH 27/64] =?UTF-8?q?=E4=BF=AE=E6=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index bfbffbc..866f10c 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -250,9 +250,9 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { fmt.Printf("a info is : %+v\n", a) fmt.Println("============== 打印 审批内容 ========== 结束 =========") - fmt.Println(sonMap[a.ApprovalType.KeyWord]) + fmt.Println(sonMap[a.Type]) - v := GetSonMapValue(a.ApprovalType.KeyWord) + v := GetSonMapValue(a.Type) switch v { case "leave": copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) From 815f7273db53d0a9dd7107ae360260048b314957 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 17:33:33 +0800 Subject: [PATCH 28/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 866f10c..d8b2ad2 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -214,7 +214,7 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva fmt.Println("存入 数据库 approval_oa 信息 ") - return DB.Create(approvalOA).Error + return DB.Create(&approvalOA).Error } func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) { @@ -270,7 +270,7 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { fmt.Println("============== 打印 审批内容 ========== 结束 =========") if approvalOA.Leave.ApplyType == "" { - approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord + approvalOA.Leave.ApplyType = a.Type } approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) From 9e96e6310c2b846d7dca15373ed03553fa7fa488 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 12 May 2023 17:39:31 +0800 Subject: [PATCH 29/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index d8b2ad2..367b565 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -17,12 +17,12 @@ type ApprovalOA struct { CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 ApprovalID uint64 `gorm:"column:approval_id" json:"approvalID"` // 申请的id - LeaveApply *LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` - OutWork *OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` - MakeUp *MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` - Turnover *TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` - OverTime *OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` - Leave *Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` + LeaveApply LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` + OutWork OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` + MakeUp MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` + Turnover TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` + OverTime OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` + Leave Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` } // LeaveApply @@ -278,40 +278,38 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { case "makeUp": approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers approvalOA.MakeUp.CopyUsers = a.CopyUsers - approvalOA.MakeUp.ApplyType = a.ApprovalType.KeyWord + approvalOA.MakeUp.ApplyType = a.Type approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) case "overTime": approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers approvalOA.OverTime.CopyUsers = a.CopyUsers - approvalOA.OverTime.ApplyType = a.ApprovalType.KeyWord + approvalOA.OverTime.ApplyType = a.Type approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) case "outWork": approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers approvalOA.OutWork.CopyUsers = a.CopyUsers - approvalOA.OutWork.ApplyType = a.ApprovalType.KeyWord + approvalOA.OutWork.ApplyType = a.Type approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) case "turnover": approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers approvalOA.Turnover.CopyUsers = a.CopyUsers - approvalOA.Turnover.ApplyType = a.ApprovalType.KeyWord + approvalOA.Turnover.ApplyType = a.Type approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Turnover.Status = int32(a.Status) case "leaveApply": approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers approvalOA.LeaveApply.CopyUsers = a.CopyUsers - approvalOA.LeaveApply.ApplyType = a.ApprovalType.KeyWord + approvalOA.LeaveApply.ApplyType = a.Type approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.LeaveApply.Status = int32(a.Status) - if approvalOA.Leave.ApplyType == "" { - approvalOA.Leave.ApplyType = a.ApprovalType.KeyWord - } + default: return errors.New("未找到相关审批类型") } @@ -346,14 +344,14 @@ func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateReque func (oa *ApprovalOA) copyOAToRpc(a *Approval, in *approval.CreateRequest) error { copier.CopyWithOption(&in.ApprovalOA, a, copier.Option{DeepCopy: true}) - if err := oa.addOtherInfoToRpc(a, in); err != nil { - return err - } + //if err := oa.addOtherInfoToRpc(a, in); err != nil { + // return err + //} return nil } -func (oa *ApprovalOA) addOtherInfoToRpc(a *Approval, in *approval.CreateRequest) error { +/*func (oa *ApprovalOA) addOtherInfoToRpc(a *Approval, in *approval.CreateRequest) error { if oa.Leave != nil { copier.CopyWithOption(&a.ApprovalOA.Leave.ApplyTimes, in.ApprovalOA.Leave.ApplyTimes, copier.Option{DeepCopy: true}) } @@ -376,7 +374,7 @@ func (oa *ApprovalOA) addOtherInfoToRpc(a *Approval, in *approval.CreateRequest) return nil } - +*/ func (oa *ApprovalOA) DeleteApproval(p *Approval) error { return DB.Where(&ApprovalOA{ApprovalID: p.ID}).Delete(&ApprovalOA{}).Error } From fd10885573f54d20ff1ba2b8b38bc0c19dd339d2 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 15 May 2023 09:16:23 +0800 Subject: [PATCH 30/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 70 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 367b565..0254e09 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -1,6 +1,8 @@ package model import ( + "database/sql/driver" + "encoding/json" "errors" "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" @@ -43,6 +45,17 @@ type LeaveApply struct { CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` } +func (la *LeaveApply) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), la) +} + +func (la *LeaveApply) Value() (driver.Value, error) { + + v, err := json.Marshal(la) + + return string(v), err +} + // OutWorkApply // 外勤申请 type OutWorkApply struct { @@ -64,6 +77,17 @@ type OutWorkApply struct { CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` } +func (owa *OutWorkApply) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), owa) +} + +func (owa *OutWorkApply) Value() (driver.Value, error) { + + v, err := json.Marshal(owa) + + return string(v), err +} + // MakeUpApply // 补卡申请 type MakeUpApply struct { @@ -82,6 +106,17 @@ type MakeUpApply struct { CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` } +func (mua *MakeUpApply) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), mua) +} + +func (mua *MakeUpApply) Value() (driver.Value, error) { + + v, err := json.Marshal(mua) + + return string(v), err +} + // TurnoverApply // 离职申请 type TurnoverApply struct { @@ -102,6 +137,17 @@ type TurnoverApply struct { CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` } +func (ta *TurnoverApply) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), ta) +} + +func (ta *TurnoverApply) Value() (driver.Value, error) { + + v, err := json.Marshal(ta) + + return string(v), err +} + // OverTimeApply // 加班申请 type OverTimeApply struct { @@ -121,6 +167,17 @@ type OverTimeApply struct { CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` } +func (ota *OverTimeApply) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), ota) +} + +func (ota *OverTimeApply) Value() (driver.Value, error) { + + v, err := json.Marshal(ota) + + return string(v), err +} + // Leave // 请假 type Leave struct { @@ -141,6 +198,17 @@ type Leave struct { CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"` } +func (l *Leave) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), l) +} + +func (l *Leave) Value() (driver.Value, error) { + + v, err := json.Marshal(l) + + return string(v), err +} + type VerifyFiles []string type ApplyTime struct { @@ -211,7 +279,7 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva if err != nil { return err } - + // TODO 序列化 leave_apply 等 fmt.Println("存入 数据库 approval_oa 信息 ") return DB.Create(&approvalOA).Error From ebc8f61f49b58b850747bd2e36c9a72877157d11 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 15 May 2023 09:20:53 +0800 Subject: [PATCH 31/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 0254e09..5ab1597 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -19,12 +19,12 @@ type ApprovalOA struct { CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 ApprovalID uint64 `gorm:"column:approval_id" json:"approvalID"` // 申请的id - LeaveApply LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` - OutWork OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` - MakeUp MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` - Turnover TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` - OverTime OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` - Leave Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` + LeaveApply *LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"` + OutWork *OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"` + MakeUp *MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"` + Turnover *TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"` + OverTime *OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"` + Leave *Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"` } // LeaveApply From f6a7448cb3fbf828a520ff23fec58a8091aba2d7 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 15 May 2023 09:42:02 +0800 Subject: [PATCH 32/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 57 ++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 5ab1597..edb8330 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -301,41 +301,16 @@ func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *Approva return nil, err } - fmt.Println("============== 打印 审批内容 2.0 ========== 开始 =========") - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) - fmt.Println("a CopyUsers info is : ", a.CopyUsers) - fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") - return approvalOA, nil } func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { - fmt.Println("============== 打印 审批内容 5.0 ========== 开始 =========") - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) - fmt.Printf("a info is : %+v\n", a) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") - - fmt.Println(sonMap[a.Type]) v := GetSonMapValue(a.Type) switch v { case "leave": copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) - fmt.Println("============== 打印 审批内容 3.0 ========== 开始 =========") - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) - fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") - copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) - fmt.Println("============== 打印 审批内容 4.0 ========== 开始 =========") - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) - fmt.Println("a CopyUsers info is : ", a.CopyUsers) - fmt.Println("============== 打印 审批内容 ========== 结束 =========") if approvalOA.Leave.ApplyType == "" { approvalOA.Leave.ApplyType = a.Type @@ -344,36 +319,41 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.Leave.Status = int32(a.Status) case "makeUp": - approvalOA.MakeUp.ApprovalUsers = a.ApprovalUsers - approvalOA.MakeUp.CopyUsers = a.CopyUsers + copier.CopyWithOption(&approvalOA.MakeUp.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&approvalOA.MakeUp.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) + approvalOA.MakeUp.ApplyType = a.Type approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) case "overTime": - approvalOA.OverTime.ApprovalUsers = a.ApprovalUsers - approvalOA.OverTime.CopyUsers = a.CopyUsers + copier.CopyWithOption(&approvalOA.OverTime.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&approvalOA.OverTime.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) + approvalOA.OverTime.ApplyType = a.Type approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) case "outWork": - approvalOA.OutWork.ApprovalUsers = a.ApprovalUsers - approvalOA.OutWork.CopyUsers = a.CopyUsers + copier.CopyWithOption(&approvalOA.OutWork.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&approvalOA.OutWork.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) + approvalOA.OutWork.ApplyType = a.Type approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) case "turnover": - approvalOA.Turnover.ApprovalUsers = a.ApprovalUsers - approvalOA.Turnover.CopyUsers = a.CopyUsers + copier.CopyWithOption(&approvalOA.Turnover.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&approvalOA.Turnover.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) + approvalOA.Turnover.ApplyType = a.Type approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Turnover.Status = int32(a.Status) case "leaveApply": - approvalOA.LeaveApply.ApprovalUsers = a.ApprovalUsers - approvalOA.LeaveApply.CopyUsers = a.CopyUsers + copier.CopyWithOption(&approvalOA.LeaveApply.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&approvalOA.LeaveApply.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) + approvalOA.LeaveApply.ApplyType = a.Type approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.LeaveApply.Status = int32(a.Status) @@ -412,9 +392,10 @@ func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateReque func (oa *ApprovalOA) copyOAToRpc(a *Approval, in *approval.CreateRequest) error { copier.CopyWithOption(&in.ApprovalOA, a, copier.Option{DeepCopy: true}) - //if err := oa.addOtherInfoToRpc(a, in); err != nil { - // return err - //} + fmt.Println("============== 查询 审批内容 1.0 ========== 开始 =========") + fmt.Printf("approval_oa info is : %+v\n", a) + fmt.Printf("in.ApprovalOA info is : %+v\n", in.ApprovalOA) + fmt.Println("============== 查询 审批内容 ========== 结束 =========") return nil } From 02fda9646c8d2c8cf5af71ba54203244eef8cfb0 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 15 May 2023 09:59:38 +0800 Subject: [PATCH 33/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index edb8330..549661c 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -390,7 +390,7 @@ func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateReque } func (oa *ApprovalOA) copyOAToRpc(a *Approval, in *approval.CreateRequest) error { - copier.CopyWithOption(&in.ApprovalOA, a, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&in.ApprovalOA, a.ApprovalOA, copier.Option{DeepCopy: true}) fmt.Println("============== 查询 审批内容 1.0 ========== 开始 =========") fmt.Printf("approval_oa info is : %+v\n", a) From 7edc94505ac54515bb348d11438e99061e2c7747 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 15 May 2023 10:15:59 +0800 Subject: [PATCH 34/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 549661c..3975117 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -389,12 +389,12 @@ func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateReque } } -func (oa *ApprovalOA) copyOAToRpc(a *Approval, in *approval.CreateRequest) error { - copier.CopyWithOption(&in.ApprovalOA, a.ApprovalOA, copier.Option{DeepCopy: true}) +func (oa *ApprovalOA) copyOAToRpc(a *Approval, request *approval.CreateRequest) error { + copier.CopyWithOption(&request.ApprovalOA, a.ApprovalOA, copier.Option{DeepCopy: true}) fmt.Println("============== 查询 审批内容 1.0 ========== 开始 =========") fmt.Printf("approval_oa info is : %+v\n", a) - fmt.Printf("in.ApprovalOA info is : %+v\n", in.ApprovalOA) + fmt.Printf("request.ApprovalOA info is : %+v\n", request.ApprovalOA) fmt.Println("============== 查询 审批内容 ========== 结束 =========") return nil From e23bab0b50edac11e0b9982548760649e8ae54cb Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 15 May 2023 10:24:07 +0800 Subject: [PATCH 35/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 3975117..ea8cf10 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -390,10 +390,12 @@ func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateReque } func (oa *ApprovalOA) copyOAToRpc(a *Approval, request *approval.CreateRequest) error { - copier.CopyWithOption(&request.ApprovalOA, a.ApprovalOA, copier.Option{DeepCopy: true}) - + approvalOA := new(approval.ApprovalOA) + copier.CopyWithOption(&approvalOA, a.ApprovalOA, copier.Option{DeepCopy: true}) + request.ApprovalOA = approvalOA fmt.Println("============== 查询 审批内容 1.0 ========== 开始 =========") fmt.Printf("approval_oa info is : %+v\n", a) + fmt.Printf("approvalOA info is : %+v\n", approvalOA) fmt.Printf("request.ApprovalOA info is : %+v\n", request.ApprovalOA) fmt.Println("============== 查询 审批内容 ========== 结束 =========") From 660bbce0c96d330ebd34aa9fedfcca6cca124451 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 10:46:04 +0800 Subject: [PATCH 36/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9,=E7=94=BB=E5=B1=95?= =?UTF-8?q?=E5=8C=85=E4=BB=98=E6=AC=BE=E5=8D=95=E6=B7=BB=E5=8A=A0rollback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 1154 +++++++++++++++++---------------- api/approval/approval.proto | 1 + pkg/model/approval_oa.go | 35 +- pkg/model/bundle_pay_price.go | 11 +- pkg/service/approval_oa.go | 3 + 5 files changed, 619 insertions(+), 585 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index f90dd41..e82833a 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2498,6 +2498,7 @@ type BundlePayPrice struct { ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` + Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` } func (x *BundlePayPrice) Reset() { @@ -2616,6 +2617,13 @@ func (x *BundlePayPrice) GetArtistName() string { return "" } +func (x *BundlePayPrice) GetRollback() int32 { + if x != nil { + return x.Rollback + } + return 0 +} + type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5770,7 +5778,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xf2, 0x02, 0x0a, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, @@ -5794,584 +5802,586 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0xf2, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, - 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, - 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, - 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, - 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, - 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, - 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, - 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, - 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, - 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, - 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, - 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, - 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, - 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, - 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, - 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, - 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, - 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, - 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, - 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, - 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, - 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, - 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, - 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, - 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, - 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, - 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, - 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, - 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, - 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, - 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xf2, 0x08, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, + 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, + 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, + 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, - 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, - 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, - 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, - 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, - 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, - 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, - 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, - 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, + 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, + 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x4f, 0x41, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, + 0x6f, 0x72, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, + 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, + 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, + 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, + 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, + 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, + 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, + 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, + 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x4d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, 0x65, 0x61, + 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, 0x61, 0x6b, + 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, 0x72, 0x6e, + 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, 0x0a, + 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x0a, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, - 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, - 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, - 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, - 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, - 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, - 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, - 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, - 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, - 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, - 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, - 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, - 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, - 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, - 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, - 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, - 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, - 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, - 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, - 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, - 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, - 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, - 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, - 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, - 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, + 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, + 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, + 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, + 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, + 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, + 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, + 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, + 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, + 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, + 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, + 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, + 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, + 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, + 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, + 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xd6, 0x0d, 0x0a, + 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, - 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, - 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, + 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, + 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, + 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, + 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, + 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, + 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/approval/approval.proto b/api/approval/approval.proto index f55732d..c7e2ebb 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -302,6 +302,7 @@ message BundlePayPrice { uint64 ID = 10 [json_name = "ID"]; uint64 Status = 11 [json_name = "status"]; string ArtistName = 12 [json_name = "artistName"]; + int32 Rollback = 13 [json_name = "rollback"]; } message CreateRequest { diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index ea8cf10..2578396 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -49,7 +49,7 @@ func (la *LeaveApply) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), la) } -func (la *LeaveApply) Value() (driver.Value, error) { +func (la LeaveApply) Value() (driver.Value, error) { v, err := json.Marshal(la) @@ -81,7 +81,7 @@ func (owa *OutWorkApply) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), owa) } -func (owa *OutWorkApply) Value() (driver.Value, error) { +func (owa OutWorkApply) Value() (driver.Value, error) { v, err := json.Marshal(owa) @@ -110,7 +110,7 @@ func (mua *MakeUpApply) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), mua) } -func (mua *MakeUpApply) Value() (driver.Value, error) { +func (mua MakeUpApply) Value() (driver.Value, error) { v, err := json.Marshal(mua) @@ -141,7 +141,7 @@ func (ta *TurnoverApply) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), ta) } -func (ta *TurnoverApply) Value() (driver.Value, error) { +func (ta TurnoverApply) Value() (driver.Value, error) { v, err := json.Marshal(ta) @@ -171,7 +171,7 @@ func (ota *OverTimeApply) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), ota) } -func (ota *OverTimeApply) Value() (driver.Value, error) { +func (ota OverTimeApply) Value() (driver.Value, error) { v, err := json.Marshal(ota) @@ -202,7 +202,7 @@ func (l *Leave) Scan(src interface{}) error { return json.Unmarshal(src.([]byte), l) } -func (l *Leave) Value() (driver.Value, error) { +func (l Leave) Value() (driver.Value, error) { v, err := json.Marshal(l) @@ -211,14 +211,31 @@ func (l *Leave) Value() (driver.Value, error) { type VerifyFiles []string +//type ApplyTime struct { +// Date string `json:"date"` // 日期 2023-05-08 +// Hour string `json:"hour"` // 时间 09:00 +// M string `json:"m"` // 上午|下午 +//} + type ApplyTime struct { - Date string `json:"date"` // 日期 2023-05-08 - Hour string `json:"hour"` // 时间 09:00 - M string `json:"m"` // 上午|下午 + Date string // 日期 2023-05-08 + Hour string // 时间 09:00 + M string // 上午|下午 } type ApplyTimes []ApplyTime +func (at *ApplyTimes) Scan(src interface{}) error { + return json.Unmarshal(src.([]byte), at) +} + +func (at ApplyTimes) Value() (driver.Value, error) { + + v, err := json.Marshal(at) + + return string(v), err +} + var sonMap = map[string]string{ "leave": "leave", // 事假 "sick": "leave", // 病假 diff --git a/pkg/model/bundle_pay_price.go b/pkg/model/bundle_pay_price.go index 0e725d9..683c902 100644 --- a/pkg/model/bundle_pay_price.go +++ b/pkg/model/bundle_pay_price.go @@ -24,6 +24,7 @@ type BundlePayPrice struct { ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` + Rollback int32 `gorm:"type:int;column:rollback;default:'1';comment:是否回滚(默认 1 回滚 2)" json:"rollback"` Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` } @@ -32,8 +33,7 @@ func (m *BundlePayPrice) TableName() string { return "bundle_pay_price" } - -func (m *BundlePayPrice) GetApproval(id uint64) (*Approval,error) { +func (m *BundlePayPrice) GetApproval(id uint64) (*Approval, error) { var entity *Approval if err := DB. @@ -41,10 +41,10 @@ func (m *BundlePayPrice) GetApproval(id uint64) (*Approval,error) { Preload("ApprovalType"). Preload("BundlePayPrice"). First(&entity, id).Error; err != nil { - return entity,err + return entity, err } - return entity,nil + return entity, nil } func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error { @@ -59,6 +59,7 @@ func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Appr m.ArtworkSize = in.BundlePayPrice.ArtworkSize m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName + m.Rollback = in.BundlePayPrice.Rollback return DB.Create(&m).Error } @@ -81,6 +82,7 @@ func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Ap m.ArtworkSize = in.BundlePayPrice.ArtworkSize m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName + m.Rollback = in.BundlePayPrice.Rollback return DB.Model(&m).Updates(m).Error } @@ -100,6 +102,7 @@ func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRe ShowAddress: a.BundlePayPrice.ShowAddress, Status: a.BundlePayPrice.Status, ArtistName: a.BundlePayPrice.ArtistName, + Rollback: a.BundlePayPrice.Rollback, ID: a.BundlePayPrice.ID, } } diff --git a/pkg/service/approval_oa.go b/pkg/service/approval_oa.go index 666e65c..0c85200 100644 --- a/pkg/service/approval_oa.go +++ b/pkg/service/approval_oa.go @@ -3,6 +3,7 @@ package service import ( "context" "errors" + "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/e" "github.com/fonchain_enterprise/fonchain-approval/pkg/model" @@ -23,6 +24,8 @@ func (a *ApprovalProvider) UpdateApprovalOAUUID(_ context.Context, in *approval. if model.GetOaType(in.ApplyType) == "leave" { approvalOA.Leave.UUID = in.UUID + fmt.Println("oa apply UUID is :", in.UUID) + fmt.Println("approvalOA UUID is :", approvalOA.Leave.UUID) model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave", approvalOA.Leave) } else if model.GetOaType(in.ApplyType) == "outWork" { approvalOA.OutWork.UUID = in.UUID From 8588b16469704968a3c053ae08f5b21a4e6a18a5 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 10:52:24 +0800 Subject: [PATCH 37/64] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5=20Bu?= =?UTF-8?q?ndlePayPrice=20->=20rollback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/migration.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/model/migration.go b/pkg/model/migration.go index e7bfcc1..b42d856 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -35,6 +35,7 @@ func migration() { addColumn(&Approval{}, "value_json") addColumn(&BundlePayPrice{}, "status") addColumn(&BundlePayPrice{}, "artist_name") + addColumn(&BundlePayPrice{}, "rollback") addColumn(&ApprovalExhibition{}, "art_exhibition_detail") addColumn(&ApprovalExhibition{}, "artworks") From 88c6f7b29a1d7b19faf54ede999a0968e3371acd Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 11:00:59 +0800 Subject: [PATCH 38/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/bundle_pay_price.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/bundle_pay_price.go b/pkg/model/bundle_pay_price.go index 683c902..c19557e 100644 --- a/pkg/model/bundle_pay_price.go +++ b/pkg/model/bundle_pay_price.go @@ -24,7 +24,7 @@ type BundlePayPrice struct { ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` - Rollback int32 `gorm:"type:int;column:rollback;default:'1';comment:是否回滚(默认 1 回滚 2)" json:"rollback"` + Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` } From 8518a5e87777729d14600b7cecba9d11c1713156 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 11:57:06 +0800 Subject: [PATCH 39/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 2578396..947106f 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -296,7 +296,7 @@ func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approva if err != nil { return err } - // TODO 序列化 leave_apply 等 + fmt.Println("存入 数据库 approval_oa 信息 ") return DB.Create(&approvalOA).Error @@ -310,6 +310,7 @@ func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *Approva fmt.Println("============== 打印 审批内容 1.0 ========== 开始 =========") fmt.Printf("approval_oa info is : %+v\n", approvalOA) fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave) + fmt.Printf("a info is : %+v\n", a) fmt.Println("a CopyUsers info is : ", a.CopyUsers) fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers) fmt.Println("============== 打印 审批内容 ========== 结束 =========") From b770c2de2cb4522dbe55966e52c479c62f9cff1f Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 13:28:23 +0800 Subject: [PATCH 40/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20update=20oa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 947106f..3f62fb4 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -392,13 +392,15 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro } oa.ID = entity.ID + copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true}) + + err := addOtherInfoToModel(a, oa) - approvalOA, err := copyOAToModel(in, a) if err != nil { return err } - return DB.Model(&oa).Updates(approvalOA).Error + return DB.Model(&oa).Updates(oa).Error } func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) { From 2c5f6df7e892d3ff7970067bcce0fd8e837ddcf0 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 13:30:31 +0800 Subject: [PATCH 41/64] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 3f62fb4..28faf8e 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -400,6 +400,14 @@ func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Appro return err } + fmt.Println("============== 更新 审批内容 1.0 ========== 开始 =========") + fmt.Printf("in.approvalOA info is : %+v\n", in.ApprovalOA) + fmt.Printf("a info is : %+v\n", a) + fmt.Printf("oa info is : %+v\n", oa) + fmt.Println("oa CopyUsers info is : ", a.CopyUsers) + fmt.Println("oa ApprovalUsers info is : ", a.ApprovalUsers) + fmt.Println("============== 更新 审批内容 ========== 结束 =========") + return DB.Model(&oa).Updates(oa).Error } From 65a53f905d38bca48b385cf35df74e135d51772f Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 15:42:19 +0800 Subject: [PATCH 42/64] =?UTF-8?q?leaveApply=20=E6=B7=BB=E5=8A=A0=20leaveBa?= =?UTF-8?q?lance=20=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval_oa.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 28faf8e..5d2e9f4 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -39,6 +39,7 @@ type LeaveApply struct { ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` + LeaveBalance int32 `json:"leaveBalance" gorm:"column:leave_balance;type:int;comment:假期余额"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` VerifyFile VerifyFiles `json:"verifyFile" gorm:"column:verify_file;type:json;comment:证明文件(图片|pdf)"` ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` From 9fc156be43f7bdf29d2abb53768945292a43a2c6 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 16 May 2023 16:29:29 +0800 Subject: [PATCH 43/64] =?UTF-8?q?leaveApply=20=E6=B7=BB=E5=8A=A0=20=20leav?= =?UTF-8?q?eBalance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 710 ++++++++++++++++++------------------ api/approval/approval.proto | 1 + 2 files changed, 361 insertions(+), 350 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index e82833a..fddcebc 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -4002,6 +4002,7 @@ type LeaveApply struct { VerifyFile []string `protobuf:"bytes,11,rep,name=VerifyFile,json=verifyFile,proto3" json:"VerifyFile,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,12,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,13,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` + LeaveBalance int32 `protobuf:"varint,14,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` } func (x *LeaveApply) Reset() { @@ -4127,6 +4128,13 @@ func (x *LeaveApply) GetApprovalUsers() []*ApprovalUser { return nil } +func (x *LeaveApply) GetLeaveBalance() int32 { + if x != nil { + return x.LeaveBalance + } + return 0 +} + type OutWorkApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6004,7 +6012,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x0a, 0x4c, 0x65, + 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, @@ -6032,356 +6040,358 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, - 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, - 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, - 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, - 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, - 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, - 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, - 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, - 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, - 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, - 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, - 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, - 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, - 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, - 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, - 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, - 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, - 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, - 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, - 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, - 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, - 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, - 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, - 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, - 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, - 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, - 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, - 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, - 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xd6, 0x0d, 0x0a, - 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, - 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, - 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, - 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, - 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, - 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, - 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, - 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, - 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, - 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, - 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x65, + 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, + 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, + 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, + 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, + 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, + 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, + 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, + 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, + 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, + 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, + 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, + 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, + 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, + 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, + 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, + 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, + 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, + 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, + 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, + 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, + 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, + 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, + 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, + 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, + 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, + 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, + 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, + 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, + 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, + 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/approval/approval.proto b/api/approval/approval.proto index c7e2ebb..51160b9 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -463,6 +463,7 @@ message LeaveApply { repeated string VerifyFile = 11 [json_name = "verifyFile"]; repeated CopyUser CopyUsers = 12 [json_name = "copyUsers"]; repeated ApprovalUser ApprovalUsers = 13 [json_name = "approvalUsers"]; + int32 LeaveBalance = 14 [json_name = "leaveBalance"]; } message OutWorkApply { From b58c70825f65a899f575003dca8610edf2a4fa7b Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 18 May 2023 16:13:28 +0800 Subject: [PATCH 44/64] =?UTF-8?q?oa=20=E5=AE=A1=E6=89=B9=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/m/msg.go | 6 ++++++ pkg/model/approval.go | 33 ++++++++++++++++++++++++++++----- pkg/model/approval_oa.go | 19 ++++++++++++++++++- pkg/model/approval_type.go | 3 +++ pkg/service/approval.go | 10 ++++++++++ 5 files changed, 65 insertions(+), 6 deletions(-) diff --git a/pkg/m/msg.go b/pkg/m/msg.go index fda572a..3edb338 100644 --- a/pkg/m/msg.go +++ b/pkg/m/msg.go @@ -28,3 +28,9 @@ const ( const ( ErrorOperate = "操作顺序错误" ) + +// oa +const ( + ErrorOnceAYear = "此审批类型已存在,请在下一年申请" + ErrorOnce = "此审批类型已存在,无法再次申请" +) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 10831ed..68fc593 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -185,6 +185,29 @@ func ExistPayApproval(in *approval.CreateRequest) bool { return false } +// 余额申请 校验 +func ExistLeaveApplyApproval(in *approval.CreateRequest) bool { + var count int64 + + // 校验 规则 + // 一年一次 多次 一次 + subQuery1 := DB.Model(&Approval{}).Where(&Approval{SubmitterID: in.SubmitterID, Type: in.Type}). + Where("status in (?)", []uint64{StatusDoing, StatusOk}) + + if LeaveBalanceUsefulTime[in.Type] == OnceAYear { + subQuery1.Where("DATE_FORMAT(created_at,%Y) = ?", time.Now().Format("2006")) + } + + subQuery1.Select("id") + + DB.Model(&ApprovalOA{}).Where("approval_id in (?)", subQuery1).Count(&count) + + if count >= 1 { + return true + } + return false +} + func StoreApproval(in *approval.CreateRequest) (*Approval, error) { var entity *Approval @@ -549,7 +572,7 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { modelObj = modelObj.Where(&Approval{Type: in.Type}).Where( DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的 - Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 + Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 modelObj.Count(&count) if len(ids) > 0 { //根据具体id排序 @@ -596,8 +619,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } @@ -655,8 +678,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 5d2e9f4..9bae1ca 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -39,7 +39,7 @@ type LeaveApply struct { ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` - LeaveBalance int32 `json:"leaveBalance" gorm:"column:leave_balance;type:int;comment:假期余额"` + LeaveBalance float32 `json:"leaveBalance" gorm:"column:leave_balance;type:int;comment:假期余额"` Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"` VerifyFile VerifyFiles `json:"verifyFile" gorm:"column:verify_file;type:json;comment:证明文件(图片|pdf)"` ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"` @@ -264,6 +264,23 @@ var sonMap = map[string]string{ "nursingLeaveApply": "leaveApply", // 独生子女护理假申请 } +var OnceAYear = "onceAYear" +var Once = "once" +var More = "more" + +var LeaveBalanceUsefulTime = map[string]string{ + "annualLeaveApply": "onceAYear", // 年假申请 + "parentalLeaveApply": "onceAYear", // 育儿假申请 + "nursingLeaveApply": "onceAYear", // 独生子女护理假申请 + + "matingCheckLeaveApply": "more", // 孕检假申请 + "maternityLeaveApply": "more", // 产假申请 + "paternityLeaveApply": "more", // 陪产假申请 + "funeralLeaveApply": "more", // 丧假申请 + + "maritalLeaveApply": "once", // 婚假申请 +} + func GetSonMapValue(k string) string { return sonMap[k] } diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index 3b4a2ab..095338d 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -64,6 +64,7 @@ var TypeMap = map[string]string{ "paternityLeaveApply": "oa", // 陪产假申请 "parentalLeaveApply": "oa", // 育儿假申请 "nursingLeaveApply": "oa", // 独生子女护理假申请 + "funeralLeaveApply": "oa", // 丧假 "financialFormApply": "", // 财务表单审批 @@ -102,6 +103,7 @@ var keyWordMap = map[string]string{ "陪产假申请": "paternityLeaveApply", // 陪产假申请 "育儿假申请": "parentalLeaveApply", // 育儿假申请 "独生子女护理假申请": "nursingLeaveApply", // 独生子女护理假申请 + "丧假申请": "funeralLeaveApply", // 独生子女护理假申请 "财务表单审批": "financialFormApply", // 财务表单审批 @@ -197,6 +199,7 @@ var OaTypeMap = map[string]string{ "paternityLeaveApply": "leaveApply", // 陪产假申请 "parentalLeaveApply": "leaveApply", // 育儿假申请 "nursingLeaveApply": "leaveApply", // 独生子女护理假申请 + "funeralLeaveApply": "leaveApply", // 丧假申请 } func GetOaType(k string) string { diff --git a/pkg/service/approval.go b/pkg/service/approval.go index 6171157..b4074c7 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -26,6 +26,16 @@ func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateReques } } + if model.LeaveBalanceUsefulTime[in.Type] == model.OnceAYear || model.LeaveBalanceUsefulTime[in.Type] == model.Once { + if model.ExistLeaveApplyApproval(in) == true { + if model.LeaveBalanceUsefulTime[in.Type] == model.OnceAYear { + return response, errors.New(m.ErrorOnceAYear) + } else if model.LeaveBalanceUsefulTime[in.Type] == model.Once { + return response, errors.New(m.ErrorOnce) + } + } + } + entity, err := model.StoreApproval(in) if err != nil { return response, err From a39facfe63c317cced39bb162d875aa73ab0810b Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 18 May 2023 18:12:58 +0800 Subject: [PATCH 45/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/approval_oa.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/service/approval_oa.go b/pkg/service/approval_oa.go index 0c85200..7098c25 100644 --- a/pkg/service/approval_oa.go +++ b/pkg/service/approval_oa.go @@ -29,19 +29,19 @@ func (a *ApprovalProvider) UpdateApprovalOAUUID(_ context.Context, in *approval. model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave", approvalOA.Leave) } else if model.GetOaType(in.ApplyType) == "outWork" { approvalOA.OutWork.UUID = in.UUID - model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("outWork", approvalOA.OutWork) + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("out_work", approvalOA.OutWork) } else if model.GetOaType(in.ApplyType) == "makeUp" { approvalOA.MakeUp.UUID = in.UUID - model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("makeUp", approvalOA.MakeUp) + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("make_up", approvalOA.MakeUp) } else if model.GetOaType(in.ApplyType) == "turnover" { approvalOA.Turnover.UUID = in.UUID model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("turnover", approvalOA.Turnover) } else if model.GetOaType(in.ApplyType) == "overTime" { approvalOA.OverTime.UUID = in.UUID - model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("overTime", approvalOA.OverTime) + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("over_time", approvalOA.OverTime) } else if model.GetOaType(in.ApplyType) == "leaveApply" { approvalOA.LeaveApply.UUID = in.UUID - model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leaveApply", approvalOA.LeaveApply) + model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave_apply", approvalOA.LeaveApply) } return response, nil } From 69d84a0efcb7b72cba5c5d9ebce0ee89542f09a6 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 18 May 2023 18:21:20 +0800 Subject: [PATCH 46/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 68fc593..e453eb6 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -195,7 +195,7 @@ func ExistLeaveApplyApproval(in *approval.CreateRequest) bool { Where("status in (?)", []uint64{StatusDoing, StatusOk}) if LeaveBalanceUsefulTime[in.Type] == OnceAYear { - subQuery1.Where("DATE_FORMAT(created_at,%Y) = ?", time.Now().Format("2006")) + subQuery1.Where(" STR_TO_DATE(created_at,%Y) = ?", time.Now().Format("2006")) } subQuery1.Select("id") From d7af19ef70756c913e710fc31232b44afe80c7f1 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 18 May 2023 18:23:49 +0800 Subject: [PATCH 47/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index e453eb6..2122791 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -195,7 +195,7 @@ func ExistLeaveApplyApproval(in *approval.CreateRequest) bool { Where("status in (?)", []uint64{StatusDoing, StatusOk}) if LeaveBalanceUsefulTime[in.Type] == OnceAYear { - subQuery1.Where(" STR_TO_DATE(created_at,%Y) = ?", time.Now().Format("2006")) + subQuery1.Where(" STR_TO_DATE(created_at,'%Y') = ?", time.Now().Format("2006")) } subQuery1.Select("id") From 19fcc016886c73e8314f853500afea217c4db96e Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 18 May 2023 18:32:17 +0800 Subject: [PATCH 48/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 2122791..74c9db8 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -195,7 +195,7 @@ func ExistLeaveApplyApproval(in *approval.CreateRequest) bool { Where("status in (?)", []uint64{StatusDoing, StatusOk}) if LeaveBalanceUsefulTime[in.Type] == OnceAYear { - subQuery1.Where(" STR_TO_DATE(created_at,'%Y') = ?", time.Now().Format("2006")) + subQuery1.Where(" date_format(created_at,'%Y') = ?", time.Now().Format("2006")) } subQuery1.Select("id") @@ -572,7 +572,7 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { modelObj = modelObj.Where(&Approval{Type: in.Type}).Where( DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的 - Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 + Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 modelObj.Count(&count) if len(ids) > 0 { //根据具体id排序 @@ -619,8 +619,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } @@ -678,8 +678,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { if in.UserID != 0 { modelObj = modelObj.Where( DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). - Where("status != ?", StatusDoing). //完成,我参与审批 - Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, + Where("status != ?", StatusDoing). //完成,我参与审批 + Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) } From 42b13a69450db15f5d3a649f83e997fb0024bc70 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Thu, 18 May 2023 18:35:42 +0800 Subject: [PATCH 49/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/m/msg.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/m/msg.go b/pkg/m/msg.go index 3edb338..9631743 100644 --- a/pkg/m/msg.go +++ b/pkg/m/msg.go @@ -31,6 +31,6 @@ const ( // oa const ( - ErrorOnceAYear = "此审批类型已存在,请在下一年申请" + ErrorOnceAYear = "此审批类型无法在同一年重复申请" ErrorOnce = "此审批类型已存在,无法再次申请" ) From c30f372cd4ba1232345ef54404041643c4d473e7 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 22 May 2023 15:25:45 +0800 Subject: [PATCH 50/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20staffUID=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 48 ++++++++++++++++++------------------- api/approval/approval.proto | 12 +++++----- pkg/model/approval.go | 22 +++++++++++++++++ pkg/model/approval_oa.go | 26 ++++++++++++++------ pkg/service/approval.go | 6 +++++ 5 files changed, 77 insertions(+), 37 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index fddcebc..94ec6a6 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -4141,7 +4141,7 @@ type OutWorkApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4197,11 +4197,11 @@ func (x *OutWorkApply) GetUUID() string { return "" } -func (x *OutWorkApply) GetStaffUID() string { +func (x *OutWorkApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *OutWorkApply) GetStaffNum() string { @@ -4308,7 +4308,7 @@ type MakeUpApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4361,11 +4361,11 @@ func (x *MakeUpApply) GetUUID() string { return "" } -func (x *MakeUpApply) GetStaffUID() string { +func (x *MakeUpApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *MakeUpApply) GetStaffNum() string { @@ -4451,7 +4451,7 @@ type TurnoverApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4459,7 +4459,7 @@ type TurnoverApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - HandoverUID string `protobuf:"bytes,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` + HandoverUID uint64 `protobuf:"varint,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` @@ -4506,11 +4506,11 @@ func (x *TurnoverApply) GetUUID() string { return "" } -func (x *TurnoverApply) GetStaffUID() string { +func (x *TurnoverApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *TurnoverApply) GetStaffNum() string { @@ -4562,11 +4562,11 @@ func (x *TurnoverApply) GetStatus() int32 { return 0 } -func (x *TurnoverApply) GetHandoverUID() string { +func (x *TurnoverApply) GetHandoverUID() uint64 { if x != nil { return x.HandoverUID } - return "" + return 0 } func (x *TurnoverApply) GetHandoverName() string { @@ -4610,7 +4610,7 @@ type OverTimeApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4664,11 +4664,11 @@ func (x *OverTimeApply) GetUUID() string { return "" } -func (x *OverTimeApply) GetStaffUID() string { +func (x *OverTimeApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *OverTimeApply) GetStaffNum() string { @@ -4761,7 +4761,7 @@ type Leave struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4816,11 +4816,11 @@ func (x *Leave) GetUUID() string { return "" } -func (x *Leave) GetStaffUID() string { +func (x *Leave) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *Leave) GetStaffNum() string { @@ -6046,7 +6046,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, @@ -6080,7 +6080,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, @@ -6110,7 +6110,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, @@ -6125,7 +6125,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, @@ -6143,7 +6143,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, @@ -6173,7 +6173,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 51160b9..c0242dd 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -468,7 +468,7 @@ message LeaveApply { message OutWorkApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -487,7 +487,7 @@ message OutWorkApply { message MakeUpApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -503,7 +503,7 @@ message MakeUpApply { message TurnoverApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -511,7 +511,7 @@ message TurnoverApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string HandoverUID = 10 [json_name = "handoverUID"]; + uint64 HandoverUID = 10 [json_name = "handoverUID"]; string HandoverName = 11 [json_name = "handoverName"]; repeated ApplyTime ApplyTimes = 12 [json_name = "applyTimes"]; string Reason = 13 [json_name = "reason"]; @@ -521,7 +521,7 @@ message TurnoverApply { message OverTimeApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -538,7 +538,7 @@ message OverTimeApply { message Leave { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 74c9db8..441a970 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -77,6 +77,8 @@ const ( TypeOa = "oa" // oa 父类 + TypeMakeUp = "makeUp" + TypeFinancialForm = "financialFormApply" ) const ( @@ -208,6 +210,26 @@ func ExistLeaveApplyApproval(in *approval.CreateRequest) bool { return false } +func CheckMakeUpApplyApproval(in *approval.CreateRequest) bool { + var count int64 + + // 校验 规则 + // 一年一次 多次 一次 + subQuery1 := DB.Model(&Approval{}).Where(&Approval{SubmitterID: in.SubmitterID, Type: in.Type}). + Where("status in (?)", []uint64{StatusDoing, StatusOk}) + + subQuery1.Where(" `type` = ? ", in.Type) + + subQuery1.Select("id") + + DB.Model(&ApprovalOA{}).Where("approval_id in (?)", subQuery1).Count(&count) + + if count >= 2 { + return true + } + return false +} + func StoreApproval(in *approval.CreateRequest) (*Approval, error) { var entity *Approval diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 9bae1ca..3b3ad2d 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -31,7 +31,7 @@ type ApprovalOA struct { // 假期额度申请 type LeaveApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -61,7 +61,7 @@ func (la LeaveApply) Value() (driver.Value, error) { // 外勤申请 type OutWorkApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -93,7 +93,7 @@ func (owa OutWorkApply) Value() (driver.Value, error) { // 补卡申请 type MakeUpApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -122,14 +122,14 @@ func (mua MakeUpApply) Value() (driver.Value, error) { // 离职申请 type TurnoverApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` - HandoverUID string `json:"handoverUID" gorm:"column:handover_uid;type:varchar(255);comment:交接人"` + HandoverUID uint64 `json:"handoverUID" gorm:"column:handover_uid;type:int;comment:交接人"` HandoverName string `json:"handoverName" gorm:"column:handover_name;type:varchar(255);comment:交接人姓名"` ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` @@ -153,7 +153,7 @@ func (ta TurnoverApply) Value() (driver.Value, error) { // 加班申请 type OverTimeApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -183,7 +183,7 @@ func (ota OverTimeApply) Value() (driver.Value, error) { // 请假 type Leave struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -353,6 +353,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { } approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) + approvalOA.Leave.StaffUID = a.SubmitterID + approvalOA.Leave.StaffName = a.SubmitterName case "makeUp": copier.CopyWithOption(&approvalOA.MakeUp.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -361,6 +363,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.MakeUp.ApplyType = a.Type approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) + approvalOA.MakeUp.StaffUID = a.SubmitterID + approvalOA.MakeUp.StaffName = a.SubmitterName case "overTime": copier.CopyWithOption(&approvalOA.OverTime.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -369,6 +373,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.OverTime.ApplyType = a.Type approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) + approvalOA.OverTime.StaffUID = a.SubmitterID + approvalOA.OverTime.StaffName = a.SubmitterName case "outWork": copier.CopyWithOption(&approvalOA.OutWork.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -377,6 +383,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.OutWork.ApplyType = a.Type approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) + approvalOA.OutWork.StaffUID = a.SubmitterID + approvalOA.OutWork.StaffName = a.SubmitterName case "turnover": copier.CopyWithOption(&approvalOA.Turnover.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -385,6 +393,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.Turnover.ApplyType = a.Type approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Turnover.Status = int32(a.Status) + approvalOA.Turnover.StaffUID = a.SubmitterID + approvalOA.Turnover.StaffName = a.SubmitterName case "leaveApply": copier.CopyWithOption(&approvalOA.LeaveApply.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -393,6 +403,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.LeaveApply.ApplyType = a.Type approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.LeaveApply.Status = int32(a.Status) + approvalOA.LeaveApply.StaffUID = a.SubmitterID + approvalOA.LeaveApply.StaffName = a.SubmitterName default: return errors.New("未找到相关审批类型") diff --git a/pkg/service/approval.go b/pkg/service/approval.go index b4074c7..ff8cdda 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -36,6 +36,12 @@ func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateReques } } + if in.Type == model.TypeMakeUp { + if model.CheckMakeUpApplyApproval(in) == true { + return response, errors.New(m.ErrorOnce) + } + } + entity, err := model.StoreApproval(in) if err != nil { return response, err From fee84e25a5f952d5e72f83fa146e194b72430a46 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 23 May 2023 10:32:53 +0800 Subject: [PATCH 51/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20oa=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 8 ++++---- api/approval/approval.proto | 2 +- pkg/model/approval_oa.go | 10 +++++++--- pkg/service/approval.go | 10 +++++----- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 94ec6a6..e6f122d 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -3990,7 +3990,7 @@ type LeaveApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4044,11 +4044,11 @@ func (x *LeaveApply) GetUUID() string { return "" } -func (x *LeaveApply) GetStaffUID() string { +func (x *LeaveApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *LeaveApply) GetStaffNum() string { @@ -6015,7 +6015,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index c0242dd..390e4d1 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -451,7 +451,7 @@ message ApprovalOA { message LeaveApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 3b3ad2d..1676c4d 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -348,13 +348,12 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true}) - if approvalOA.Leave.ApplyType == "" { - approvalOA.Leave.ApplyType = a.Type - } + approvalOA.Leave.ApplyType = a.Type approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) approvalOA.Leave.StaffUID = a.SubmitterID approvalOA.Leave.StaffName = a.SubmitterName + approvalOA.Leave.ActionTime = time.Now().Format("2006-01-02 15:04:05") case "makeUp": copier.CopyWithOption(&approvalOA.MakeUp.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -365,6 +364,7 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.MakeUp.Status = int32(a.Status) approvalOA.MakeUp.StaffUID = a.SubmitterID approvalOA.MakeUp.StaffName = a.SubmitterName + approvalOA.MakeUp.ActionTime = time.Now().Format("2006-01-02 15:04:05") case "overTime": copier.CopyWithOption(&approvalOA.OverTime.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -375,6 +375,7 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.OverTime.Status = int32(a.Status) approvalOA.OverTime.StaffUID = a.SubmitterID approvalOA.OverTime.StaffName = a.SubmitterName + approvalOA.OverTime.ActionTime = time.Now().Format("2006-01-02 15:04:05") case "outWork": copier.CopyWithOption(&approvalOA.OutWork.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -385,6 +386,7 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.OutWork.Status = int32(a.Status) approvalOA.OutWork.StaffUID = a.SubmitterID approvalOA.OutWork.StaffName = a.SubmitterName + approvalOA.OutWork.ActionTime = time.Now().Format("2006-01-02 15:04:05") case "turnover": copier.CopyWithOption(&approvalOA.Turnover.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -395,6 +397,7 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.Turnover.Status = int32(a.Status) approvalOA.Turnover.StaffUID = a.SubmitterID approvalOA.Turnover.StaffName = a.SubmitterName + approvalOA.Turnover.ActionTime = time.Now().Format("2006-01-02 15:04:05") case "leaveApply": copier.CopyWithOption(&approvalOA.LeaveApply.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -405,6 +408,7 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.LeaveApply.Status = int32(a.Status) approvalOA.LeaveApply.StaffUID = a.SubmitterID approvalOA.LeaveApply.StaffName = a.SubmitterName + approvalOA.LeaveApply.ActionTime = time.Now().Format("2006-01-02 15:04:05") default: return errors.New("未找到相关审批类型") diff --git a/pkg/service/approval.go b/pkg/service/approval.go index ff8cdda..85ca52c 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -36,11 +36,11 @@ func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateReques } } - if in.Type == model.TypeMakeUp { - if model.CheckMakeUpApplyApproval(in) == true { - return response, errors.New(m.ErrorOnce) - } - } + //if in.Type == model.TypeMakeUp { + // if model.CheckMakeUpApplyApproval(in) == true { + // return response, errors.New(m.ErrorOnce) + // } + //} entity, err := model.StoreApproval(in) if err != nil { From 0fcfc7926f30f166673a03b51e09767d55308040 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 29 May 2023 10:20:45 +0800 Subject: [PATCH 52/64] =?UTF-8?q?setStatus=20=E6=B7=BB=E5=8A=A0=20leaveBal?= =?UTF-8?q?ance=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 1611 ++++++++++++++++++----------------- api/approval/approval.proto | 3 +- pkg/m/msg.go | 3 + pkg/model/approval_oa.go | 21 + pkg/model/approval_type.go | 2 +- pkg/service/approval.go | 4 + 6 files changed, 842 insertions(+), 802 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index e6f122d..da7504e 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -1071,14 +1071,15 @@ type StatusRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` - WorkFlowId uint64 `protobuf:"varint,4,opt,name=WorkFlowId,json=workFlowId,proto3" json:"WorkFlowId,omitempty"` - Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Level uint64 `protobuf:"varint,6,opt,name=Level,json=level,proto3" json:"Level,omitempty"` - Title string `protobuf:"bytes,7,opt,name=Title,json=title,proto3" json:"Title,omitempty"` - UserId uint64 `protobuf:"varint,8,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` + WorkFlowId uint64 `protobuf:"varint,4,opt,name=WorkFlowId,json=workFlowId,proto3" json:"WorkFlowId,omitempty"` + Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Level uint64 `protobuf:"varint,6,opt,name=Level,json=level,proto3" json:"Level,omitempty"` + Title string `protobuf:"bytes,7,opt,name=Title,json=title,proto3" json:"Title,omitempty"` + UserId uint64 `protobuf:"varint,8,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` + LeaveBalance string `protobuf:"bytes,9,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` } func (x *StatusRequest) Reset() { @@ -1169,6 +1170,13 @@ func (x *StatusRequest) GetUserId() uint64 { return 0 } +func (x *StatusRequest) GetLeaveBalance() string { + if x != nil { + return x.LeaveBalance + } + return "" +} + type StatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4002,7 +4010,7 @@ type LeaveApply struct { VerifyFile []string `protobuf:"bytes,11,rep,name=VerifyFile,json=verifyFile,proto3" json:"VerifyFile,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,12,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,13,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` - LeaveBalance int32 `protobuf:"varint,14,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` + LeaveBalance float32 `protobuf:"fixed32,14,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` } func (x *LeaveApply) Reset() { @@ -4128,7 +4136,7 @@ func (x *LeaveApply) GetApprovalUsers() []*ApprovalUser { return nil } -func (x *LeaveApply) GetLeaveBalance() int32 { +func (x *LeaveApply) GetLeaveBalance() float32 { if x != nil { return x.LeaveBalance } @@ -5582,7 +5590,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x32, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xda, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, @@ -5596,802 +5604,805 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd0, 0x01, - 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, - 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, - 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, - 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x85, - 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x61, 0x69, 0x6c, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x61, 0x69, - 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, - 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x79, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0c, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, + 0x73, 0x73, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6f, 0x69, 0x6e, + 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x6f, + 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x46, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7e, 0x0a, 0x06, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, 0x04, 0x53, - 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, - 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0c, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x6f, - 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x57, 0x6f, 0x72, 0x6b, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, - 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2d, - 0x0a, 0x08, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x4f, 0x0a, - 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x61, 0x72, 0x74, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, - 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xf8, - 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x69, 0x64, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, - 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x4e, 0x0a, - 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0x85, 0x03, 0x0a, 0x07, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, - 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x53, - 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, - 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x44, 0x22, 0xa7, 0x03, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, - 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, - 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, - 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x0e, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, - 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x68, 0x6f, - 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xf2, 0x08, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, - 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, - 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, - 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, - 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x4f, 0x41, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, - 0x6f, 0x72, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, - 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, - 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, + 0x0c, 0x6d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, + 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x7e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, + 0x4c, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, + 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, - 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, - 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, - 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, - 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x0a, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, + 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, + 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, - 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x61, + 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, + 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x12, 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0x85, 0x03, + 0x0a, 0x07, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, + 0x6c, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x12, + 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x6e, + 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x12, + 0x24, 0x0a, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x44, 0x22, 0xa7, 0x03, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, + 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, + 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, + 0x75, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, + 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x73, 0x53, + 0x68, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, + 0x8e, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, + 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, + 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x22, 0xf2, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, + 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, + 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, + 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, + 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, + 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, + 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, + 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, + 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, + 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, + 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, - 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, - 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, - 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x4d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, 0x65, 0x61, - 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, 0x61, 0x6b, - 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, 0x72, 0x6e, - 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, 0x0a, - 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0a, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x65, - 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, - 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, - 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, - 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, - 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, - 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, - 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, - 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, - 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, - 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, - 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, - 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, - 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, - 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, - 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, - 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, - 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, - 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, - 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, - 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, - 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, - 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, - 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, - 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, - 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, - 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, - 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, - 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, - 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, - 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, - 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, - 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, - 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, - 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, - 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, - 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, - 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, - 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, + 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, + 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, + 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, + 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, + 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, + 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, + 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, + 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, + 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, + 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, + 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, + 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, + 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, + 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, + 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, + 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, + 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, + 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa9, + 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, + 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, + 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, + 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, + 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, + 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, + 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, + 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, + 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, + 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, - 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, - 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, + 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, + 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, + 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, + 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, + 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, + 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, + 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, + 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, + 0x6f, 0x74, 0x65, 0x73, 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, + 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, + 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, + 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, + 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, + 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, + 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, + 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, + 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, + 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 390e4d1..20e7ab0 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -148,6 +148,7 @@ message StatusRequest { uint64 Level = 6 [json_name = "level"]; string Title = 7 [json_name = "title"]; uint64 UserId = 8 [json_name = "userId"]; + string LeaveBalance = 9 [json_name = "leaveBalance"]; } message StatusResponse { @@ -463,7 +464,7 @@ message LeaveApply { repeated string VerifyFile = 11 [json_name = "verifyFile"]; repeated CopyUser CopyUsers = 12 [json_name = "copyUsers"]; repeated ApprovalUser ApprovalUsers = 13 [json_name = "approvalUsers"]; - int32 LeaveBalance = 14 [json_name = "leaveBalance"]; + float LeaveBalance = 14 [json_name = "leaveBalance"]; } message OutWorkApply { diff --git a/pkg/m/msg.go b/pkg/m/msg.go index 9631743..aa24a48 100644 --- a/pkg/m/msg.go +++ b/pkg/m/msg.go @@ -23,6 +23,9 @@ const ( ErrorAlreadySettingView = "已经设置过已读" ErrorWrongNum = "数量设置错误" ErrorAlreadyExist = "已经存在" + + // 更新 leaveBalance 提示信息 + ErrorUpdateLeaveBalance = "更新余额错误" ) const ( diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 1676c4d..d058773 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -491,3 +491,24 @@ func (oa *ApprovalOA) copyOAToRpc(a *Approval, request *approval.CreateRequest) func (oa *ApprovalOA) DeleteApproval(p *Approval) error { return DB.Where(&ApprovalOA{ApprovalID: p.ID}).Delete(&ApprovalOA{}).Error } + +func UpdateLeaveBalance(p *Approval, leaveBalance string) error { + if leaveBalance == "" { + return nil + } + + approvalOA := new(ApprovalOA) + + copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) + + balance, _ := strconv.ParseFloat(leaveBalance, 10) + + approvalOA.LeaveApply.LeaveBalance = float32(balance) + + fmt.Println("============== 更新 余额申请 余额 ========== 开始 =========") + fmt.Printf("approval info is : %+v\n", p) + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Println("============== 更新 余额申请 余额 ========== 结束 =========") + + return DB.Model(&ApprovalOA{}).Updates(approvalOA).Error +} diff --git a/pkg/model/approval_type.go b/pkg/model/approval_type.go index 095338d..c7b9d5a 100644 --- a/pkg/model/approval_type.go +++ b/pkg/model/approval_type.go @@ -103,7 +103,7 @@ var keyWordMap = map[string]string{ "陪产假申请": "paternityLeaveApply", // 陪产假申请 "育儿假申请": "parentalLeaveApply", // 育儿假申请 "独生子女护理假申请": "nursingLeaveApply", // 独生子女护理假申请 - "丧假申请": "funeralLeaveApply", // 独生子女护理假申请 + "丧假申请": "funeralLeaveApply", // 丧假申请 "财务表单审批": "financialFormApply", // 财务表单审批 diff --git a/pkg/service/approval.go b/pkg/service/approval.go index 85ca52c..d35f827 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -132,6 +132,10 @@ func (a *ApprovalProvider) SetStatus(ctx context.Context, in *approval.StatusReq return response, errors.New(m.ErrorWrongStatus) } + if err := model.UpdateLeaveBalance(approvalObj, in.LeaveBalance); err != nil { + return response, errors.New(m.ErrorUpdateLeaveBalance) + } + // 审批人审批内容 if in.Status == model.StatusFail { err = approvalObj.Refuse(in.Reply, in.WorkFlowId) From ff228f6f7a76126c017edd73a9c631e553e70572 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 29 May 2023 13:06:24 +0800 Subject: [PATCH 53/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 23 +++++++++++++++++++++++ pkg/model/approval_oa.go | 21 --------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 441a970..21eca97 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -8,9 +8,11 @@ import ( "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/page" msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m" + "github.com/jinzhu/copier" "gorm.io/gorm" "gorm.io/gorm/clause" "gorm.io/plugin/soft_delete" + "strconv" "time" ) @@ -848,6 +850,27 @@ func (m *Approval) operateStatus(status uint8, reply string, workFlowId uint64) return workFlow.Pass(reply) } +func UpdateLeaveBalance(p *Approval, leaveBalance string) error { + if leaveBalance == "" { + return nil + } + + approvalOA := new(ApprovalOA) + + copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) + + balance, _ := strconv.ParseFloat(leaveBalance, 10) + + approvalOA.LeaveApply.LeaveBalance = float32(balance) + + fmt.Println("============== 更新 余额申请 余额 ========== 开始 =========") + fmt.Printf("approval info is : %+v\n", p) + fmt.Printf("approval_oa info is : %+v\n", approvalOA) + fmt.Println("============== 更新 余额申请 余额 ========== 结束 =========") + + return DB.Model(&ApprovalOA{}).Updates(approvalOA).Error +} + func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, error) { switch typeFiled { case TypeContent: diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index d058773..1676c4d 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -491,24 +491,3 @@ func (oa *ApprovalOA) copyOAToRpc(a *Approval, request *approval.CreateRequest) func (oa *ApprovalOA) DeleteApproval(p *Approval) error { return DB.Where(&ApprovalOA{ApprovalID: p.ID}).Delete(&ApprovalOA{}).Error } - -func UpdateLeaveBalance(p *Approval, leaveBalance string) error { - if leaveBalance == "" { - return nil - } - - approvalOA := new(ApprovalOA) - - copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) - - balance, _ := strconv.ParseFloat(leaveBalance, 10) - - approvalOA.LeaveApply.LeaveBalance = float32(balance) - - fmt.Println("============== 更新 余额申请 余额 ========== 开始 =========") - fmt.Printf("approval info is : %+v\n", p) - fmt.Printf("approval_oa info is : %+v\n", approvalOA) - fmt.Println("============== 更新 余额申请 余额 ========== 结束 =========") - - return DB.Model(&ApprovalOA{}).Updates(approvalOA).Error -} From 6ccf358f6ccb9ac2fe41c9b8c8cc3854c6d691ad Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 29 May 2023 13:34:35 +0800 Subject: [PATCH 54/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 21eca97..2ab6d6d 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -8,7 +8,6 @@ import ( "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/page" msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m" - "github.com/jinzhu/copier" "gorm.io/gorm" "gorm.io/gorm/clause" "gorm.io/plugin/soft_delete" @@ -857,7 +856,12 @@ func UpdateLeaveBalance(p *Approval, leaveBalance string) error { approvalOA := new(ApprovalOA) - copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) + err := DB.Model(&ApprovalOA{}).Where("approval_id = ?", p.ID).Find(&approvalOA).Error + if err != nil { + return err + } + + //copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) balance, _ := strconv.ParseFloat(leaveBalance, 10) From dcebb9942bcb49292133fad5fdbde52ad7603d09 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 29 May 2023 13:41:59 +0800 Subject: [PATCH 55/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 2ab6d6d..c8761e5 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -865,14 +865,14 @@ func UpdateLeaveBalance(p *Approval, leaveBalance string) error { balance, _ := strconv.ParseFloat(leaveBalance, 10) - approvalOA.LeaveApply.LeaveBalance = float32(balance) + //approvalOA.LeaveApply.LeaveBalance = float32(balance) fmt.Println("============== 更新 余额申请 余额 ========== 开始 =========") fmt.Printf("approval info is : %+v\n", p) fmt.Printf("approval_oa info is : %+v\n", approvalOA) fmt.Println("============== 更新 余额申请 余额 ========== 结束 =========") - return DB.Model(&ApprovalOA{}).Updates(approvalOA).Error + return DB.Model(&ApprovalOA{}).Where("id = ?", approvalOA.ID).Updates(map[string]interface{}{"leave_balance": balance}).Error } func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, error) { From 15db7ce4138eae5491aff251a21fbab132723e9e Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 29 May 2023 14:24:00 +0800 Subject: [PATCH 56/64] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20leaveApply?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/approval.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/model/approval.go b/pkg/model/approval.go index c8761e5..8e16e9f 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -8,6 +8,7 @@ import ( "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/page" msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m" + "github.com/jinzhu/copier" "gorm.io/gorm" "gorm.io/gorm/clause" "gorm.io/plugin/soft_delete" @@ -861,18 +862,19 @@ func UpdateLeaveBalance(p *Approval, leaveBalance string) error { return err } - //copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) + copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true}) balance, _ := strconv.ParseFloat(leaveBalance, 10) - //approvalOA.LeaveApply.LeaveBalance = float32(balance) + approvalOA.LeaveApply.LeaveBalance = float32(balance) fmt.Println("============== 更新 余额申请 余额 ========== 开始 =========") fmt.Printf("approval info is : %+v\n", p) fmt.Printf("approval_oa info is : %+v\n", approvalOA) fmt.Println("============== 更新 余额申请 余额 ========== 结束 =========") - return DB.Model(&ApprovalOA{}).Where("id = ?", approvalOA.ID).Updates(map[string]interface{}{"leave_balance": balance}).Error + //return DB.Model(&ApprovalOA{}).Where("id = ?", approvalOA.ID).Updates(map[string]interface{}{"leave_apply": approvalOA.LeaveApply}).Error + return DB.Model(&ApprovalOA{}).Where("id = ?", approvalOA.ID).Updates(approvalOA).Error } func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, error) { From 978ff2f882c7084ba38873fd76ecdcda0bcff48e Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 10:46:46 +0800 Subject: [PATCH 57/64] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=8D=95=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20=E6=93=8D=E4=BD=9C=E6=95=B0=E9=87=8F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 708 +++++++++++++++++----------------- api/approval/approval.proto | 1 + pkg/model/bundle_pay_price.go | 62 +-- pkg/model/migration.go | 1 + 4 files changed, 394 insertions(+), 378 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index d77063e..deb0ddc 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2486,19 +2486,20 @@ type BundlePayPrice struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` - ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` - ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` - ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` - ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` - ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` - ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` - Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` + ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` + ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` + ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` + ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` + ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` + ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` + ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` + Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` + OperationTimes int32 `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` } func (x *BundlePayPrice) Reset() { @@ -2624,6 +2625,13 @@ func (x *BundlePayPrice) GetRollback() int32 { return 0 } +func (x *BundlePayPrice) GetOperationTimes() int32 { + if x != nil { + return x.OperationTimes + } + return 0 +} + type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4548,7 +4556,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xb6, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, @@ -4573,346 +4581,348 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xbc, 0x08, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, - 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, - 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, - 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, - 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x22, 0xbc, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, + 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, + 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, + 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, + 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, + 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, + 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, + 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, + 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, + 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, + 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, + 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, + 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, + 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, + 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, - 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, - 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, - 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, - 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, - 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, - 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, - 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, - 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, - 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, - 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, - 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, - 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, - 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, - 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, - 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, - 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, - 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, - 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, - 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, - 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, - 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, - 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, - 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, + 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, + 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, + 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, + 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, + 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, + 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, + 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, + 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, + 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, + 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, + 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, + 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, + 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, + 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, - 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, + 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, + 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, + 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, + 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, + 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, + 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, + 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, + 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, - 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, + 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/approval/approval.proto b/api/approval/approval.proto index c248d8e..ab189c7 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -300,6 +300,7 @@ message BundlePayPrice { uint64 Status = 11 [json_name = "status"]; string ArtistName = 12 [json_name = "artistName"]; int32 Rollback = 13 [json_name = "rollback"]; + int32 OperationTimes = 14 [json_name = "operationTimes"]; } message CreateRequest { diff --git a/pkg/model/bundle_pay_price.go b/pkg/model/bundle_pay_price.go index c19557e..7c7777e 100644 --- a/pkg/model/bundle_pay_price.go +++ b/pkg/model/bundle_pay_price.go @@ -10,22 +10,23 @@ import ( // BundlePayPrice 画展包付款单审批 type BundlePayPrice struct { - ID uint64 `gorm:"column:id" json:"id"` - DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 - CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 - UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 - ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` - ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` - ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` - ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 - ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` - ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` - ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` - ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` - ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` - ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` - Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` - Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` + ID uint64 `gorm:"column:id" json:"id"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 + CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 + ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` + ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` + ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` + ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 + ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` + ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` + ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` + ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` + ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` + ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` + Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` + OperationTimes int32 `gorm:"type:int;column:operation_times;default:1;comment:操作次数" json:"operationTimes"` + Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` } // TableName get sql table name.获取数据库表名 @@ -60,6 +61,7 @@ func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Appr m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName m.Rollback = in.BundlePayPrice.Rollback + m.OperationTimes = in.BundlePayPrice.OperationTimes return DB.Create(&m).Error } @@ -83,6 +85,7 @@ func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Ap m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName m.Rollback = in.BundlePayPrice.Rollback + m.OperationTimes = in.BundlePayPrice.OperationTimes return DB.Model(&m).Updates(m).Error } @@ -91,19 +94,20 @@ func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRe if a.BundlePayPrice != nil { request.BundlePayPrice = &approval.BundlePayPrice{ - ShowUid: a.BundlePayPrice.ShowUid, - ApprovalID: a.BundlePayPrice.ApprovalID, - ShowName: a.BundlePayPrice.ShowName, - ReceivedAt: a.BundlePayPrice.ReceivedAt, - ShowDate: a.BundlePayPrice.ShowDate, - ShowLowPrice: a.BundlePayPrice.ShowLowPrice, - ArtworkNum: a.BundlePayPrice.ArtworkNum, - ArtworkSize: a.BundlePayPrice.ArtworkSize, - ShowAddress: a.BundlePayPrice.ShowAddress, - Status: a.BundlePayPrice.Status, - ArtistName: a.BundlePayPrice.ArtistName, - Rollback: a.BundlePayPrice.Rollback, - ID: a.BundlePayPrice.ID, + ShowUid: a.BundlePayPrice.ShowUid, + ApprovalID: a.BundlePayPrice.ApprovalID, + ShowName: a.BundlePayPrice.ShowName, + ReceivedAt: a.BundlePayPrice.ReceivedAt, + ShowDate: a.BundlePayPrice.ShowDate, + ShowLowPrice: a.BundlePayPrice.ShowLowPrice, + ArtworkNum: a.BundlePayPrice.ArtworkNum, + ArtworkSize: a.BundlePayPrice.ArtworkSize, + ShowAddress: a.BundlePayPrice.ShowAddress, + Status: a.BundlePayPrice.Status, + ArtistName: a.BundlePayPrice.ArtistName, + Rollback: a.BundlePayPrice.Rollback, + OperationTimes: a.BundlePayPrice.OperationTimes, + ID: a.BundlePayPrice.ID, } } } diff --git a/pkg/model/migration.go b/pkg/model/migration.go index 179f8dd..fd86304 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -34,6 +34,7 @@ func migration() { addColumn(&BundlePayPrice{}, "status") addColumn(&BundlePayPrice{}, "artist_name") addColumn(&BundlePayPrice{}, "rollback") + addColumn(&BundlePayPrice{}, "operation_times") addColumn(&ApprovalExhibition{}, "art_exhibition_detail") addColumn(&ApprovalExhibition{}, "artworks") From 5447cee77b162c4b20b6744410ebe8d5c81bab5f Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:00:43 +0800 Subject: [PATCH 58/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 775 ------------------------------------ 1 file changed, 775 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index a75b541..8e48e2a 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2494,21 +2494,6 @@ type BundlePayPrice struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields -<<<<<<< HEAD - ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` - ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` - ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` - ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` - ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` - ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` - ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` - Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` -======= ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` @@ -2523,7 +2508,6 @@ type BundlePayPrice struct { ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` OperationTimes int32 `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` ->>>>>>> jhc } func (x *BundlePayPrice) Reset() { @@ -2649,8 +2633,6 @@ func (x *BundlePayPrice) GetRollback() int32 { return 0 } -<<<<<<< HEAD -======= func (x *BundlePayPrice) GetOperationTimes() int32 { if x != nil { return x.OperationTimes @@ -2658,7 +2640,6 @@ func (x *BundlePayPrice) GetOperationTimes() int32 { return 0 } ->>>>>>> jhc type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5677,761 +5658,6 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, -<<<<<<< HEAD - 0x0c, 0x6d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, - 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x7e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, - 0x4c, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, - 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, - 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, - 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, - 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x61, - 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, - 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0d, 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x44, 0x12, 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, - 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0x85, 0x03, - 0x0a, 0x07, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, - 0x6c, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x12, - 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x6e, - 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x12, - 0x24, 0x0a, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x44, 0x22, 0xa7, 0x03, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, - 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, - 0x75, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, - 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x73, 0x53, - 0x68, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, - 0x8e, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, - 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, - 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x22, 0xf2, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, - 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, - 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, - 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, - 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, - 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, - 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, - 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, - 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, - 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, - 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, - 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, - 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, - 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, - 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, - 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, - 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, - 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, - 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, - 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, - 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, - 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, - 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, - 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, - 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, - 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, - 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, - 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, - 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa9, - 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, - 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, - 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, - 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, - 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, - 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, - 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, - 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, - 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, - 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, - 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, - 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, - 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, - 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, - 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, - 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, - 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, - 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, - 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, - 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, - 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, - 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, - 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, - 0x6f, 0x74, 0x65, 0x73, 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, - 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, - 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, - 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, - 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, - 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, - 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, - 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, - 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, - 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, - 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, - 0x12, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, - 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, - 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, - 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -======= 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, @@ -6938,7 +6164,6 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ->>>>>>> jhc } var ( From 71f53107c319c788ed86ea808117bc26b392b22a Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:31:11 +0800 Subject: [PATCH 59/64] =?UTF-8?q?=E7=A9=BA=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 4 ++-- api/approval/approval.proto | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index deb0ddc..7912a80 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2499,7 +2499,7 @@ type BundlePayPrice struct { Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` - OperationTimes int32 `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` + OperationTimes int32 `protobuf:"varint,15,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` } func (x *BundlePayPrice) Reset() { @@ -4582,7 +4582,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0xbc, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index ab189c7..84e6699 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -300,7 +300,7 @@ message BundlePayPrice { uint64 Status = 11 [json_name = "status"]; string ArtistName = 12 [json_name = "artistName"]; int32 Rollback = 13 [json_name = "rollback"]; - int32 OperationTimes = 14 [json_name = "operationTimes"]; + int32 OperationTimes = 15 [json_name = "operationTimes"]; } message CreateRequest { From 15bc70493b28eba766297ae9421c0a61a4f043c1 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:36:38 +0800 Subject: [PATCH 60/64] xiugai --- api/approval/approval.pb.go | 708 +++++++++++++++++----------------- api/approval/approval.proto | 2 +- pkg/model/bundle_pay_price.go | 66 ++-- pkg/model/migration.go | 2 +- 4 files changed, 384 insertions(+), 394 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 7912a80..2860ed8 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2486,20 +2486,19 @@ type BundlePayPrice struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` - ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` - ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` - ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` - ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` - ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` - ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` - Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` - OperationTimes int32 `protobuf:"varint,15,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` + ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` + ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` + ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` + ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` + ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` + ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` + ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` + Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` // int32 OperationTimes = 15 [json_name = "operationTimes"]; } func (x *BundlePayPrice) Reset() { @@ -2625,13 +2624,6 @@ func (x *BundlePayPrice) GetRollback() int32 { return 0 } -func (x *BundlePayPrice) GetOperationTimes() int32 { - if x != nil { - return x.OperationTimes - } - return 0 -} - type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4556,7 +4548,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xb6, 0x03, 0x0a, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, @@ -4581,348 +4573,346 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x22, 0xbc, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, - 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, - 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, - 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, - 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, - 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, - 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, - 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, - 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, - 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, - 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, - 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, - 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, - 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, - 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, - 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, - 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xbc, 0x08, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, + 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, + 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, + 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, + 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, + 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, - 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, - 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, - 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, - 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, - 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, - 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, - 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, - 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, - 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, - 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, - 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, - 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, - 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, - 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, - 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, - 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, + 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, + 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, + 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, + 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, + 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, + 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, + 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, + 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, + 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, + 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, + 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, + 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, + 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, + 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, + 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, + 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, + 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, + 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, + 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, + 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, + 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, + 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, + 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, + 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, - 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, - 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, - 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, - 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, - 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, - 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, - 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, - 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, + 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, + 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, + 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 84e6699..c747c4a 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -300,7 +300,7 @@ message BundlePayPrice { uint64 Status = 11 [json_name = "status"]; string ArtistName = 12 [json_name = "artistName"]; int32 Rollback = 13 [json_name = "rollback"]; - int32 OperationTimes = 15 [json_name = "operationTimes"]; +// int32 OperationTimes = 15 [json_name = "operationTimes"]; } message CreateRequest { diff --git a/pkg/model/bundle_pay_price.go b/pkg/model/bundle_pay_price.go index 7c7777e..d17524b 100644 --- a/pkg/model/bundle_pay_price.go +++ b/pkg/model/bundle_pay_price.go @@ -10,23 +10,23 @@ import ( // BundlePayPrice 画展包付款单审批 type BundlePayPrice struct { - ID uint64 `gorm:"column:id" json:"id"` - DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 - CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 - UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 - ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` - ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` - ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` - ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 - ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` - ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` - ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` - ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` - ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` - ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` - Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` - OperationTimes int32 `gorm:"type:int;column:operation_times;default:1;comment:操作次数" json:"operationTimes"` - Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` + ID uint64 `gorm:"column:id" json:"id"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 + CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 + ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` + ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` + ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` + ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 + ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` + ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` + ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` + ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` + ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` + ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` + Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` + //OperationTimes int32 `gorm:"type:int;column:operation_times;default:1;comment:操作次数" json:"operationTimes"` + Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` } // TableName get sql table name.获取数据库表名 @@ -61,7 +61,7 @@ func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Appr m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName m.Rollback = in.BundlePayPrice.Rollback - m.OperationTimes = in.BundlePayPrice.OperationTimes + //m.OperationTimes = in.BundlePayPrice.OperationTimes return DB.Create(&m).Error } @@ -85,7 +85,7 @@ func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Ap m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName m.Rollback = in.BundlePayPrice.Rollback - m.OperationTimes = in.BundlePayPrice.OperationTimes + //m.OperationTimes = in.BundlePayPrice.OperationTimes return DB.Model(&m).Updates(m).Error } @@ -94,20 +94,20 @@ func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRe if a.BundlePayPrice != nil { request.BundlePayPrice = &approval.BundlePayPrice{ - ShowUid: a.BundlePayPrice.ShowUid, - ApprovalID: a.BundlePayPrice.ApprovalID, - ShowName: a.BundlePayPrice.ShowName, - ReceivedAt: a.BundlePayPrice.ReceivedAt, - ShowDate: a.BundlePayPrice.ShowDate, - ShowLowPrice: a.BundlePayPrice.ShowLowPrice, - ArtworkNum: a.BundlePayPrice.ArtworkNum, - ArtworkSize: a.BundlePayPrice.ArtworkSize, - ShowAddress: a.BundlePayPrice.ShowAddress, - Status: a.BundlePayPrice.Status, - ArtistName: a.BundlePayPrice.ArtistName, - Rollback: a.BundlePayPrice.Rollback, - OperationTimes: a.BundlePayPrice.OperationTimes, - ID: a.BundlePayPrice.ID, + ShowUid: a.BundlePayPrice.ShowUid, + ApprovalID: a.BundlePayPrice.ApprovalID, + ShowName: a.BundlePayPrice.ShowName, + ReceivedAt: a.BundlePayPrice.ReceivedAt, + ShowDate: a.BundlePayPrice.ShowDate, + ShowLowPrice: a.BundlePayPrice.ShowLowPrice, + ArtworkNum: a.BundlePayPrice.ArtworkNum, + ArtworkSize: a.BundlePayPrice.ArtworkSize, + ShowAddress: a.BundlePayPrice.ShowAddress, + Status: a.BundlePayPrice.Status, + ArtistName: a.BundlePayPrice.ArtistName, + Rollback: a.BundlePayPrice.Rollback, + //OperationTimes: a.BundlePayPrice.OperationTimes, + ID: a.BundlePayPrice.ID, } } } diff --git a/pkg/model/migration.go b/pkg/model/migration.go index fd86304..8c840c2 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -34,7 +34,7 @@ func migration() { addColumn(&BundlePayPrice{}, "status") addColumn(&BundlePayPrice{}, "artist_name") addColumn(&BundlePayPrice{}, "rollback") - addColumn(&BundlePayPrice{}, "operation_times") + //addColumn(&BundlePayPrice{}, "operation_times") addColumn(&ApprovalExhibition{}, "art_exhibition_detail") addColumn(&ApprovalExhibition{}, "artworks") From 90d35a95481bbe8663c49a81dcb74887ebd3b7c6 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:43:13 +0800 Subject: [PATCH 61/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20pb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 708 +++++++++++++++++----------------- api/approval/approval.proto | 2 +- pkg/model/bundle_pay_price.go | 66 ++-- pkg/model/migration.go | 2 +- 4 files changed, 394 insertions(+), 384 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index 2860ed8..deb0ddc 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -2486,19 +2486,20 @@ type BundlePayPrice struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` - ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` - ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` - ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` - ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` - ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` - ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` - Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` // int32 OperationTimes = 15 [json_name = "operationTimes"]; + ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` + ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` + ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` + ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` + ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` + ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` + ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` + Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` + OperationTimes int32 `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` } func (x *BundlePayPrice) Reset() { @@ -2624,6 +2625,13 @@ func (x *BundlePayPrice) GetRollback() int32 { return 0 } +func (x *BundlePayPrice) GetOperationTimes() int32 { + if x != nil { + return x.OperationTimes + } + return 0 +} + type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4548,7 +4556,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xb6, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, @@ -4573,346 +4581,348 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xbc, 0x08, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, - 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, - 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, - 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, - 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, - 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, - 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x22, 0xbc, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, + 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, + 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, + 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, + 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, + 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, + 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, + 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, + 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, + 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, + 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, + 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, + 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, + 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, + 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, + 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, + 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, - 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, - 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, - 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, - 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, - 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, - 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, - 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, - 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, - 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, - 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, - 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, - 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, - 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, - 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, - 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, - 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, - 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, - 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, - 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, - 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, - 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, - 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, - 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, - 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, - 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, + 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, + 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, + 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, + 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, + 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, + 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, + 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, + 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, + 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, + 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, + 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, + 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, + 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, + 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, - 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, + 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, + 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, + 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, + 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, + 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, + 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, + 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, + 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, - 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, + 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/approval/approval.proto b/api/approval/approval.proto index c747c4a..ab189c7 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -300,7 +300,7 @@ message BundlePayPrice { uint64 Status = 11 [json_name = "status"]; string ArtistName = 12 [json_name = "artistName"]; int32 Rollback = 13 [json_name = "rollback"]; -// int32 OperationTimes = 15 [json_name = "operationTimes"]; + int32 OperationTimes = 14 [json_name = "operationTimes"]; } message CreateRequest { diff --git a/pkg/model/bundle_pay_price.go b/pkg/model/bundle_pay_price.go index d17524b..7c7777e 100644 --- a/pkg/model/bundle_pay_price.go +++ b/pkg/model/bundle_pay_price.go @@ -10,23 +10,23 @@ import ( // BundlePayPrice 画展包付款单审批 type BundlePayPrice struct { - ID uint64 `gorm:"column:id" json:"id"` - DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 - CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 - UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 - ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` - ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` - ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` - ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 - ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` - ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` - ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` - ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` - ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` - ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` - Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` - //OperationTimes int32 `gorm:"type:int;column:operation_times;default:1;comment:操作次数" json:"operationTimes"` - Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` + ID uint64 `gorm:"column:id" json:"id"` + DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 + CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 + UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 + ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"` + ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"` + ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"` + ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间 + ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"` + ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` + ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` + ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` + ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"` + ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"` + Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"` + OperationTimes int32 `gorm:"type:int;column:operation_times;default:1;comment:操作次数" json:"operationTimes"` + Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` } // TableName get sql table name.获取数据库表名 @@ -61,7 +61,7 @@ func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Appr m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName m.Rollback = in.BundlePayPrice.Rollback - //m.OperationTimes = in.BundlePayPrice.OperationTimes + m.OperationTimes = in.BundlePayPrice.OperationTimes return DB.Create(&m).Error } @@ -85,7 +85,7 @@ func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Ap m.ShowAddress = in.BundlePayPrice.ShowAddress m.ArtistName = in.BundlePayPrice.ArtistName m.Rollback = in.BundlePayPrice.Rollback - //m.OperationTimes = in.BundlePayPrice.OperationTimes + m.OperationTimes = in.BundlePayPrice.OperationTimes return DB.Model(&m).Updates(m).Error } @@ -94,20 +94,20 @@ func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRe if a.BundlePayPrice != nil { request.BundlePayPrice = &approval.BundlePayPrice{ - ShowUid: a.BundlePayPrice.ShowUid, - ApprovalID: a.BundlePayPrice.ApprovalID, - ShowName: a.BundlePayPrice.ShowName, - ReceivedAt: a.BundlePayPrice.ReceivedAt, - ShowDate: a.BundlePayPrice.ShowDate, - ShowLowPrice: a.BundlePayPrice.ShowLowPrice, - ArtworkNum: a.BundlePayPrice.ArtworkNum, - ArtworkSize: a.BundlePayPrice.ArtworkSize, - ShowAddress: a.BundlePayPrice.ShowAddress, - Status: a.BundlePayPrice.Status, - ArtistName: a.BundlePayPrice.ArtistName, - Rollback: a.BundlePayPrice.Rollback, - //OperationTimes: a.BundlePayPrice.OperationTimes, - ID: a.BundlePayPrice.ID, + ShowUid: a.BundlePayPrice.ShowUid, + ApprovalID: a.BundlePayPrice.ApprovalID, + ShowName: a.BundlePayPrice.ShowName, + ReceivedAt: a.BundlePayPrice.ReceivedAt, + ShowDate: a.BundlePayPrice.ShowDate, + ShowLowPrice: a.BundlePayPrice.ShowLowPrice, + ArtworkNum: a.BundlePayPrice.ArtworkNum, + ArtworkSize: a.BundlePayPrice.ArtworkSize, + ShowAddress: a.BundlePayPrice.ShowAddress, + Status: a.BundlePayPrice.Status, + ArtistName: a.BundlePayPrice.ArtistName, + Rollback: a.BundlePayPrice.Rollback, + OperationTimes: a.BundlePayPrice.OperationTimes, + ID: a.BundlePayPrice.ID, } } } diff --git a/pkg/model/migration.go b/pkg/model/migration.go index 8c840c2..fd86304 100644 --- a/pkg/model/migration.go +++ b/pkg/model/migration.go @@ -34,7 +34,7 @@ func migration() { addColumn(&BundlePayPrice{}, "status") addColumn(&BundlePayPrice{}, "artist_name") addColumn(&BundlePayPrice{}, "rollback") - //addColumn(&BundlePayPrice{}, "operation_times") + addColumn(&BundlePayPrice{}, "operation_times") addColumn(&ApprovalExhibition{}, "art_exhibition_detail") addColumn(&ApprovalExhibition{}, "artworks") From bde6592a2a7a86f07b3671f64d9aebb4a1334421 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:51:19 +0800 Subject: [PATCH 62/64] =?UTF-8?q?=E5=88=A0=E9=99=A4=20pb=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 7135 ------------------------- api/approval/approval.validator.pb.go | 545 -- api/approval/approval_triple.pb.go | 1186 ---- 3 files changed, 8866 deletions(-) delete mode 100644 api/approval/approval.pb.go delete mode 100644 api/approval/approval.validator.pb.go delete mode 100644 api/approval/approval_triple.pb.go diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go deleted file mode 100644 index 8e48e2a..0000000 --- a/api/approval/approval.pb.go +++ /dev/null @@ -1,7135 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.10.1 -// source: api/approval/approval.proto - -package approval - -import ( - _ "github.com/mwitkow/go-proto-validators" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type CommonResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CommonResponse) Reset() { - *x = CommonResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CommonResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CommonResponse) ProtoMessage() {} - -func (x *CommonResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead. -func (*CommonResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{0} -} - -type ChangeBundlePayRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - Status uint64 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` -} - -func (x *ChangeBundlePayRequest) Reset() { - *x = ChangeBundlePayRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeBundlePayRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeBundlePayRequest) ProtoMessage() {} - -func (x *ChangeBundlePayRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeBundlePayRequest.ProtoReflect.Descriptor instead. -func (*ChangeBundlePayRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{1} -} - -func (x *ChangeBundlePayRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *ChangeBundlePayRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ChangeBundlePayRequest) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -type IsExistPayRightRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - UserId uint64 `protobuf:"varint,2,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` - ShowUid string `protobuf:"bytes,3,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` -} - -func (x *IsExistPayRightRequest) Reset() { - *x = IsExistPayRightRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsExistPayRightRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsExistPayRightRequest) ProtoMessage() {} - -func (x *IsExistPayRightRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IsExistPayRightRequest.ProtoReflect.Descriptor instead. -func (*IsExistPayRightRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{2} -} - -func (x *IsExistPayRightRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *IsExistPayRightRequest) GetUserId() uint64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *IsExistPayRightRequest) GetShowUid() string { - if x != nil { - return x.ShowUid - } - return "" -} - -type IsExistPayRightResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IsPass bool `protobuf:"varint,1,opt,name=IsPass,json=isPass,proto3" json:"IsPass,omitempty"` -} - -func (x *IsExistPayRightResponse) Reset() { - *x = IsExistPayRightResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsExistPayRightResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsExistPayRightResponse) ProtoMessage() {} - -func (x *IsExistPayRightResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IsExistPayRightResponse.ProtoReflect.Descriptor instead. -func (*IsExistPayRightResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{3} -} - -func (x *IsExistPayRightResponse) GetIsPass() bool { - if x != nil { - return x.IsPass - } - return false -} - -type KeyInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ApprovalKey string `protobuf:"bytes,1,opt,name=ApprovalKey,json=approvalKey,proto3" json:"ApprovalKey,omitempty"` - ApprovalName string `protobuf:"bytes,2,opt,name=ApprovalName,json=approvalName,proto3" json:"ApprovalName,omitempty"` - ApprovalType string `protobuf:"bytes,3,opt,name=ApprovalType,json=approvalType,proto3" json:"ApprovalType,omitempty"` - ApprovalValue string `protobuf:"bytes,4,opt,name=ApprovalValue,json=approvalValue,proto3" json:"ApprovalValue,omitempty"` - ApprovalMark bool `protobuf:"varint,5,opt,name=ApprovalMark,json=approvalMark,proto3" json:"ApprovalMark,omitempty"` -} - -func (x *KeyInfo) Reset() { - *x = KeyInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *KeyInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*KeyInfo) ProtoMessage() {} - -func (x *KeyInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use KeyInfo.ProtoReflect.Descriptor instead. -func (*KeyInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{4} -} - -func (x *KeyInfo) GetApprovalKey() string { - if x != nil { - return x.ApprovalKey - } - return "" -} - -func (x *KeyInfo) GetApprovalName() string { - if x != nil { - return x.ApprovalName - } - return "" -} - -func (x *KeyInfo) GetApprovalType() string { - if x != nil { - return x.ApprovalType - } - return "" -} - -func (x *KeyInfo) GetApprovalValue() string { - if x != nil { - return x.ApprovalValue - } - return "" -} - -func (x *KeyInfo) GetApprovalMark() bool { - if x != nil { - return x.ApprovalMark - } - return false -} - -type UpdateEhApplyIDRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ApplyId string `protobuf:"bytes,3,opt,name=ApplyId,json=applyId,proto3" json:"ApplyId,omitempty"` -} - -func (x *UpdateEhApplyIDRequest) Reset() { - *x = UpdateEhApplyIDRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateEhApplyIDRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateEhApplyIDRequest) ProtoMessage() {} - -func (x *UpdateEhApplyIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateEhApplyIDRequest.ProtoReflect.Descriptor instead. -func (*UpdateEhApplyIDRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{5} -} - -func (x *UpdateEhApplyIDRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *UpdateEhApplyIDRequest) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *UpdateEhApplyIDRequest) GetApplyId() string { - if x != nil { - return x.ApplyId - } - return "" -} - -type UpdateEhApplyIDResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *UpdateEhApplyIDResponse) Reset() { - *x = UpdateEhApplyIDResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateEhApplyIDResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateEhApplyIDResponse) ProtoMessage() {} - -func (x *UpdateEhApplyIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateEhApplyIDResponse.ProtoReflect.Descriptor instead. -func (*UpdateEhApplyIDResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{6} -} - -type UsedNumByUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - SubmitterID uint64 `protobuf:"varint,2,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` -} - -func (x *UsedNumByUserRequest) Reset() { - *x = UsedNumByUserRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UsedNumByUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UsedNumByUserRequest) ProtoMessage() {} - -func (x *UsedNumByUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UsedNumByUserRequest.ProtoReflect.Descriptor instead. -func (*UsedNumByUserRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{7} -} - -func (x *UsedNumByUserRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *UsedNumByUserRequest) GetSubmitterID() uint64 { - if x != nil { - return x.SubmitterID - } - return 0 -} - -type UsedNumByUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` -} - -func (x *UsedNumByUserResponse) Reset() { - *x = UsedNumByUserResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UsedNumByUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UsedNumByUserResponse) ProtoMessage() {} - -func (x *UsedNumByUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UsedNumByUserResponse.ProtoReflect.Descriptor instead. -func (*UsedNumByUserResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{8} -} - -func (x *UsedNumByUserResponse) GetTotal() uint64 { - if x != nil { - return x.Total - } - return 0 -} - -type NowLevelByInfoRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` -} - -func (x *NowLevelByInfoRequest) Reset() { - *x = NowLevelByInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NowLevelByInfoRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NowLevelByInfoRequest) ProtoMessage() {} - -func (x *NowLevelByInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NowLevelByInfoRequest.ProtoReflect.Descriptor instead. -func (*NowLevelByInfoRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{9} -} - -func (x *NowLevelByInfoRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *NowLevelByInfoRequest) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -type WorkFlowResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` - Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - UserID uint64 `protobuf:"varint,7,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` -} - -func (x *WorkFlowResponse) Reset() { - *x = WorkFlowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkFlowResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkFlowResponse) ProtoMessage() {} - -func (x *WorkFlowResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkFlowResponse.ProtoReflect.Descriptor instead. -func (*WorkFlowResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{10} -} - -func (x *WorkFlowResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *WorkFlowResponse) GetReply() string { - if x != nil { - return x.Reply - } - return "" -} - -func (x *WorkFlowResponse) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *WorkFlowResponse) GetUserID() uint64 { - if x != nil { - return x.UserID - } - return 0 -} - -type CommonRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - Page uint64 `protobuf:"varint,2,opt,name=Page,proto3" json:"Page,omitempty"` - PageSize uint64 `protobuf:"varint,3,opt,name=PageSize,json=pageSize,proto3" json:"PageSize,omitempty"` - GroupId uint64 `protobuf:"varint,4,opt,name=GroupId,json=groupId,proto3" json:"GroupId,omitempty"` -} - -func (x *CommonRequest) Reset() { - *x = CommonRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CommonRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CommonRequest) ProtoMessage() {} - -func (x *CommonRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CommonRequest.ProtoReflect.Descriptor instead. -func (*CommonRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{11} -} - -func (x *CommonRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *CommonRequest) GetPage() uint64 { - if x != nil { - return x.Page - } - return 0 -} - -func (x *CommonRequest) GetPageSize() uint64 { - if x != nil { - return x.PageSize - } - return 0 -} - -func (x *CommonRequest) GetGroupId() uint64 { - if x != nil { - return x.GroupId - } - return 0 -} - -type CreateTypeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - Title string `protobuf:"bytes,3,opt,name=Title,json=title,proto3" json:"Title,omitempty"` - Remark string `protobuf:"bytes,5,opt,name=Remark,json=remark,proto3" json:"Remark,omitempty"` - KeyWord string `protobuf:"bytes,6,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` - KeyInfos []*KeyInfo `protobuf:"bytes,7,rep,name=KeyInfos,json=keyInfos,proto3" json:"KeyInfos,omitempty"` - IsCustom uint64 `protobuf:"varint,8,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` - GroupId uint64 `protobuf:"varint,9,opt,name=GroupId,json=groupId,proto3" json:"GroupId,omitempty"` - GroupName string `protobuf:"bytes,10,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` -} - -func (x *CreateTypeRequest) Reset() { - *x = CreateTypeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateTypeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateTypeRequest) ProtoMessage() {} - -func (x *CreateTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateTypeRequest.ProtoReflect.Descriptor instead. -func (*CreateTypeRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{12} -} - -func (x *CreateTypeRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *CreateTypeRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *CreateTypeRequest) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *CreateTypeRequest) GetRemark() string { - if x != nil { - return x.Remark - } - return "" -} - -func (x *CreateTypeRequest) GetKeyWord() string { - if x != nil { - return x.KeyWord - } - return "" -} - -func (x *CreateTypeRequest) GetKeyInfos() []*KeyInfo { - if x != nil { - return x.KeyInfos - } - return nil -} - -func (x *CreateTypeRequest) GetIsCustom() uint64 { - if x != nil { - return x.IsCustom - } - return 0 -} - -func (x *CreateTypeRequest) GetGroupId() uint64 { - if x != nil { - return x.GroupId - } - return 0 -} - -func (x *CreateTypeRequest) GetGroupName() string { - if x != nil { - return x.GroupName - } - return "" -} - -type TypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,proto3" json:"Domain,omitempty"` - Keyword string `protobuf:"bytes,3,opt,name=Keyword,proto3" json:"Keyword,omitempty"` -} - -func (x *TypeResponse) Reset() { - *x = TypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TypeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TypeResponse) ProtoMessage() {} - -func (x *TypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TypeResponse.ProtoReflect.Descriptor instead. -func (*TypeResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{13} -} - -func (x *TypeResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *TypeResponse) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *TypeResponse) GetKeyword() string { - if x != nil { - return x.Keyword - } - return "" -} - -type AllTypeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data []*CreateTypeRequest `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` - Count uint64 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` -} - -func (x *AllTypeResponse) Reset() { - *x = AllTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AllTypeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AllTypeResponse) ProtoMessage() {} - -func (x *AllTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AllTypeResponse.ProtoReflect.Descriptor instead. -func (*AllTypeResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{14} -} - -func (x *AllTypeResponse) GetData() []*CreateTypeRequest { - if x != nil { - return x.Data - } - return nil -} - -func (x *AllTypeResponse) GetCount() uint64 { - if x != nil { - return x.Count - } - return 0 -} - -type CreateTypeGroupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - Title string `protobuf:"bytes,3,opt,name=Title,json=title,proto3" json:"Title,omitempty"` - List []*CreateTypeRequest `protobuf:"bytes,4,rep,name=List,json=list,proto3" json:"List,omitempty"` -} - -func (x *CreateTypeGroupRequest) Reset() { - *x = CreateTypeGroupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateTypeGroupRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateTypeGroupRequest) ProtoMessage() {} - -func (x *CreateTypeGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateTypeGroupRequest.ProtoReflect.Descriptor instead. -func (*CreateTypeGroupRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{15} -} - -func (x *CreateTypeGroupRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *CreateTypeGroupRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *CreateTypeGroupRequest) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *CreateTypeGroupRequest) GetList() []*CreateTypeRequest { - if x != nil { - return x.List - } - return nil -} - -type AllGroupResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data []*CreateTypeGroupRequest `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` - Count uint64 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` -} - -func (x *AllGroupResponse) Reset() { - *x = AllGroupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AllGroupResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AllGroupResponse) ProtoMessage() {} - -func (x *AllGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AllGroupResponse.ProtoReflect.Descriptor instead. -func (*AllGroupResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{16} -} - -func (x *AllGroupResponse) GetData() []*CreateTypeGroupRequest { - if x != nil { - return x.Data - } - return nil -} - -func (x *AllGroupResponse) GetCount() uint64 { - if x != nil { - return x.Count - } - return 0 -} - -type StatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` - WorkFlowId uint64 `protobuf:"varint,4,opt,name=WorkFlowId,json=workFlowId,proto3" json:"WorkFlowId,omitempty"` - Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Level uint64 `protobuf:"varint,6,opt,name=Level,json=level,proto3" json:"Level,omitempty"` - Title string `protobuf:"bytes,7,opt,name=Title,json=title,proto3" json:"Title,omitempty"` - UserId uint64 `protobuf:"varint,8,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` - LeaveBalance string `protobuf:"bytes,9,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` -} - -func (x *StatusRequest) Reset() { - *x = StatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatusRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatusRequest) ProtoMessage() {} - -func (x *StatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. -func (*StatusRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{17} -} - -func (x *StatusRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *StatusRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *StatusRequest) GetReply() string { - if x != nil { - return x.Reply - } - return "" -} - -func (x *StatusRequest) GetWorkFlowId() uint64 { - if x != nil { - return x.WorkFlowId - } - return 0 -} - -func (x *StatusRequest) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *StatusRequest) GetLevel() uint64 { - if x != nil { - return x.Level - } - return 0 -} - -func (x *StatusRequest) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *StatusRequest) GetUserId() uint64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *StatusRequest) GetLeaveBalance() string { - if x != nil { - return x.LeaveBalance - } - return "" -} - -type StatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *StatusResponse) Reset() { - *x = StatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatusResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatusResponse) ProtoMessage() {} - -func (x *StatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. -func (*StatusResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{18} -} - -type ListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - PageSize uint64 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // - Page uint64 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // - Status uint64 `protobuf:"varint,4,opt,name=Status,json=status,proto3" json:"Status,omitempty"` //0待审批 1-审批成功 2-拒绝 4-是所有 - Type string `protobuf:"bytes,5,opt,name=Type,json=type,proto3" json:"Type,omitempty"` //类型 - UserID uint64 `protobuf:"varint,6,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` // - ApprovedBossId uint64 `protobuf:"varint,7,opt,name=ApprovedBossId,json=approvedBossId,proto3" json:"ApprovedBossId,omitempty"` // -} - -func (x *ListRequest) Reset() { - *x = ListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListRequest) ProtoMessage() {} - -func (x *ListRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. -func (*ListRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{19} -} - -func (x *ListRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *ListRequest) GetPageSize() uint64 { - if x != nil { - return x.PageSize - } - return 0 -} - -func (x *ListRequest) GetPage() uint64 { - if x != nil { - return x.Page - } - return 0 -} - -func (x *ListRequest) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *ListRequest) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *ListRequest) GetUserID() uint64 { - if x != nil { - return x.UserID - } - return 0 -} - -func (x *ListRequest) GetApprovedBossId() uint64 { - if x != nil { - return x.ApprovedBossId - } - return 0 -} - -type ListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Count uint64 `protobuf:"varint,1,opt,name=Count,json=count,proto3" json:"Count,omitempty"` - Data []*CreateRequest `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` -} - -func (x *ListResponse) Reset() { - *x = ListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListResponse) ProtoMessage() {} - -func (x *ListResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. -func (*ListResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{20} -} - -func (x *ListResponse) GetCount() uint64 { - if x != nil { - return x.Count - } - return 0 -} - -func (x *ListResponse) GetData() []*CreateRequest { - if x != nil { - return x.Data - } - return nil -} - -type ViewedRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` - UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` -} - -func (x *ViewedRequest) Reset() { - *x = ViewedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ViewedRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ViewedRequest) ProtoMessage() {} - -func (x *ViewedRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ViewedRequest.ProtoReflect.Descriptor instead. -func (*ViewedRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{21} -} - -func (x *ViewedRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *ViewedRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ViewedRequest) GetUserID() uint64 { - if x != nil { - return x.UserID - } - return 0 -} - -type InformationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - UserID uint64 `protobuf:"varint,2,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` - Type string `protobuf:"bytes,3,opt,name=Type,json=type,proto3" json:"Type,omitempty"` -} - -func (x *InformationRequest) Reset() { - *x = InformationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InformationRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InformationRequest) ProtoMessage() {} - -func (x *InformationRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use InformationRequest.ProtoReflect.Descriptor instead. -func (*InformationRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{22} -} - -func (x *InformationRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *InformationRequest) GetUserID() uint64 { - if x != nil { - return x.UserID - } - return 0 -} - -func (x *InformationRequest) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -type Information struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Total uint64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total,omitempty"` // 已提交的审批 (总量) - DoingTotal uint64 `protobuf:"varint,2,opt,name=DoingTotal,json=doingTotal,proto3" json:"DoingTotal,omitempty"` // 正在审批数量 - SuccessTotal uint64 `protobuf:"varint,3,opt,name=SuccessTotal,json=successTotal,proto3" json:"SuccessTotal,omitempty"` // 审批完成数量 - FailTotal uint64 `protobuf:"varint,4,opt,name=FailTotal,json=failTotal,proto3" json:"FailTotal,omitempty"` // 审批未通过 -} - -func (x *Information) Reset() { - *x = Information{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Information) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Information) ProtoMessage() {} - -func (x *Information) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Information.ProtoReflect.Descriptor instead. -func (*Information) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{23} -} - -func (x *Information) GetTotal() uint64 { - if x != nil { - return x.Total - } - return 0 -} - -func (x *Information) GetDoingTotal() uint64 { - if x != nil { - return x.DoingTotal - } - return 0 -} - -func (x *Information) GetSuccessTotal() uint64 { - if x != nil { - return x.SuccessTotal - } - return 0 -} - -func (x *Information) GetFailTotal() uint64 { - if x != nil { - return x.FailTotal - } - return 0 -} - -type InformationResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MySubmitInfo *Information `protobuf:"bytes,1,opt,name=MySubmitInfo,json=mySubmitInfo,proto3" json:"MySubmitInfo,omitempty"` // 我提交的; - SubmitMeInfo *Information `protobuf:"bytes,2,opt,name=SubmitMeInfo,json=submitMeInfo,proto3" json:"SubmitMeInfo,omitempty"` // 提交给我的; - DomainInfo *Information `protobuf:"bytes,3,opt,name=DomainInfo,json=domainInfo,proto3" json:"DomainInfo,omitempty"` // 大盘数据; -} - -func (x *InformationResponse) Reset() { - *x = InformationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InformationResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InformationResponse) ProtoMessage() {} - -func (x *InformationResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use InformationResponse.ProtoReflect.Descriptor instead. -func (*InformationResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{24} -} - -func (x *InformationResponse) GetMySubmitInfo() *Information { - if x != nil { - return x.MySubmitInfo - } - return nil -} - -func (x *InformationResponse) GetSubmitMeInfo() *Information { - if x != nil { - return x.SubmitMeInfo - } - return nil -} - -func (x *InformationResponse) GetDomainInfo() *Information { - if x != nil { - return x.DomainInfo - } - return nil -} - -type Bundle struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - ReturnAt string `protobuf:"bytes,2,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` - ReceivedAt string `protobuf:"bytes,3,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ApplicationsNum uint64 `protobuf:"varint,4,opt,name=ApplicationsNum,json=applicationsNum,proto3" json:"ApplicationsNum,omitempty"` -} - -func (x *Bundle) Reset() { - *x = Bundle{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Bundle) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Bundle) ProtoMessage() {} - -func (x *Bundle) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Bundle.ProtoReflect.Descriptor instead. -func (*Bundle) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{25} -} - -func (x *Bundle) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *Bundle) GetReturnAt() string { - if x != nil { - return x.ReturnAt - } - return "" -} - -func (x *Bundle) GetReceivedAt() string { - if x != nil { - return x.ReceivedAt - } - return "" -} - -func (x *Bundle) GetApplicationsNum() uint64 { - if x != nil { - return x.ApplicationsNum - } - return 0 -} - -type Show struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - ArtistNum uint64 `protobuf:"varint,2,opt,name=ArtistNum,json=artistNum,proto3" json:"ArtistNum,omitempty"` - ShowAt string `protobuf:"bytes,3,opt,name=ShowAt,proto3" json:"ShowAt,omitempty"` -} - -func (x *Show) Reset() { - *x = Show{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Show) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Show) ProtoMessage() {} - -func (x *Show) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Show.ProtoReflect.Descriptor instead. -func (*Show) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{26} -} - -func (x *Show) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *Show) GetArtistNum() uint64 { - if x != nil { - return x.ArtistNum - } - return 0 -} - -func (x *Show) GetShowAt() string { - if x != nil { - return x.ShowAt - } - return "" -} - -type ApprovalWork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - WorkID uint64 `protobuf:"varint,2,opt,name=WorkID,proto3" json:"WorkID,omitempty"` - ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` - ArtworkID uint64 `protobuf:"varint,4,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` - ArtworkName string `protobuf:"bytes,5,opt,name=ArtworkName,json=artworkName,proto3" json:"ArtworkName,omitempty"` - ArtistName string `protobuf:"bytes,6,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - ArtworkCover string `protobuf:"bytes,7,opt,name=ArtworkCover,json=artworkCover,proto3" json:"ArtworkCover,omitempty"` - ArtworkNumber uint64 `protobuf:"varint,8,opt,name=ArtworkNumber,json=artworkNumber,proto3" json:"ArtworkNumber,omitempty"` - ArtistUID string `protobuf:"bytes,9,opt,name=ArtistUID,json=artistUID,proto3" json:"ArtistUID,omitempty"` - ShowSeq string `protobuf:"bytes,10,opt,name=ShowSeq,json=showSeq,proto3" json:"ShowSeq,omitempty"` -} - -func (x *ApprovalWork) Reset() { - *x = ApprovalWork{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalWork) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalWork) ProtoMessage() {} - -func (x *ApprovalWork) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalWork.ProtoReflect.Descriptor instead. -func (*ApprovalWork) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{27} -} - -func (x *ApprovalWork) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalWork) GetWorkID() uint64 { - if x != nil { - return x.WorkID - } - return 0 -} - -func (x *ApprovalWork) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *ApprovalWork) GetArtworkID() uint64 { - if x != nil { - return x.ArtworkID - } - return 0 -} - -func (x *ApprovalWork) GetArtworkName() string { - if x != nil { - return x.ArtworkName - } - return "" -} - -func (x *ApprovalWork) GetArtistName() string { - if x != nil { - return x.ArtistName - } - return "" -} - -func (x *ApprovalWork) GetArtworkCover() string { - if x != nil { - return x.ArtworkCover - } - return "" -} - -func (x *ApprovalWork) GetArtworkNumber() uint64 { - if x != nil { - return x.ArtworkNumber - } - return 0 -} - -func (x *ApprovalWork) GetArtistUID() string { - if x != nil { - return x.ArtistUID - } - return "" -} - -func (x *ApprovalWork) GetShowSeq() string { - if x != nil { - return x.ShowSeq - } - return "" -} - -type Work struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - ReturnAt string `protobuf:"bytes,2,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` - ReceivedAt string `protobuf:"bytes,3,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ApprovalWorks []*ApprovalWork `protobuf:"bytes,4,rep,name=ApprovalWorks,json=approvalWorks,proto3" json:"ApprovalWorks,omitempty"` - ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,json=artistUID,proto3" json:"ArtistUID,omitempty"` -} - -func (x *Work) Reset() { - *x = Work{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Work) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Work) ProtoMessage() {} - -func (x *Work) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Work.ProtoReflect.Descriptor instead. -func (*Work) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{28} -} - -func (x *Work) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *Work) GetReturnAt() string { - if x != nil { - return x.ReturnAt - } - return "" -} - -func (x *Work) GetReceivedAt() string { - if x != nil { - return x.ReceivedAt - } - return "" -} - -func (x *Work) GetApprovalWorks() []*ApprovalWork { - if x != nil { - return x.ApprovalWorks - } - return nil -} - -func (x *Work) GetArtistUID() string { - if x != nil { - return x.ArtistUID - } - return "" -} - -type ApprovalExhibition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - ExhibitionID uint64 `protobuf:"varint,2,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` - ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - PackageName string `protobuf:"bytes,4,opt,name=PackageName,json=packageName,proto3" json:"PackageName,omitempty"` - PackageID string `protobuf:"bytes,5,opt,name=PackageID,json=packageID,proto3" json:"PackageID,omitempty"` - PackageSize uint64 `protobuf:"varint,6,opt,name=PackageSize,json=packageSize,proto3" json:"PackageSize,omitempty"` - PackageNumber string `protobuf:"bytes,7,opt,name=PackageNumber,json=packageNumber,proto3" json:"PackageNumber,omitempty"` - Address string `protobuf:"bytes,8,opt,name=Address,json=address,proto3" json:"Address,omitempty"` - ShowDate string `protobuf:"bytes,9,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` - Artworks []*Artwork `protobuf:"bytes,10,rep,name=Artworks,json=artworks,proto3" json:"Artworks,omitempty"` - ArtExhibitionDetail *ArtExhibitionDetail `protobuf:"bytes,11,opt,name=ArtExhibitionDetail,json=artExhibitionDetail,proto3" json:"ArtExhibitionDetail,omitempty"` - TotalPrice int64 `protobuf:"varint,12,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` -} - -func (x *ApprovalExhibition) Reset() { - *x = ApprovalExhibition{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibition) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibition) ProtoMessage() {} - -func (x *ApprovalExhibition) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalExhibition.ProtoReflect.Descriptor instead. -func (*ApprovalExhibition) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{29} -} - -func (x *ApprovalExhibition) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalExhibition) GetExhibitionID() uint64 { - if x != nil { - return x.ExhibitionID - } - return 0 -} - -func (x *ApprovalExhibition) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *ApprovalExhibition) GetPackageName() string { - if x != nil { - return x.PackageName - } - return "" -} - -func (x *ApprovalExhibition) GetPackageID() string { - if x != nil { - return x.PackageID - } - return "" -} - -func (x *ApprovalExhibition) GetPackageSize() uint64 { - if x != nil { - return x.PackageSize - } - return 0 -} - -func (x *ApprovalExhibition) GetPackageNumber() string { - if x != nil { - return x.PackageNumber - } - return "" -} - -func (x *ApprovalExhibition) GetAddress() string { - if x != nil { - return x.Address - } - return "" -} - -func (x *ApprovalExhibition) GetShowDate() string { - if x != nil { - return x.ShowDate - } - return "" -} - -func (x *ApprovalExhibition) GetArtworks() []*Artwork { - if x != nil { - return x.Artworks - } - return nil -} - -func (x *ApprovalExhibition) GetArtExhibitionDetail() *ArtExhibitionDetail { - if x != nil { - return x.ArtExhibitionDetail - } - return nil -} - -func (x *ApprovalExhibition) GetTotalPrice() int64 { - if x != nil { - return x.TotalPrice - } - return 0 -} - -type Exhibition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - ReceivedAt string `protobuf:"bytes,2,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - Address string `protobuf:"bytes,3,opt,name=Address,json=address,proto3" json:"Address,omitempty"` - PidApprovalID uint64 `protobuf:"varint,4,opt,name=PidApprovalID,json=pidApprovalID,proto3" json:"PidApprovalID,omitempty"` - ApprovalExhibitions []*ApprovalExhibition `protobuf:"bytes,5,rep,name=ApprovalExhibitions,json=approvalExhibitions,proto3" json:"ApprovalExhibitions,omitempty"` - Num uint64 `protobuf:"varint,6,opt,name=Num,json=num,proto3" json:"Num,omitempty"` - ApplyID string `protobuf:"bytes,7,opt,name=ApplyID,json=applyID,proto3" json:"ApplyID,omitempty"` -} - -func (x *Exhibition) Reset() { - *x = Exhibition{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Exhibition) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Exhibition) ProtoMessage() {} - -func (x *Exhibition) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Exhibition.ProtoReflect.Descriptor instead. -func (*Exhibition) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{30} -} - -func (x *Exhibition) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *Exhibition) GetReceivedAt() string { - if x != nil { - return x.ReceivedAt - } - return "" -} - -func (x *Exhibition) GetAddress() string { - if x != nil { - return x.Address - } - return "" -} - -func (x *Exhibition) GetPidApprovalID() uint64 { - if x != nil { - return x.PidApprovalID - } - return 0 -} - -func (x *Exhibition) GetApprovalExhibitions() []*ApprovalExhibition { - if x != nil { - return x.ApprovalExhibitions - } - return nil -} - -func (x *Exhibition) GetNum() uint64 { - if x != nil { - return x.Num - } - return 0 -} - -func (x *Exhibition) GetApplyID() string { - if x != nil { - return x.ApplyID - } - return "" -} - -type Artwork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,proto3" json:"ArtworkPriceUID,omitempty"` - ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,proto3" json:"ShowUID,omitempty"` - ArtworkUID string `protobuf:"bytes,3,opt,name=ArtworkUID,proto3" json:"ArtworkUID,omitempty"` - ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,proto3" json:"ArtworkName,omitempty"` - ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` - Length uint64 `protobuf:"varint,6,opt,name=Length,proto3" json:"Length,omitempty"` - Width uint64 `protobuf:"varint,7,opt,name=Width,proto3" json:"Width,omitempty"` - Ruler uint64 `protobuf:"varint,8,opt,name=Ruler,proto3" json:"Ruler,omitempty"` - SmallPic string `protobuf:"bytes,9,opt,name=SmallPic,proto3" json:"SmallPic,omitempty"` - SaleAddress string `protobuf:"bytes,10,opt,name=SaleAddress,proto3" json:"SaleAddress,omitempty"` - Reward string `protobuf:"bytes,11,opt,name=Reward,proto3" json:"Reward,omitempty"` - Tfnum string `protobuf:"bytes,12,opt,name=Tfnum,proto3" json:"Tfnum,omitempty"` - SaleAddressID string `protobuf:"bytes,13,opt,name=SaleAddressID,proto3" json:"SaleAddressID,omitempty"` -} - -func (x *Artwork) Reset() { - *x = Artwork{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Artwork) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Artwork) ProtoMessage() {} - -func (x *Artwork) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Artwork.ProtoReflect.Descriptor instead. -func (*Artwork) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{31} -} - -func (x *Artwork) GetArtworkPriceUID() string { - if x != nil { - return x.ArtworkPriceUID - } - return "" -} - -func (x *Artwork) GetShowUID() string { - if x != nil { - return x.ShowUID - } - return "" -} - -func (x *Artwork) GetArtworkUID() string { - if x != nil { - return x.ArtworkUID - } - return "" -} - -func (x *Artwork) GetArtworkName() string { - if x != nil { - return x.ArtworkName - } - return "" -} - -func (x *Artwork) GetArtistName() string { - if x != nil { - return x.ArtistName - } - return "" -} - -func (x *Artwork) GetLength() uint64 { - if x != nil { - return x.Length - } - return 0 -} - -func (x *Artwork) GetWidth() uint64 { - if x != nil { - return x.Width - } - return 0 -} - -func (x *Artwork) GetRuler() uint64 { - if x != nil { - return x.Ruler - } - return 0 -} - -func (x *Artwork) GetSmallPic() string { - if x != nil { - return x.SmallPic - } - return "" -} - -func (x *Artwork) GetSaleAddress() string { - if x != nil { - return x.SaleAddress - } - return "" -} - -func (x *Artwork) GetReward() string { - if x != nil { - return x.Reward - } - return "" -} - -func (x *Artwork) GetTfnum() string { - if x != nil { - return x.Tfnum - } - return "" -} - -func (x *Artwork) GetSaleAddressID() string { - if x != nil { - return x.SaleAddressID - } - return "" -} - -type ArtExhibitionDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ShowUID string `protobuf:"bytes,1,opt,name=ShowUID,proto3" json:"ShowUID,omitempty"` - ShowSeq string `protobuf:"bytes,2,opt,name=ShowSeq,proto3" json:"ShowSeq,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,proto3" json:"ShowName,omitempty"` - ArtistName string `protobuf:"bytes,4,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` - ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,proto3" json:"ArtistUID,omitempty"` - ArtworkNum uint64 `protobuf:"varint,6,opt,name=ArtworkNum,proto3" json:"ArtworkNum,omitempty"` - Ruler uint64 `protobuf:"varint,7,opt,name=Ruler,proto3" json:"Ruler,omitempty"` - Price uint64 `protobuf:"varint,8,opt,name=Price,proto3" json:"Price,omitempty"` - Reward uint64 `protobuf:"varint,9,opt,name=Reward,proto3" json:"Reward,omitempty"` - CreateTime string `protobuf:"bytes,10,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` - Operator string `protobuf:"bytes,11,opt,name=Operator,proto3" json:"Operator,omitempty"` - IsShow uint64 `protobuf:"varint,12,opt,name=IsShow,proto3" json:"IsShow,omitempty"` - ShowTime string `protobuf:"bytes,13,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` - Address string `protobuf:"bytes,14,opt,name=Address,proto3" json:"Address,omitempty"` - Agent string `protobuf:"bytes,15,opt,name=Agent,proto3" json:"Agent,omitempty"` -} - -func (x *ArtExhibitionDetail) Reset() { - *x = ArtExhibitionDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ArtExhibitionDetail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ArtExhibitionDetail) ProtoMessage() {} - -func (x *ArtExhibitionDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ArtExhibitionDetail.ProtoReflect.Descriptor instead. -func (*ArtExhibitionDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{32} -} - -func (x *ArtExhibitionDetail) GetShowUID() string { - if x != nil { - return x.ShowUID - } - return "" -} - -func (x *ArtExhibitionDetail) GetShowSeq() string { - if x != nil { - return x.ShowSeq - } - return "" -} - -func (x *ArtExhibitionDetail) GetShowName() string { - if x != nil { - return x.ShowName - } - return "" -} - -func (x *ArtExhibitionDetail) GetArtistName() string { - if x != nil { - return x.ArtistName - } - return "" -} - -func (x *ArtExhibitionDetail) GetArtistUID() string { - if x != nil { - return x.ArtistUID - } - return "" -} - -func (x *ArtExhibitionDetail) GetArtworkNum() uint64 { - if x != nil { - return x.ArtworkNum - } - return 0 -} - -func (x *ArtExhibitionDetail) GetRuler() uint64 { - if x != nil { - return x.Ruler - } - return 0 -} - -func (x *ArtExhibitionDetail) GetPrice() uint64 { - if x != nil { - return x.Price - } - return 0 -} - -func (x *ArtExhibitionDetail) GetReward() uint64 { - if x != nil { - return x.Reward - } - return 0 -} - -func (x *ArtExhibitionDetail) GetCreateTime() string { - if x != nil { - return x.CreateTime - } - return "" -} - -func (x *ArtExhibitionDetail) GetOperator() string { - if x != nil { - return x.Operator - } - return "" -} - -func (x *ArtExhibitionDetail) GetIsShow() uint64 { - if x != nil { - return x.IsShow - } - return 0 -} - -func (x *ArtExhibitionDetail) GetShowTime() string { - if x != nil { - return x.ShowTime - } - return "" -} - -func (x *ArtExhibitionDetail) GetAddress() string { - if x != nil { - return x.Address - } - return "" -} - -func (x *ArtExhibitionDetail) GetAgent() string { - if x != nil { - return x.Agent - } - return "" -} - -type BundlePayPrice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` - ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` - ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` - ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` - ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` - ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` - ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` - ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` - ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` - Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` - Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` - OperationTimes int32 `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` -} - -func (x *BundlePayPrice) Reset() { - *x = BundlePayPrice{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BundlePayPrice) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BundlePayPrice) ProtoMessage() {} - -func (x *BundlePayPrice) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BundlePayPrice.ProtoReflect.Descriptor instead. -func (*BundlePayPrice) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{33} -} - -func (x *BundlePayPrice) GetShowUid() string { - if x != nil { - return x.ShowUid - } - return "" -} - -func (x *BundlePayPrice) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *BundlePayPrice) GetShowName() string { - if x != nil { - return x.ShowName - } - return "" -} - -func (x *BundlePayPrice) GetReceivedAt() string { - if x != nil { - return x.ReceivedAt - } - return "" -} - -func (x *BundlePayPrice) GetShowDate() string { - if x != nil { - return x.ShowDate - } - return "" -} - -func (x *BundlePayPrice) GetShowLowPrice() string { - if x != nil { - return x.ShowLowPrice - } - return "" -} - -func (x *BundlePayPrice) GetArtworkNum() uint64 { - if x != nil { - return x.ArtworkNum - } - return 0 -} - -func (x *BundlePayPrice) GetArtworkSize() string { - if x != nil { - return x.ArtworkSize - } - return "" -} - -func (x *BundlePayPrice) GetShowAddress() string { - if x != nil { - return x.ShowAddress - } - return "" -} - -func (x *BundlePayPrice) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *BundlePayPrice) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *BundlePayPrice) GetArtistName() string { - if x != nil { - return x.ArtistName - } - return "" -} - -func (x *BundlePayPrice) GetRollback() int32 { - if x != nil { - return x.Rollback - } - return 0 -} - -func (x *BundlePayPrice) GetOperationTimes() int32 { - if x != nil { - return x.OperationTimes - } - return 0 -} - -type CreateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - Status uint64 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Type string `protobuf:"bytes,4,opt,name=Type,json=type,proto3" json:"Type,omitempty"` - SubmitterID uint64 `protobuf:"varint,7,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` //审批人 - SubmitterName string `protobuf:"bytes,8,opt,name=SubmitterName,json=submitterName,proto3" json:"SubmitterName,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,9,rep,name=CopyUsers,json=copyName,proto3" json:"CopyUsers,omitempty"` //抄送人 - Content string `protobuf:"bytes,10,opt,name=Content,json=content,proto3" json:"Content,omitempty"` //申请内容 - Reply string `protobuf:"bytes,11,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` //回复 - CanView bool `protobuf:"varint,12,opt,name=CanView,json=canView,proto3" json:"CanView,omitempty"` //是否可以阅读 - Work *Work `protobuf:"bytes,13,opt,name=Work,json=work,proto3" json:"Work,omitempty"` - Show *Show `protobuf:"bytes,14,opt,name=Show,json=show,proto3" json:"Show,omitempty"` - Exhibition *Exhibition `protobuf:"bytes,15,opt,name=Exhibition,json=exhibition,proto3" json:"Exhibition,omitempty"` - Bundle *Bundle `protobuf:"bytes,16,opt,name=Bundle,json=bundle,proto3" json:"Bundle,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` //审批的人 - CanApproval bool `protobuf:"varint,18,opt,name=CanApproval,json=canApproval,proto3" json:"CanApproval,omitempty"` //审批的人 - WorkFlows []*WorkFlow `protobuf:"bytes,19,rep,name=WorkFlows,json=workFlows,proto3" json:"WorkFlows,omitempty"` //审批的人 - AllStatus uint64 `protobuf:"varint,20,opt,name=AllStatus,json=allStatus,proto3" json:"AllStatus,omitempty"` //状态 0 1 2 3已阅读 4-待阅读 - NowUserId uint64 `protobuf:"varint,21,opt,name=NowUserId,json=nowUserId,proto3" json:"NowUserId,omitempty"` - NowUserName string `protobuf:"bytes,22,opt,name=NowUserName,json=nowUserName,proto3" json:"NowUserName,omitempty"` - Level uint64 `protobuf:"varint,23,opt,name=Level,json=level,proto3" json:"Level,omitempty"` - NowLevel uint64 `protobuf:"varint,24,opt,name=NowLevel,json=nowLevel,proto3" json:"NowLevel,omitempty"` - CreatedAt string `protobuf:"bytes,25,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - CustomizeInfo []*KeyInfo `protobuf:"bytes,26,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` - IsCustom uint64 `protobuf:"varint,27,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` - TypeName string `protobuf:"bytes,28,opt,name=TypeName,json=typeName,proto3" json:"TypeName,omitempty"` - GroupName string `protobuf:"bytes,29,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` - BundlePayPrice *BundlePayPrice `protobuf:"bytes,30,opt,name=BundlePayPrice,json=bundlePayPrice,proto3" json:"BundlePayPrice,omitempty"` - ApprovalOA *ApprovalOA `protobuf:"bytes,31,opt,name=ApprovalOA,json=approvalOA,proto3" json:"ApprovalOA,omitempty"` - FinancialForm *FinancialForm `protobuf:"bytes,32,opt,name=FinancialForm,json=financialForm,proto3" json:"FinancialForm,omitempty"` -} - -func (x *CreateRequest) Reset() { - *x = CreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateRequest) ProtoMessage() {} - -func (x *CreateRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. -func (*CreateRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{34} -} - -func (x *CreateRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *CreateRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *CreateRequest) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *CreateRequest) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *CreateRequest) GetSubmitterID() uint64 { - if x != nil { - return x.SubmitterID - } - return 0 -} - -func (x *CreateRequest) GetSubmitterName() string { - if x != nil { - return x.SubmitterName - } - return "" -} - -func (x *CreateRequest) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *CreateRequest) GetContent() string { - if x != nil { - return x.Content - } - return "" -} - -func (x *CreateRequest) GetReply() string { - if x != nil { - return x.Reply - } - return "" -} - -func (x *CreateRequest) GetCanView() bool { - if x != nil { - return x.CanView - } - return false -} - -func (x *CreateRequest) GetWork() *Work { - if x != nil { - return x.Work - } - return nil -} - -func (x *CreateRequest) GetShow() *Show { - if x != nil { - return x.Show - } - return nil -} - -func (x *CreateRequest) GetExhibition() *Exhibition { - if x != nil { - return x.Exhibition - } - return nil -} - -func (x *CreateRequest) GetBundle() *Bundle { - if x != nil { - return x.Bundle - } - return nil -} - -func (x *CreateRequest) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -func (x *CreateRequest) GetCanApproval() bool { - if x != nil { - return x.CanApproval - } - return false -} - -func (x *CreateRequest) GetWorkFlows() []*WorkFlow { - if x != nil { - return x.WorkFlows - } - return nil -} - -func (x *CreateRequest) GetAllStatus() uint64 { - if x != nil { - return x.AllStatus - } - return 0 -} - -func (x *CreateRequest) GetNowUserId() uint64 { - if x != nil { - return x.NowUserId - } - return 0 -} - -func (x *CreateRequest) GetNowUserName() string { - if x != nil { - return x.NowUserName - } - return "" -} - -func (x *CreateRequest) GetLevel() uint64 { - if x != nil { - return x.Level - } - return 0 -} - -func (x *CreateRequest) GetNowLevel() uint64 { - if x != nil { - return x.NowLevel - } - return 0 -} - -func (x *CreateRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *CreateRequest) GetCustomizeInfo() []*KeyInfo { - if x != nil { - return x.CustomizeInfo - } - return nil -} - -func (x *CreateRequest) GetIsCustom() uint64 { - if x != nil { - return x.IsCustom - } - return 0 -} - -func (x *CreateRequest) GetTypeName() string { - if x != nil { - return x.TypeName - } - return "" -} - -func (x *CreateRequest) GetGroupName() string { - if x != nil { - return x.GroupName - } - return "" -} - -func (x *CreateRequest) GetBundlePayPrice() *BundlePayPrice { - if x != nil { - return x.BundlePayPrice - } - return nil -} - -func (x *CreateRequest) GetApprovalOA() *ApprovalOA { - if x != nil { - return x.ApprovalOA - } - return nil -} - -func (x *CreateRequest) GetFinancialForm() *FinancialForm { - if x != nil { - return x.FinancialForm - } - return nil -} - -type WorkFlow struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` - Name string `protobuf:"bytes,4,opt,name=Name,json=name,proto3" json:"Name,omitempty"` - Level uint64 `protobuf:"varint,5,opt,name=Level,json=level,proto3" json:"Level,omitempty"` - Status uint64 `protobuf:"varint,6,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Reply string `protobuf:"bytes,7,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` - OperatedAt string `protobuf:"bytes,8,opt,name=OperatedAt,json=operatedAt,proto3" json:"OperatedAt,omitempty"` -} - -func (x *WorkFlow) Reset() { - *x = WorkFlow{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WorkFlow) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WorkFlow) ProtoMessage() {} - -func (x *WorkFlow) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WorkFlow.ProtoReflect.Descriptor instead. -func (*WorkFlow) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{35} -} - -func (x *WorkFlow) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *WorkFlow) GetUserID() uint64 { - if x != nil { - return x.UserID - } - return 0 -} - -func (x *WorkFlow) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *WorkFlow) GetLevel() uint64 { - if x != nil { - return x.Level - } - return 0 -} - -func (x *WorkFlow) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *WorkFlow) GetReply() string { - if x != nil { - return x.Reply - } - return "" -} - -func (x *WorkFlow) GetOperatedAt() string { - if x != nil { - return x.OperatedAt - } - return "" -} - -type DetailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - UserId uint64 `protobuf:"varint,3,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` -} - -func (x *DetailRequest) Reset() { - *x = DetailRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DetailRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DetailRequest) ProtoMessage() {} - -func (x *DetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DetailRequest.ProtoReflect.Descriptor instead. -func (*DetailRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{36} -} - -func (x *DetailRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *DetailRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *DetailRequest) GetUserId() uint64 { - if x != nil { - return x.UserId - } - return 0 -} - -type RemoveRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IDs []uint64 `protobuf:"varint,1,rep,packed,name=IDs,proto3" json:"IDs,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` -} - -func (x *RemoveRequest) Reset() { - *x = RemoveRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveRequest) ProtoMessage() {} - -func (x *RemoveRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead. -func (*RemoveRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{37} -} - -func (x *RemoveRequest) GetIDs() []uint64 { - if x != nil { - return x.IDs - } - return nil -} - -func (x *RemoveRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type ApprovalResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalResponse) Reset() { - *x = ApprovalResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalResponse) ProtoMessage() {} - -func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalResponse.ProtoReflect.Descriptor instead. -func (*ApprovalResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{38} -} - -func (x *ApprovalResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type RemoveResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *RemoveResponse) Reset() { - *x = RemoveResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveResponse) ProtoMessage() {} - -func (x *RemoveResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead. -func (*RemoveResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{39} -} - -func (x *RemoveResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalExhibitionRemove struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *ApprovalExhibitionRemove) Reset() { - *x = ApprovalExhibitionRemove{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionRemove) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionRemove) ProtoMessage() {} - -func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalExhibitionRemove.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionRemove) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{40} -} - -func (x *ApprovalExhibitionRemove) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApprovalExhibitionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - ExhibitionID uint64 `protobuf:"varint,6,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` - ExhibitionName string `protobuf:"bytes,7,opt,name=ExhibitionName,json=exhibitionName,proto3" json:"ExhibitionName,omitempty"` - ArtworkID uint64 `protobuf:"varint,8,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` - ExhibitionSize string `protobuf:"bytes,9,opt,name=ExhibitionSize,json=exhibitionSize,proto3" json:"ExhibitionSize,omitempty"` - ExhibitionNumber string `protobuf:"bytes,10,opt,name=ExhibitionNumber,json=exhibitionNumber,proto3" json:"ExhibitionNumber,omitempty"` -} - -func (x *ApprovalExhibitionRequest) Reset() { - *x = ApprovalExhibitionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionRequest) ProtoMessage() {} - -func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalExhibitionRequest.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{41} -} - -func (x *ApprovalExhibitionRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetExhibitionID() uint64 { - if x != nil { - return x.ExhibitionID - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetExhibitionName() string { - if x != nil { - return x.ExhibitionName - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetArtworkID() uint64 { - if x != nil { - return x.ArtworkID - } - return 0 -} - -func (x *ApprovalExhibitionRequest) GetExhibitionSize() string { - if x != nil { - return x.ExhibitionSize - } - return "" -} - -func (x *ApprovalExhibitionRequest) GetExhibitionNumber() string { - if x != nil { - return x.ExhibitionNumber - } - return "" -} - -type ApprovalExhibitionDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` -} - -func (x *ApprovalExhibitionDetail) Reset() { - *x = ApprovalExhibitionDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalExhibitionDetail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalExhibitionDetail) ProtoMessage() {} - -func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalExhibitionDetail.ProtoReflect.Descriptor instead. -func (*ApprovalExhibitionDetail) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{42} -} - -func (x *ApprovalExhibitionDetail) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalExhibitionDetail) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type CopyUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` - IsViewed bool `protobuf:"varint,3,opt,name=IsViewed,json=isViewed,proto3" json:"IsViewed,omitempty"` -} - -func (x *CopyUser) Reset() { - *x = CopyUser{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CopyUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CopyUser) ProtoMessage() {} - -func (x *CopyUser) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CopyUser.ProtoReflect.Descriptor instead. -func (*CopyUser) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{43} -} - -func (x *CopyUser) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *CopyUser) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CopyUser) GetIsViewed() bool { - if x != nil { - return x.IsViewed - } - return false -} - -type ApprovalUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` - Level string `protobuf:"bytes,3,opt,name=Level,proto3" json:"Level,omitempty"` -} - -func (x *ApprovalUser) Reset() { - *x = ApprovalUser{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalUser) ProtoMessage() {} - -func (x *ApprovalUser) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalUser.ProtoReflect.Descriptor instead. -func (*ApprovalUser) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{44} -} - -func (x *ApprovalUser) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalUser) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *ApprovalUser) GetLevel() string { - if x != nil { - return x.Level - } - return "" -} - -type SettingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - KeyWord string `protobuf:"bytes,5,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,6,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,9,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` - Domain string `protobuf:"bytes,10,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` - CustomizeInfo []*KeyInfo `protobuf:"bytes,11,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` - IsCustom uint64 `protobuf:"varint,12,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` -} - -func (x *SettingRequest) Reset() { - *x = SettingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SettingRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SettingRequest) ProtoMessage() {} - -func (x *SettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SettingRequest.ProtoReflect.Descriptor instead. -func (*SettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{45} -} - -func (x *SettingRequest) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *SettingRequest) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *SettingRequest) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *SettingRequest) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *SettingRequest) GetKeyWord() string { - if x != nil { - return x.KeyWord - } - return "" -} - -func (x *SettingRequest) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *SettingRequest) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -func (x *SettingRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -func (x *SettingRequest) GetCustomizeInfo() []*KeyInfo { - if x != nil { - return x.CustomizeInfo - } - return nil -} - -func (x *SettingRequest) GetIsCustom() uint64 { - if x != nil { - return x.IsCustom - } - return 0 -} - -type DetailSettingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - KeyWord string `protobuf:"bytes,1,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` - Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` -} - -func (x *DetailSettingRequest) Reset() { - *x = DetailSettingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DetailSettingRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DetailSettingRequest) ProtoMessage() {} - -func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. -func (*DetailSettingRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{46} -} - -func (x *DetailSettingRequest) GetKeyWord() string { - if x != nil { - return x.KeyWord - } - return "" -} - -func (x *DetailSettingRequest) GetDomain() string { - if x != nil { - return x.Domain - } - return "" -} - -type SettingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` -} - -func (x *SettingResponse) Reset() { - *x = SettingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SettingResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SettingResponse) ProtoMessage() {} - -func (x *SettingResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. -func (*SettingResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{47} -} - -func (x *SettingResponse) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *SettingResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -type ApplyTime struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Date string `protobuf:"bytes,1,opt,name=Date,json=date,proto3" json:"Date,omitempty"` - Hour string `protobuf:"bytes,2,opt,name=Hour,json=hour,proto3" json:"Hour,omitempty"` - M string `protobuf:"bytes,3,opt,name=M,json=m,proto3" json:"M,omitempty"` -} - -func (x *ApplyTime) Reset() { - *x = ApplyTime{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApplyTime) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApplyTime) ProtoMessage() {} - -func (x *ApplyTime) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApplyTime.ProtoReflect.Descriptor instead. -func (*ApplyTime) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{48} -} - -func (x *ApplyTime) GetDate() string { - if x != nil { - return x.Date - } - return "" -} - -func (x *ApplyTime) GetHour() string { - if x != nil { - return x.Hour - } - return "" -} - -func (x *ApplyTime) GetM() string { - if x != nil { - return x.M - } - return "" -} - -type ApprovalOA struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - LeaveApply *LeaveApply `protobuf:"bytes,6,opt,name=LeaveApply,json=leaveApply,proto3" json:"LeaveApply,omitempty"` - OutWork *OutWorkApply `protobuf:"bytes,7,opt,name=OutWork,json=outWork,proto3" json:"OutWork,omitempty"` - MakeUp *MakeUpApply `protobuf:"bytes,8,opt,name=MakeUp,json=makeUp,proto3" json:"MakeUp,omitempty"` - Turnover *TurnoverApply `protobuf:"bytes,9,opt,name=Turnover,json=turnover,proto3" json:"Turnover,omitempty"` - OverTime *OverTimeApply `protobuf:"bytes,10,opt,name=OverTime,json=overTime,proto3" json:"OverTime,omitempty"` - Leave *Leave `protobuf:"bytes,11,opt,name=Leave,json=leave,proto3" json:"Leave,omitempty"` -} - -func (x *ApprovalOA) Reset() { - *x = ApprovalOA{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ApprovalOA) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ApprovalOA) ProtoMessage() {} - -func (x *ApprovalOA) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ApprovalOA.ProtoReflect.Descriptor instead. -func (*ApprovalOA) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{49} -} - -func (x *ApprovalOA) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *ApprovalOA) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *ApprovalOA) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *ApprovalOA) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *ApprovalOA) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *ApprovalOA) GetLeaveApply() *LeaveApply { - if x != nil { - return x.LeaveApply - } - return nil -} - -func (x *ApprovalOA) GetOutWork() *OutWorkApply { - if x != nil { - return x.OutWork - } - return nil -} - -func (x *ApprovalOA) GetMakeUp() *MakeUpApply { - if x != nil { - return x.MakeUp - } - return nil -} - -func (x *ApprovalOA) GetTurnover() *TurnoverApply { - if x != nil { - return x.Turnover - } - return nil -} - -func (x *ApprovalOA) GetOverTime() *OverTimeApply { - if x != nil { - return x.OverTime - } - return nil -} - -func (x *ApprovalOA) GetLeave() *Leave { - if x != nil { - return x.Leave - } - return nil -} - -type LeaveApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` - StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` - StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` - DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` - ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` - ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - Reason string `protobuf:"bytes,10,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` - VerifyFile []string `protobuf:"bytes,11,rep,name=VerifyFile,json=verifyFile,proto3" json:"VerifyFile,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,12,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,13,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` - LeaveBalance float32 `protobuf:"fixed32,14,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` -} - -func (x *LeaveApply) Reset() { - *x = LeaveApply{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LeaveApply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LeaveApply) ProtoMessage() {} - -func (x *LeaveApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LeaveApply.ProtoReflect.Descriptor instead. -func (*LeaveApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{50} -} - -func (x *LeaveApply) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *LeaveApply) GetStaffUID() uint64 { - if x != nil { - return x.StaffUID - } - return 0 -} - -func (x *LeaveApply) GetStaffNum() string { - if x != nil { - return x.StaffNum - } - return "" -} - -func (x *LeaveApply) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *LeaveApply) GetDepartmentUID() string { - if x != nil { - return x.DepartmentUID - } - return "" -} - -func (x *LeaveApply) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *LeaveApply) GetActionTime() string { - if x != nil { - return x.ActionTime - } - return "" -} - -func (x *LeaveApply) GetApprovalID() string { - if x != nil { - return x.ApprovalID - } - return "" -} - -func (x *LeaveApply) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *LeaveApply) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -func (x *LeaveApply) GetVerifyFile() []string { - if x != nil { - return x.VerifyFile - } - return nil -} - -func (x *LeaveApply) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *LeaveApply) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -func (x *LeaveApply) GetLeaveBalance() float32 { - if x != nil { - return x.LeaveBalance - } - return 0 -} - -type OutWorkApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` - StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` - StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` - DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` - ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` - ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` - Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` - Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` - OutWorkAddress string `protobuf:"bytes,14,opt,name=OutWorkAddress,json=outWorkAddress,proto3" json:"OutWorkAddress,omitempty"` - Vehicle string `protobuf:"bytes,15,opt,name=Vehicle,json=vehicle,proto3" json:"Vehicle,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,16,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` -} - -func (x *OutWorkApply) Reset() { - *x = OutWorkApply{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OutWorkApply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OutWorkApply) ProtoMessage() {} - -func (x *OutWorkApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use OutWorkApply.ProtoReflect.Descriptor instead. -func (*OutWorkApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{51} -} - -func (x *OutWorkApply) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *OutWorkApply) GetStaffUID() uint64 { - if x != nil { - return x.StaffUID - } - return 0 -} - -func (x *OutWorkApply) GetStaffNum() string { - if x != nil { - return x.StaffNum - } - return "" -} - -func (x *OutWorkApply) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *OutWorkApply) GetDepartmentUID() string { - if x != nil { - return x.DepartmentUID - } - return "" -} - -func (x *OutWorkApply) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *OutWorkApply) GetActionTime() string { - if x != nil { - return x.ActionTime - } - return "" -} - -func (x *OutWorkApply) GetApprovalID() string { - if x != nil { - return x.ApprovalID - } - return "" -} - -func (x *OutWorkApply) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *OutWorkApply) GetApplyTimes() []*ApplyTime { - if x != nil { - return x.ApplyTimes - } - return nil -} - -func (x *OutWorkApply) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -func (x *OutWorkApply) GetHours() float32 { - if x != nil { - return x.Hours - } - return 0 -} - -func (x *OutWorkApply) GetOutWorkAddress() string { - if x != nil { - return x.OutWorkAddress - } - return "" -} - -func (x *OutWorkApply) GetVehicle() string { - if x != nil { - return x.Vehicle - } - return "" -} - -func (x *OutWorkApply) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *OutWorkApply) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -type MakeUpApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` - StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` - StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` - DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` - ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` - ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` - Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,13,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,14,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` -} - -func (x *MakeUpApply) Reset() { - *x = MakeUpApply{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MakeUpApply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MakeUpApply) ProtoMessage() {} - -func (x *MakeUpApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MakeUpApply.ProtoReflect.Descriptor instead. -func (*MakeUpApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{52} -} - -func (x *MakeUpApply) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *MakeUpApply) GetStaffUID() uint64 { - if x != nil { - return x.StaffUID - } - return 0 -} - -func (x *MakeUpApply) GetStaffNum() string { - if x != nil { - return x.StaffNum - } - return "" -} - -func (x *MakeUpApply) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *MakeUpApply) GetDepartmentUID() string { - if x != nil { - return x.DepartmentUID - } - return "" -} - -func (x *MakeUpApply) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *MakeUpApply) GetActionTime() string { - if x != nil { - return x.ActionTime - } - return "" -} - -func (x *MakeUpApply) GetApprovalID() string { - if x != nil { - return x.ApprovalID - } - return "" -} - -func (x *MakeUpApply) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *MakeUpApply) GetApplyTimes() []*ApplyTime { - if x != nil { - return x.ApplyTimes - } - return nil -} - -func (x *MakeUpApply) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -func (x *MakeUpApply) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *MakeUpApply) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -type TurnoverApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` - StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` - StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` - DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` - ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` - ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - HandoverUID uint64 `protobuf:"varint,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` - HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` - ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` - Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` -} - -func (x *TurnoverApply) Reset() { - *x = TurnoverApply{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TurnoverApply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TurnoverApply) ProtoMessage() {} - -func (x *TurnoverApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TurnoverApply.ProtoReflect.Descriptor instead. -func (*TurnoverApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{53} -} - -func (x *TurnoverApply) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *TurnoverApply) GetStaffUID() uint64 { - if x != nil { - return x.StaffUID - } - return 0 -} - -func (x *TurnoverApply) GetStaffNum() string { - if x != nil { - return x.StaffNum - } - return "" -} - -func (x *TurnoverApply) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *TurnoverApply) GetDepartmentUID() string { - if x != nil { - return x.DepartmentUID - } - return "" -} - -func (x *TurnoverApply) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *TurnoverApply) GetActionTime() string { - if x != nil { - return x.ActionTime - } - return "" -} - -func (x *TurnoverApply) GetApprovalID() string { - if x != nil { - return x.ApprovalID - } - return "" -} - -func (x *TurnoverApply) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *TurnoverApply) GetHandoverUID() uint64 { - if x != nil { - return x.HandoverUID - } - return 0 -} - -func (x *TurnoverApply) GetHandoverName() string { - if x != nil { - return x.HandoverName - } - return "" -} - -func (x *TurnoverApply) GetApplyTimes() []*ApplyTime { - if x != nil { - return x.ApplyTimes - } - return nil -} - -func (x *TurnoverApply) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -func (x *TurnoverApply) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *TurnoverApply) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -type OverTimeApply struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` - StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` - StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` - DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` - ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` - ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` - Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` - Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` -} - -func (x *OverTimeApply) Reset() { - *x = OverTimeApply{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OverTimeApply) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OverTimeApply) ProtoMessage() {} - -func (x *OverTimeApply) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use OverTimeApply.ProtoReflect.Descriptor instead. -func (*OverTimeApply) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{54} -} - -func (x *OverTimeApply) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *OverTimeApply) GetStaffUID() uint64 { - if x != nil { - return x.StaffUID - } - return 0 -} - -func (x *OverTimeApply) GetStaffNum() string { - if x != nil { - return x.StaffNum - } - return "" -} - -func (x *OverTimeApply) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *OverTimeApply) GetDepartmentUID() string { - if x != nil { - return x.DepartmentUID - } - return "" -} - -func (x *OverTimeApply) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *OverTimeApply) GetActionTime() string { - if x != nil { - return x.ActionTime - } - return "" -} - -func (x *OverTimeApply) GetApprovalID() string { - if x != nil { - return x.ApprovalID - } - return "" -} - -func (x *OverTimeApply) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *OverTimeApply) GetApplyTimes() []*ApplyTime { - if x != nil { - return x.ApplyTimes - } - return nil -} - -func (x *OverTimeApply) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -func (x *OverTimeApply) GetHours() float32 { - if x != nil { - return x.Hours - } - return 0 -} - -func (x *OverTimeApply) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *OverTimeApply) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -type Leave struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` - StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` - StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` - DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` - ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` - ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` - Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` - Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` - Days float32 `protobuf:"fixed32,14,opt,name=Days,json=days,proto3" json:"Days,omitempty"` - CopyUsers []*CopyUser `protobuf:"bytes,15,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` - ApprovalUsers []*ApprovalUser `protobuf:"bytes,16,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` -} - -func (x *Leave) Reset() { - *x = Leave{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Leave) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Leave) ProtoMessage() {} - -func (x *Leave) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Leave.ProtoReflect.Descriptor instead. -func (*Leave) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{55} -} - -func (x *Leave) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *Leave) GetStaffUID() uint64 { - if x != nil { - return x.StaffUID - } - return 0 -} - -func (x *Leave) GetStaffNum() string { - if x != nil { - return x.StaffNum - } - return "" -} - -func (x *Leave) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *Leave) GetDepartmentUID() string { - if x != nil { - return x.DepartmentUID - } - return "" -} - -func (x *Leave) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *Leave) GetActionTime() string { - if x != nil { - return x.ActionTime - } - return "" -} - -func (x *Leave) GetApprovalID() string { - if x != nil { - return x.ApprovalID - } - return "" -} - -func (x *Leave) GetStatus() int32 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *Leave) GetApplyTimes() []*ApplyTime { - if x != nil { - return x.ApplyTimes - } - return nil -} - -func (x *Leave) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -func (x *Leave) GetHours() float32 { - if x != nil { - return x.Hours - } - return 0 -} - -func (x *Leave) GetDays() float32 { - if x != nil { - return x.Days - } - return 0 -} - -func (x *Leave) GetCopyUsers() []*CopyUser { - if x != nil { - return x.CopyUsers - } - return nil -} - -func (x *Leave) GetApprovalUsers() []*ApprovalUser { - if x != nil { - return x.ApprovalUsers - } - return nil -} - -type UpdateApprovalOAUUIDReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - ApplyType string `protobuf:"bytes,2,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` - ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` -} - -func (x *UpdateApprovalOAUUIDReq) Reset() { - *x = UpdateApprovalOAUUIDReq{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateApprovalOAUUIDReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateApprovalOAUUIDReq) ProtoMessage() {} - -func (x *UpdateApprovalOAUUIDReq) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateApprovalOAUUIDReq.ProtoReflect.Descriptor instead. -func (*UpdateApprovalOAUUIDReq) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{56} -} - -func (x *UpdateApprovalOAUUIDReq) GetUUID() string { - if x != nil { - return x.UUID - } - return "" -} - -func (x *UpdateApprovalOAUUIDReq) GetApplyType() string { - if x != nil { - return x.ApplyType - } - return "" -} - -func (x *UpdateApprovalOAUUIDReq) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -type UpdateApprovalOAUUIDResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` -} - -func (x *UpdateApprovalOAUUIDResponse) Reset() { - *x = UpdateApprovalOAUUIDResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateApprovalOAUUIDResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateApprovalOAUUIDResponse) ProtoMessage() {} - -func (x *UpdateApprovalOAUUIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateApprovalOAUUIDResponse.ProtoReflect.Descriptor instead. -func (*UpdateApprovalOAUUIDResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{57} -} - -func (x *UpdateApprovalOAUUIDResponse) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -// 财务报表审批 -type GetNameRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SettingType string `protobuf:"bytes,1,opt,name=SettingType,json=settingType,proto3" json:"SettingType,omitempty"` -} - -func (x *GetNameRequest) Reset() { - *x = GetNameRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetNameRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetNameRequest) ProtoMessage() {} - -func (x *GetNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. -func (*GetNameRequest) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{58} -} - -func (x *GetNameRequest) GetSettingType() string { - if x != nil { - return x.SettingType - } - return "" -} - -type GetNameResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name []string `protobuf:"bytes,1,rep,name=Name,json=name,proto3" json:"Name,omitempty"` -} - -func (x *GetNameResponse) Reset() { - *x = GetNameResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetNameResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetNameResponse) ProtoMessage() {} - -func (x *GetNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. -func (*GetNameResponse) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{59} -} - -func (x *GetNameResponse) GetName() []string { - if x != nil { - return x.Name - } - return nil -} - -type FinancialForm struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` - DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` - UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` - ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` - PaymentCompany string `protobuf:"bytes,6,opt,name=PaymentCompany,json=paymentCompany,proto3" json:"PaymentCompany,omitempty"` - TransactionDepartment string `protobuf:"bytes,7,opt,name=TransactionDepartment,json=transactionDepartment,proto3" json:"TransactionDepartment,omitempty"` - Payee string `protobuf:"bytes,8,opt,name=Payee,json=payee,proto3" json:"Payee,omitempty"` - BeneficiaryBank string `protobuf:"bytes,9,opt,name=BeneficiaryBank,json=beneficiaryBank,proto3" json:"BeneficiaryBank,omitempty"` - BankNo string `protobuf:"bytes,10,opt,name=BankNo,json=bankNo,proto3" json:"BankNo,omitempty"` - CostInfo []*CostInfo `protobuf:"bytes,11,rep,name=CostInfo,json=costInfo,proto3" json:"CostInfo,omitempty"` - PaymentMethod string `protobuf:"bytes,12,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` - InvoiceInfo []*InvoiceInfo `protobuf:"bytes,13,rep,name=InvoiceInfo,json=invoiceInfo,proto3" json:"InvoiceInfo,omitempty"` -} - -func (x *FinancialForm) Reset() { - *x = FinancialForm{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FinancialForm) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FinancialForm) ProtoMessage() {} - -func (x *FinancialForm) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. -func (*FinancialForm) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{60} -} - -func (x *FinancialForm) GetID() uint64 { - if x != nil { - return x.ID - } - return 0 -} - -func (x *FinancialForm) GetDeletedAt() uint64 { - if x != nil { - return x.DeletedAt - } - return 0 -} - -func (x *FinancialForm) GetCreatedAt() string { - if x != nil { - return x.CreatedAt - } - return "" -} - -func (x *FinancialForm) GetUpdatedAt() string { - if x != nil { - return x.UpdatedAt - } - return "" -} - -func (x *FinancialForm) GetApprovalID() uint64 { - if x != nil { - return x.ApprovalID - } - return 0 -} - -func (x *FinancialForm) GetPaymentCompany() string { - if x != nil { - return x.PaymentCompany - } - return "" -} - -func (x *FinancialForm) GetTransactionDepartment() string { - if x != nil { - return x.TransactionDepartment - } - return "" -} - -func (x *FinancialForm) GetPayee() string { - if x != nil { - return x.Payee - } - return "" -} - -func (x *FinancialForm) GetBeneficiaryBank() string { - if x != nil { - return x.BeneficiaryBank - } - return "" -} - -func (x *FinancialForm) GetBankNo() string { - if x != nil { - return x.BankNo - } - return "" -} - -func (x *FinancialForm) GetCostInfo() []*CostInfo { - if x != nil { - return x.CostInfo - } - return nil -} - -func (x *FinancialForm) GetPaymentMethod() string { - if x != nil { - return x.PaymentMethod - } - return "" -} - -func (x *FinancialForm) GetInvoiceInfo() []*InvoiceInfo { - if x != nil { - return x.InvoiceInfo - } - return nil -} - -type CostInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` - UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` - CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` - CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` - TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` - UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` -} - -func (x *CostInfo) Reset() { - *x = CostInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CostInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CostInfo) ProtoMessage() {} - -func (x *CostInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CostInfo.ProtoReflect.Descriptor instead. -func (*CostInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{61} -} - -func (x *CostInfo) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *CostInfo) GetUnitPrice() string { - if x != nil { - return x.UnitPrice - } - return "" -} - -func (x *CostInfo) GetCostUnit() string { - if x != nil { - return x.CostUnit - } - return "" -} - -func (x *CostInfo) GetCostNum() int64 { - if x != nil { - return x.CostNum - } - return 0 -} - -func (x *CostInfo) GetTotalPrice() string { - if x != nil { - return x.TotalPrice - } - return "" -} - -func (x *CostInfo) GetUsedDepartment() string { - if x != nil { - return x.UsedDepartment - } - return "" -} - -type InvoiceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` - InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` - InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` - Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` - UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` - Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` - PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` - PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` - InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` - Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` -} - -func (x *InvoiceInfo) Reset() { - *x = InvoiceInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_api_approval_approval_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InvoiceInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InvoiceInfo) ProtoMessage() {} - -func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { - mi := &file_api_approval_approval_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use InvoiceInfo.ProtoReflect.Descriptor instead. -func (*InvoiceInfo) Descriptor() ([]byte, []int) { - return file_api_approval_approval_proto_rawDescGZIP(), []int{62} -} - -func (x *InvoiceInfo) GetInvoiceDate() string { - if x != nil { - return x.InvoiceDate - } - return "" -} - -func (x *InvoiceInfo) GetInvoiceNo() string { - if x != nil { - return x.InvoiceNo - } - return "" -} - -func (x *InvoiceInfo) GetInvoiceProvider() string { - if x != nil { - return x.InvoiceProvider - } - return "" -} - -func (x *InvoiceInfo) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -func (x *InvoiceInfo) GetUseTo() string { - if x != nil { - return x.UseTo - } - return "" -} - -func (x *InvoiceInfo) GetApplicant() string { - if x != nil { - return x.Applicant - } - return "" -} - -func (x *InvoiceInfo) GetPaymentMethod() string { - if x != nil { - return x.PaymentMethod - } - return "" -} - -func (x *InvoiceInfo) GetPaymentObj() string { - if x != nil { - return x.PaymentObj - } - return "" -} - -func (x *InvoiceInfo) GetInvoiceType() string { - if x != nil { - return x.InvoiceType - } - return "" -} - -func (x *InvoiceInfo) GetNotes() string { - if x != nil { - return x.Notes - } - return "" -} - -var File_api_approval_approval_proto protoreflect.FileDescriptor - -var file_api_approval_approval_proto_rawDesc = []byte{ - 0x0a, 0x1b, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x1a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x77, 0x69, 0x74, 0x6b, 0x6f, 0x77, 0x2f, 0x67, 0x6f, 0x2d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x40, - 0x76, 0x30, 0x2e, 0x33, 0x2e, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x62, 0x0a, 0x16, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, - 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x17, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x50, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4b, 0x65, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x22, 0x6a, 0x0a, 0x16, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, - 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x50, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x4f, 0x0a, 0x15, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x22, 0x68, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x0d, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, - 0x86, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, - 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x58, 0x0a, 0x0f, 0x41, 0x6c, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, - 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2f, 0x0a, - 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x5e, - 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, - 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, - 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x27, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, - 0xe2, 0xdf, 0x1f, 0x0b, 0x10, 0x00, 0x18, 0x04, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x38, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, - 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, - 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, - 0x73, 0x73, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x65, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6f, 0x69, 0x6e, - 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x6f, - 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, - 0x46, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7e, 0x0a, 0x06, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, 0x04, 0x53, - 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, - 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0c, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x6f, - 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x57, 0x6f, 0x72, 0x6b, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, - 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2d, - 0x0a, 0x08, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x4f, 0x0a, - 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x61, 0x72, 0x74, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, - 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xf8, - 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x69, 0x64, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, - 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x4e, 0x0a, - 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, - 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0x85, 0x03, 0x0a, 0x07, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, - 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x53, - 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, - 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x44, 0x22, 0xa7, 0x03, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, - 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, - 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x72, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, - 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xb6, 0x03, 0x0a, 0x0e, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, - 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x68, 0x6f, - 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x22, 0xbc, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, - 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, - 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, - 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, - 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, - 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, - 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, - 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, - 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, - 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, - 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, - 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, - 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, - 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, - 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, - 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, - 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, - 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, - 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, - 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, - 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, - 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, - 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, - 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, - 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, - 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, - 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, - 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, - 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, - 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, - 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, - 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, - 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, - 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x32, 0xf1, 0x0c, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, - 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, - 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, - 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, - 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, - 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, - 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, - 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, - 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, - 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, - 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, - 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, - 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, - 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, - 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, - 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, - 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_api_approval_approval_proto_rawDescOnce sync.Once - file_api_approval_approval_proto_rawDescData = file_api_approval_approval_proto_rawDesc -) - -func file_api_approval_approval_proto_rawDescGZIP() []byte { - file_api_approval_approval_proto_rawDescOnce.Do(func() { - file_api_approval_approval_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_approval_approval_proto_rawDescData) - }) - return file_api_approval_approval_proto_rawDescData -} - -var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 63) -var file_api_approval_approval_proto_goTypes = []interface{}{ - (*CommonResponse)(nil), // 0: approval.CommonResponse - (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest - (*IsExistPayRightRequest)(nil), // 2: approval.IsExistPayRightRequest - (*IsExistPayRightResponse)(nil), // 3: approval.IsExistPayRightResponse - (*KeyInfo)(nil), // 4: approval.KeyInfo - (*UpdateEhApplyIDRequest)(nil), // 5: approval.UpdateEhApplyIDRequest - (*UpdateEhApplyIDResponse)(nil), // 6: approval.UpdateEhApplyIDResponse - (*UsedNumByUserRequest)(nil), // 7: approval.UsedNumByUserRequest - (*UsedNumByUserResponse)(nil), // 8: approval.UsedNumByUserResponse - (*NowLevelByInfoRequest)(nil), // 9: approval.NowLevelByInfoRequest - (*WorkFlowResponse)(nil), // 10: approval.WorkFlowResponse - (*CommonRequest)(nil), // 11: approval.CommonRequest - (*CreateTypeRequest)(nil), // 12: approval.CreateTypeRequest - (*TypeResponse)(nil), // 13: approval.TypeResponse - (*AllTypeResponse)(nil), // 14: approval.AllTypeResponse - (*CreateTypeGroupRequest)(nil), // 15: approval.CreateTypeGroupRequest - (*AllGroupResponse)(nil), // 16: approval.AllGroupResponse - (*StatusRequest)(nil), // 17: approval.StatusRequest - (*StatusResponse)(nil), // 18: approval.StatusResponse - (*ListRequest)(nil), // 19: approval.ListRequest - (*ListResponse)(nil), // 20: approval.ListResponse - (*ViewedRequest)(nil), // 21: approval.ViewedRequest - (*InformationRequest)(nil), // 22: approval.InformationRequest - (*Information)(nil), // 23: approval.Information - (*InformationResponse)(nil), // 24: approval.InformationResponse - (*Bundle)(nil), // 25: approval.Bundle - (*Show)(nil), // 26: approval.Show - (*ApprovalWork)(nil), // 27: approval.ApprovalWork - (*Work)(nil), // 28: approval.Work - (*ApprovalExhibition)(nil), // 29: approval.ApprovalExhibition - (*Exhibition)(nil), // 30: approval.Exhibition - (*Artwork)(nil), // 31: approval.Artwork - (*ArtExhibitionDetail)(nil), // 32: approval.ArtExhibitionDetail - (*BundlePayPrice)(nil), // 33: approval.BundlePayPrice - (*CreateRequest)(nil), // 34: approval.CreateRequest - (*WorkFlow)(nil), // 35: approval.WorkFlow - (*DetailRequest)(nil), // 36: approval.DetailRequest - (*RemoveRequest)(nil), // 37: approval.RemoveRequest - (*ApprovalResponse)(nil), // 38: approval.ApprovalResponse - (*RemoveResponse)(nil), // 39: approval.RemoveResponse - (*ApprovalExhibitionRemove)(nil), // 40: approval.ApprovalExhibitionRemove - (*ApprovalExhibitionRequest)(nil), // 41: approval.ApprovalExhibitionRequest - (*ApprovalExhibitionDetail)(nil), // 42: approval.ApprovalExhibitionDetail - (*CopyUser)(nil), // 43: approval.CopyUser - (*ApprovalUser)(nil), // 44: approval.ApprovalUser - (*SettingRequest)(nil), // 45: approval.SettingRequest - (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest - (*SettingResponse)(nil), // 47: approval.SettingResponse - (*ApplyTime)(nil), // 48: approval.ApplyTime - (*ApprovalOA)(nil), // 49: approval.ApprovalOA - (*LeaveApply)(nil), // 50: approval.LeaveApply - (*OutWorkApply)(nil), // 51: approval.OutWorkApply - (*MakeUpApply)(nil), // 52: approval.MakeUpApply - (*TurnoverApply)(nil), // 53: approval.TurnoverApply - (*OverTimeApply)(nil), // 54: approval.OverTimeApply - (*Leave)(nil), // 55: approval.Leave - (*UpdateApprovalOAUUIDReq)(nil), // 56: approval.UpdateApprovalOAUUIDReq - (*UpdateApprovalOAUUIDResponse)(nil), // 57: approval.UpdateApprovalOAUUIDResponse - (*GetNameRequest)(nil), // 58: approval.GetNameRequest - (*GetNameResponse)(nil), // 59: approval.GetNameResponse - (*FinancialForm)(nil), // 60: approval.FinancialForm - (*CostInfo)(nil), // 61: approval.CostInfo - (*InvoiceInfo)(nil), // 62: approval.InvoiceInfo -} -var file_api_approval_approval_proto_depIdxs = []int32{ - 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo - 12, // 1: approval.AllTypeResponse.Data:type_name -> approval.CreateTypeRequest - 12, // 2: approval.CreateTypeGroupRequest.List:type_name -> approval.CreateTypeRequest - 15, // 3: approval.AllGroupResponse.Data:type_name -> approval.CreateTypeGroupRequest - 34, // 4: approval.ListResponse.data:type_name -> approval.CreateRequest - 23, // 5: approval.InformationResponse.MySubmitInfo:type_name -> approval.Information - 23, // 6: approval.InformationResponse.SubmitMeInfo:type_name -> approval.Information - 23, // 7: approval.InformationResponse.DomainInfo:type_name -> approval.Information - 27, // 8: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork - 31, // 9: approval.ApprovalExhibition.Artworks:type_name -> approval.Artwork - 32, // 10: approval.ApprovalExhibition.ArtExhibitionDetail:type_name -> approval.ArtExhibitionDetail - 29, // 11: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition - 43, // 12: approval.CreateRequest.CopyUsers:type_name -> approval.CopyUser - 28, // 13: approval.CreateRequest.Work:type_name -> approval.Work - 26, // 14: approval.CreateRequest.Show:type_name -> approval.Show - 30, // 15: approval.CreateRequest.Exhibition:type_name -> approval.Exhibition - 25, // 16: approval.CreateRequest.Bundle:type_name -> approval.Bundle - 44, // 17: approval.CreateRequest.ApprovalUsers:type_name -> approval.ApprovalUser - 35, // 18: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow - 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo - 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice - 49, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA - 60, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm - 43, // 23: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser - 44, // 24: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser - 4, // 25: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo - 50, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply - 51, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply - 52, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply - 53, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply - 54, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply - 55, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave - 43, // 32: approval.LeaveApply.CopyUsers:type_name -> approval.CopyUser - 44, // 33: approval.LeaveApply.ApprovalUsers:type_name -> approval.ApprovalUser - 48, // 34: approval.OutWorkApply.ApplyTimes:type_name -> approval.ApplyTime - 43, // 35: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser - 44, // 36: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser - 48, // 37: approval.MakeUpApply.ApplyTimes:type_name -> approval.ApplyTime - 43, // 38: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser - 44, // 39: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser - 48, // 40: approval.TurnoverApply.ApplyTimes:type_name -> approval.ApplyTime - 43, // 41: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser - 44, // 42: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser - 48, // 43: approval.OverTimeApply.ApplyTimes:type_name -> approval.ApplyTime - 43, // 44: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser - 44, // 45: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser - 48, // 46: approval.Leave.ApplyTimes:type_name -> approval.ApplyTime - 43, // 47: approval.Leave.CopyUsers:type_name -> approval.CopyUser - 44, // 48: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser - 61, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo - 62, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo - 34, // 51: approval.Approval.Create:input_type -> approval.CreateRequest - 7, // 52: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest - 5, // 53: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest - 36, // 54: approval.Approval.Detail:input_type -> approval.DetailRequest - 34, // 55: approval.Approval.Update:input_type -> approval.CreateRequest - 37, // 56: approval.Approval.Remove:input_type -> approval.RemoveRequest - 19, // 57: approval.Approval.MyWork:input_type -> approval.ListRequest - 19, // 58: approval.Approval.MySubmit:input_type -> approval.ListRequest - 9, // 59: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest - 22, // 60: approval.Approval.Information:input_type -> approval.InformationRequest - 21, // 61: approval.Approval.Viewed:input_type -> approval.ViewedRequest - 17, // 62: approval.Approval.SetStatus:input_type -> approval.StatusRequest - 46, // 63: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest - 45, // 64: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest - 2, // 65: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest - 1, // 66: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest - 12, // 67: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest - 13, // 68: approval.Approval.DetailType:input_type -> approval.TypeResponse - 12, // 69: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest - 11, // 70: approval.Approval.AllType:input_type -> approval.CommonRequest - 37, // 71: approval.Approval.RemoveType:input_type -> approval.RemoveRequest - 11, // 72: approval.Approval.AllGroup:input_type -> approval.CommonRequest - 58, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest - 56, // 74: approval.Approval.UpdateApprovalOAUUID:input_type -> approval.UpdateApprovalOAUUIDReq - 38, // 75: approval.Approval.Create:output_type -> approval.ApprovalResponse - 8, // 76: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse - 6, // 77: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse - 34, // 78: approval.Approval.Detail:output_type -> approval.CreateRequest - 38, // 79: approval.Approval.Update:output_type -> approval.ApprovalResponse - 39, // 80: approval.Approval.Remove:output_type -> approval.RemoveResponse - 20, // 81: approval.Approval.MyWork:output_type -> approval.ListResponse - 20, // 82: approval.Approval.MySubmit:output_type -> approval.ListResponse - 10, // 83: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse - 24, // 84: approval.Approval.Information:output_type -> approval.InformationResponse - 38, // 85: approval.Approval.Viewed:output_type -> approval.ApprovalResponse - 18, // 86: approval.Approval.SetStatus:output_type -> approval.StatusResponse - 45, // 87: approval.Approval.DetailSetting:output_type -> approval.SettingRequest - 47, // 88: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse - 3, // 89: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse - 0, // 90: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse - 13, // 91: approval.Approval.CreateType:output_type -> approval.TypeResponse - 12, // 92: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest - 13, // 93: approval.Approval.UpdateType:output_type -> approval.TypeResponse - 14, // 94: approval.Approval.AllType:output_type -> approval.AllTypeResponse - 18, // 95: approval.Approval.RemoveType:output_type -> approval.StatusResponse - 16, // 96: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse - 59, // 97: approval.Approval.GetName:output_type -> approval.GetNameResponse - 57, // 98: approval.Approval.UpdateApprovalOAUUID:output_type -> approval.UpdateApprovalOAUUIDResponse - 75, // [75:99] is the sub-list for method output_type - 51, // [51:75] is the sub-list for method input_type - 51, // [51:51] is the sub-list for extension type_name - 51, // [51:51] is the sub-list for extension extendee - 0, // [0:51] is the sub-list for field type_name -} - -func init() { file_api_approval_approval_proto_init() } -func file_api_approval_approval_proto_init() { - if File_api_approval_approval_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_api_approval_approval_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeBundlePayRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsExistPayRightRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsExistPayRightResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeyInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateEhApplyIDRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateEhApplyIDResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsedNumByUserRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsedNumByUserResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NowLevelByInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkFlowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTypeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TypeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AllTypeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTypeGroupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AllGroupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ViewedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InformationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Information); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InformationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bundle); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Show); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalWork); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Work); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Exhibition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Artwork); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtExhibitionDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BundlePayPrice); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkFlow); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DetailRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionRemove); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalExhibitionDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CopyUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DetailSettingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyTime); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApprovalOA); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveApply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutWorkApply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MakeUpApply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TurnoverApply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OverTimeApply); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Leave); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateApprovalOAUUIDReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateApprovalOAUUIDResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNameRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNameResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinancialForm); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CostInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_approval_approval_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvoiceInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_api_approval_approval_proto_rawDesc, - NumEnums: 0, - NumMessages: 63, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_api_approval_approval_proto_goTypes, - DependencyIndexes: file_api_approval_approval_proto_depIdxs, - MessageInfos: file_api_approval_approval_proto_msgTypes, - }.Build() - File_api_approval_approval_proto = out.File - file_api_approval_approval_proto_rawDesc = nil - file_api_approval_approval_proto_goTypes = nil - file_api_approval_approval_proto_depIdxs = nil -} diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go deleted file mode 100644 index 27bf287..0000000 --- a/api/approval/approval.validator.pb.go +++ /dev/null @@ -1,545 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: api/approval/approval.proto - -package approval - -import ( - fmt "fmt" - math "math" - proto "github.com/golang/protobuf/proto" - _ "github.com/mwitkow/go-proto-validators" - github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func (this *CommonResponse) Validate() error { - return nil -} -func (this *ChangeBundlePayRequest) Validate() error { - return nil -} -func (this *IsExistPayRightRequest) Validate() error { - return nil -} -func (this *IsExistPayRightResponse) Validate() error { - return nil -} -func (this *KeyInfo) Validate() error { - return nil -} -func (this *UpdateEhApplyIDRequest) Validate() error { - return nil -} -func (this *UpdateEhApplyIDResponse) Validate() error { - return nil -} -func (this *UsedNumByUserRequest) Validate() error { - return nil -} -func (this *UsedNumByUserResponse) Validate() error { - return nil -} -func (this *NowLevelByInfoRequest) Validate() error { - return nil -} -func (this *WorkFlowResponse) Validate() error { - return nil -} -func (this *CommonRequest) Validate() error { - return nil -} -func (this *CreateTypeRequest) Validate() error { - for _, item := range this.KeyInfos { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("KeyInfos", err) - } - } - } - return nil -} -func (this *TypeResponse) Validate() error { - return nil -} -func (this *AllTypeResponse) Validate() error { - for _, item := range this.Data { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Data", err) - } - } - } - return nil -} -func (this *CreateTypeGroupRequest) Validate() error { - for _, item := range this.List { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("List", err) - } - } - } - return nil -} -func (this *AllGroupResponse) Validate() error { - for _, item := range this.Data { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Data", err) - } - } - } - return nil -} -func (this *StatusRequest) Validate() error { - if !(this.Status > 0) { - return github_com_mwitkow_go_proto_validators.FieldError("Status", fmt.Errorf(`70008`)) - } - if !(this.Status < 4) { - return github_com_mwitkow_go_proto_validators.FieldError("Status", fmt.Errorf(`70008`)) - } - return nil -} -func (this *StatusResponse) Validate() error { - return nil -} -func (this *ListRequest) Validate() error { - if this.Domain == "" { - return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) - } - return nil -} -func (this *ListResponse) Validate() error { - for _, item := range this.Data { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Data", err) - } - } - } - return nil -} -func (this *ViewedRequest) Validate() error { - return nil -} -func (this *InformationRequest) Validate() error { - return nil -} -func (this *Information) Validate() error { - return nil -} -func (this *InformationResponse) Validate() error { - if this.MySubmitInfo != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MySubmitInfo); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("MySubmitInfo", err) - } - } - if this.SubmitMeInfo != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.SubmitMeInfo); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("SubmitMeInfo", err) - } - } - if this.DomainInfo != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DomainInfo); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("DomainInfo", err) - } - } - return nil -} -func (this *Bundle) Validate() error { - return nil -} -func (this *Show) Validate() error { - return nil -} -func (this *ApprovalWork) Validate() error { - return nil -} -func (this *Work) Validate() error { - for _, item := range this.ApprovalWorks { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalWorks", err) - } - } - } - return nil -} -func (this *ApprovalExhibition) Validate() error { - for _, item := range this.Artworks { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Artworks", err) - } - } - } - if this.ArtExhibitionDetail != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ArtExhibitionDetail); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ArtExhibitionDetail", err) - } - } - return nil -} -func (this *Exhibition) Validate() error { - for _, item := range this.ApprovalExhibitions { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalExhibitions", err) - } - } - } - return nil -} -func (this *Artwork) Validate() error { - return nil -} -func (this *ArtExhibitionDetail) Validate() error { - return nil -} -func (this *BundlePayPrice) Validate() error { - return nil -} -func (this *CreateRequest) Validate() error { - if this.Domain == "" { - return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) - } - if this.Type == "" { - return github_com_mwitkow_go_proto_validators.FieldError("Type", fmt.Errorf(`70009`)) - } - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - if this.Work != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Work); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Work", err) - } - } - if this.Show != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Show); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Show", err) - } - } - if this.Exhibition != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Exhibition); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Exhibition", err) - } - } - if this.Bundle != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Bundle); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Bundle", err) - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - for _, item := range this.WorkFlows { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("WorkFlows", err) - } - } - } - for _, item := range this.CustomizeInfo { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CustomizeInfo", err) - } - } - } - if this.BundlePayPrice != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.BundlePayPrice); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err) - } - } - if this.ApprovalOA != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ApprovalOA); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalOA", err) - } - } - if this.FinancialForm != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.FinancialForm); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("FinancialForm", err) - } - } - return nil -} -func (this *WorkFlow) Validate() error { - return nil -} -func (this *DetailRequest) Validate() error { - return nil -} -func (this *RemoveRequest) Validate() error { - return nil -} -func (this *ApprovalResponse) Validate() error { - return nil -} -func (this *RemoveResponse) Validate() error { - return nil -} -func (this *ApprovalExhibitionRemove) Validate() error { - return nil -} -func (this *ApprovalExhibitionRequest) Validate() error { - return nil -} -func (this *ApprovalExhibitionDetail) Validate() error { - return nil -} -func (this *CopyUser) Validate() error { - return nil -} -func (this *ApprovalUser) Validate() error { - return nil -} -func (this *SettingRequest) Validate() error { - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - for _, item := range this.CustomizeInfo { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CustomizeInfo", err) - } - } - } - return nil -} -func (this *DetailSettingRequest) Validate() error { - return nil -} -func (this *SettingResponse) Validate() error { - return nil -} -func (this *ApplyTime) Validate() error { - return nil -} -func (this *ApprovalOA) Validate() error { - if this.LeaveApply != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.LeaveApply); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("LeaveApply", err) - } - } - if this.OutWork != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OutWork); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("OutWork", err) - } - } - if this.MakeUp != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MakeUp); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("MakeUp", err) - } - } - if this.Turnover != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Turnover); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Turnover", err) - } - } - if this.OverTime != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OverTime); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("OverTime", err) - } - } - if this.Leave != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Leave); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("Leave", err) - } - } - return nil -} -func (this *LeaveApply) Validate() error { - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - return nil -} -func (this *OutWorkApply) Validate() error { - for _, item := range this.ApplyTimes { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) - } - } - } - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - return nil -} -func (this *MakeUpApply) Validate() error { - for _, item := range this.ApplyTimes { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) - } - } - } - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - return nil -} -func (this *TurnoverApply) Validate() error { - for _, item := range this.ApplyTimes { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) - } - } - } - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - return nil -} -func (this *OverTimeApply) Validate() error { - for _, item := range this.ApplyTimes { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) - } - } - } - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - return nil -} -func (this *Leave) Validate() error { - for _, item := range this.ApplyTimes { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) - } - } - } - for _, item := range this.CopyUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) - } - } - } - for _, item := range this.ApprovalUsers { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) - } - } - } - return nil -} -func (this *UpdateApprovalOAUUIDReq) Validate() error { - return nil -} -func (this *UpdateApprovalOAUUIDResponse) Validate() error { - return nil -} -func (this *GetNameRequest) Validate() error { - return nil -} -func (this *GetNameResponse) Validate() error { - return nil -} -func (this *FinancialForm) Validate() error { - for _, item := range this.CostInfo { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("CostInfo", err) - } - } - } - for _, item := range this.InvoiceInfo { - if item != nil { - if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { - return github_com_mwitkow_go_proto_validators.FieldError("InvoiceInfo", err) - } - } - } - return nil -} -func (this *CostInfo) Validate() error { - return nil -} -func (this *InvoiceInfo) Validate() error { - return nil -} diff --git a/api/approval/approval_triple.pb.go b/api/approval/approval_triple.pb.go deleted file mode 100644 index eb011f4..0000000 --- a/api/approval/approval_triple.pb.go +++ /dev/null @@ -1,1186 +0,0 @@ -// Code generated by protoc-gen-go-triple. DO NOT EDIT. -// versions: -// - protoc-gen-go-triple v1.0.8 -// - protoc v3.10.1 -// source: api/approval/approval.proto - -package approval - -import ( - context "context" - protocol "dubbo.apache.org/dubbo-go/v3/protocol" - dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3" - invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation" - grpc_go "github.com/dubbogo/grpc-go" - codes "github.com/dubbogo/grpc-go/codes" - metadata "github.com/dubbogo/grpc-go/metadata" - status "github.com/dubbogo/grpc-go/status" - common "github.com/dubbogo/triple/pkg/common" - constant "github.com/dubbogo/triple/pkg/common/constant" - triple "github.com/dubbogo/triple/pkg/triple" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc_go.SupportPackageIsVersion7 - -// ApprovalClient is the client API for Approval service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type ApprovalClient interface { - Create(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) - UsedNumByUser(ctx context.Context, in *UsedNumByUserRequest, opts ...grpc_go.CallOption) (*UsedNumByUserResponse, common.ErrorWithAttachment) - UpdateExhibitionApplyID(ctx context.Context, in *UpdateEhApplyIDRequest, opts ...grpc_go.CallOption) (*UpdateEhApplyIDResponse, common.ErrorWithAttachment) - Detail(ctx context.Context, in *DetailRequest, opts ...grpc_go.CallOption) (*CreateRequest, common.ErrorWithAttachment) - Update(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) - Remove(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*RemoveResponse, common.ErrorWithAttachment) - MyWork(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) - MySubmit(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) - NowLevelByInfo(ctx context.Context, in *NowLevelByInfoRequest, opts ...grpc_go.CallOption) (*WorkFlowResponse, common.ErrorWithAttachment) - Information(ctx context.Context, in *InformationRequest, opts ...grpc_go.CallOption) (*InformationResponse, common.ErrorWithAttachment) - Viewed(ctx context.Context, in *ViewedRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) - SetStatus(ctx context.Context, in *StatusRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) - DetailSetting(ctx context.Context, in *DetailSettingRequest, opts ...grpc_go.CallOption) (*SettingRequest, common.ErrorWithAttachment) - UpdateSetting(ctx context.Context, in *SettingRequest, opts ...grpc_go.CallOption) (*SettingResponse, common.ErrorWithAttachment) - IsExistPayRight(ctx context.Context, in *IsExistPayRightRequest, opts ...grpc_go.CallOption) (*IsExistPayRightResponse, common.ErrorWithAttachment) - ChangeBundlePay(ctx context.Context, in *ChangeBundlePayRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) - CreateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) - DetailType(ctx context.Context, in *TypeResponse, opts ...grpc_go.CallOption) (*CreateTypeRequest, common.ErrorWithAttachment) - UpdateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) - AllType(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllTypeResponse, common.ErrorWithAttachment) - RemoveType(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) - AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment) - // 财务报表审批 - GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment) - // OA审批 更新 OA系统的 UUID - UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) -} - -type approvalClient struct { - cc *triple.TripleConn -} - -type ApprovalClientImpl struct { - Create func(ctx context.Context, in *CreateRequest) (*ApprovalResponse, error) - UsedNumByUser func(ctx context.Context, in *UsedNumByUserRequest) (*UsedNumByUserResponse, error) - UpdateExhibitionApplyID func(ctx context.Context, in *UpdateEhApplyIDRequest) (*UpdateEhApplyIDResponse, error) - Detail func(ctx context.Context, in *DetailRequest) (*CreateRequest, error) - Update func(ctx context.Context, in *CreateRequest) (*ApprovalResponse, error) - Remove func(ctx context.Context, in *RemoveRequest) (*RemoveResponse, error) - MyWork func(ctx context.Context, in *ListRequest) (*ListResponse, error) - MySubmit func(ctx context.Context, in *ListRequest) (*ListResponse, error) - NowLevelByInfo func(ctx context.Context, in *NowLevelByInfoRequest) (*WorkFlowResponse, error) - Information func(ctx context.Context, in *InformationRequest) (*InformationResponse, error) - Viewed func(ctx context.Context, in *ViewedRequest) (*ApprovalResponse, error) - SetStatus func(ctx context.Context, in *StatusRequest) (*StatusResponse, error) - DetailSetting func(ctx context.Context, in *DetailSettingRequest) (*SettingRequest, error) - UpdateSetting func(ctx context.Context, in *SettingRequest) (*SettingResponse, error) - IsExistPayRight func(ctx context.Context, in *IsExistPayRightRequest) (*IsExistPayRightResponse, error) - ChangeBundlePay func(ctx context.Context, in *ChangeBundlePayRequest) (*CommonResponse, error) - CreateType func(ctx context.Context, in *CreateTypeRequest) (*TypeResponse, error) - DetailType func(ctx context.Context, in *TypeResponse) (*CreateTypeRequest, error) - UpdateType func(ctx context.Context, in *CreateTypeRequest) (*TypeResponse, error) - AllType func(ctx context.Context, in *CommonRequest) (*AllTypeResponse, error) - RemoveType func(ctx context.Context, in *RemoveRequest) (*StatusResponse, error) - AllGroup func(ctx context.Context, in *CommonRequest) (*AllGroupResponse, error) - GetName func(ctx context.Context, in *GetNameRequest) (*GetNameResponse, error) - UpdateApprovalOAUUID func(ctx context.Context, in *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) -} - -func (c *ApprovalClientImpl) GetDubboStub(cc *triple.TripleConn) ApprovalClient { - return NewApprovalClient(cc) -} - -func (c *ApprovalClientImpl) XXX_InterfaceName() string { - return "approval.Approval" -} - -func NewApprovalClient(cc *triple.TripleConn) ApprovalClient { - return &approvalClient{cc} -} - -func (c *approvalClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { - out := new(ApprovalResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Create", in, out) -} - -func (c *approvalClient) UsedNumByUser(ctx context.Context, in *UsedNumByUserRequest, opts ...grpc_go.CallOption) (*UsedNumByUserResponse, common.ErrorWithAttachment) { - out := new(UsedNumByUserResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UsedNumByUser", in, out) -} - -func (c *approvalClient) UpdateExhibitionApplyID(ctx context.Context, in *UpdateEhApplyIDRequest, opts ...grpc_go.CallOption) (*UpdateEhApplyIDResponse, common.ErrorWithAttachment) { - out := new(UpdateEhApplyIDResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateExhibitionApplyID", in, out) -} - -func (c *approvalClient) Detail(ctx context.Context, in *DetailRequest, opts ...grpc_go.CallOption) (*CreateRequest, common.ErrorWithAttachment) { - out := new(CreateRequest) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Detail", in, out) -} - -func (c *approvalClient) Update(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { - out := new(ApprovalResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Update", in, out) -} - -func (c *approvalClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*RemoveResponse, common.ErrorWithAttachment) { - out := new(RemoveResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Remove", in, out) -} - -func (c *approvalClient) MyWork(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) { - out := new(ListResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MyWork", in, out) -} - -func (c *approvalClient) MySubmit(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) { - out := new(ListResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MySubmit", in, out) -} - -func (c *approvalClient) NowLevelByInfo(ctx context.Context, in *NowLevelByInfoRequest, opts ...grpc_go.CallOption) (*WorkFlowResponse, common.ErrorWithAttachment) { - out := new(WorkFlowResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/NowLevelByInfo", in, out) -} - -func (c *approvalClient) Information(ctx context.Context, in *InformationRequest, opts ...grpc_go.CallOption) (*InformationResponse, common.ErrorWithAttachment) { - out := new(InformationResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Information", in, out) -} - -func (c *approvalClient) Viewed(ctx context.Context, in *ViewedRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { - out := new(ApprovalResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Viewed", in, out) -} - -func (c *approvalClient) SetStatus(ctx context.Context, in *StatusRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) { - out := new(StatusResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SetStatus", in, out) -} - -func (c *approvalClient) DetailSetting(ctx context.Context, in *DetailSettingRequest, opts ...grpc_go.CallOption) (*SettingRequest, common.ErrorWithAttachment) { - out := new(SettingRequest) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DetailSetting", in, out) -} - -func (c *approvalClient) UpdateSetting(ctx context.Context, in *SettingRequest, opts ...grpc_go.CallOption) (*SettingResponse, common.ErrorWithAttachment) { - out := new(SettingResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateSetting", in, out) -} - -func (c *approvalClient) IsExistPayRight(ctx context.Context, in *IsExistPayRightRequest, opts ...grpc_go.CallOption) (*IsExistPayRightResponse, common.ErrorWithAttachment) { - out := new(IsExistPayRightResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/IsExistPayRight", in, out) -} - -func (c *approvalClient) ChangeBundlePay(ctx context.Context, in *ChangeBundlePayRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { - out := new(CommonResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ChangeBundlePay", in, out) -} - -func (c *approvalClient) CreateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) { - out := new(TypeResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateType", in, out) -} - -func (c *approvalClient) DetailType(ctx context.Context, in *TypeResponse, opts ...grpc_go.CallOption) (*CreateTypeRequest, common.ErrorWithAttachment) { - out := new(CreateTypeRequest) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DetailType", in, out) -} - -func (c *approvalClient) UpdateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) { - out := new(TypeResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateType", in, out) -} - -func (c *approvalClient) AllType(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllTypeResponse, common.ErrorWithAttachment) { - out := new(AllTypeResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AllType", in, out) -} - -func (c *approvalClient) RemoveType(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) { - out := new(StatusResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RemoveType", in, out) -} - -func (c *approvalClient) AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment) { - out := new(AllGroupResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AllGroup", in, out) -} - -func (c *approvalClient) GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment) { - out := new(GetNameResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetName", in, out) -} - -func (c *approvalClient) UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) { - out := new(UpdateApprovalOAUUIDResponse) - interfaceKey := ctx.Value(constant.InterfaceKey).(string) - return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateApprovalOAUUID", in, out) -} - -// ApprovalServer is the server API for Approval service. -// All implementations must embed UnimplementedApprovalServer -// for forward compatibility -type ApprovalServer interface { - Create(context.Context, *CreateRequest) (*ApprovalResponse, error) - UsedNumByUser(context.Context, *UsedNumByUserRequest) (*UsedNumByUserResponse, error) - UpdateExhibitionApplyID(context.Context, *UpdateEhApplyIDRequest) (*UpdateEhApplyIDResponse, error) - Detail(context.Context, *DetailRequest) (*CreateRequest, error) - Update(context.Context, *CreateRequest) (*ApprovalResponse, error) - Remove(context.Context, *RemoveRequest) (*RemoveResponse, error) - MyWork(context.Context, *ListRequest) (*ListResponse, error) - MySubmit(context.Context, *ListRequest) (*ListResponse, error) - NowLevelByInfo(context.Context, *NowLevelByInfoRequest) (*WorkFlowResponse, error) - Information(context.Context, *InformationRequest) (*InformationResponse, error) - Viewed(context.Context, *ViewedRequest) (*ApprovalResponse, error) - SetStatus(context.Context, *StatusRequest) (*StatusResponse, error) - DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) - UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) - IsExistPayRight(context.Context, *IsExistPayRightRequest) (*IsExistPayRightResponse, error) - ChangeBundlePay(context.Context, *ChangeBundlePayRequest) (*CommonResponse, error) - CreateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) - DetailType(context.Context, *TypeResponse) (*CreateTypeRequest, error) - UpdateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) - AllType(context.Context, *CommonRequest) (*AllTypeResponse, error) - RemoveType(context.Context, *RemoveRequest) (*StatusResponse, error) - AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error) - // 财务报表审批 - GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) - // OA审批 更新 OA系统的 UUID - UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) - mustEmbedUnimplementedApprovalServer() -} - -// UnimplementedApprovalServer must be embedded to have forward compatible implementations. -type UnimplementedApprovalServer struct { - proxyImpl protocol.Invoker -} - -func (UnimplementedApprovalServer) Create(context.Context, *CreateRequest) (*ApprovalResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Create not implemented") -} -func (UnimplementedApprovalServer) UsedNumByUser(context.Context, *UsedNumByUserRequest) (*UsedNumByUserResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UsedNumByUser not implemented") -} -func (UnimplementedApprovalServer) UpdateExhibitionApplyID(context.Context, *UpdateEhApplyIDRequest) (*UpdateEhApplyIDResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateExhibitionApplyID not implemented") -} -func (UnimplementedApprovalServer) Detail(context.Context, *DetailRequest) (*CreateRequest, error) { - return nil, status.Errorf(codes.Unimplemented, "method Detail not implemented") -} -func (UnimplementedApprovalServer) Update(context.Context, *CreateRequest) (*ApprovalResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Update not implemented") -} -func (UnimplementedApprovalServer) Remove(context.Context, *RemoveRequest) (*RemoveResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Remove not implemented") -} -func (UnimplementedApprovalServer) MyWork(context.Context, *ListRequest) (*ListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MyWork not implemented") -} -func (UnimplementedApprovalServer) MySubmit(context.Context, *ListRequest) (*ListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MySubmit not implemented") -} -func (UnimplementedApprovalServer) NowLevelByInfo(context.Context, *NowLevelByInfoRequest) (*WorkFlowResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NowLevelByInfo not implemented") -} -func (UnimplementedApprovalServer) Information(context.Context, *InformationRequest) (*InformationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Information not implemented") -} -func (UnimplementedApprovalServer) Viewed(context.Context, *ViewedRequest) (*ApprovalResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Viewed not implemented") -} -func (UnimplementedApprovalServer) SetStatus(context.Context, *StatusRequest) (*StatusResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetStatus not implemented") -} -func (UnimplementedApprovalServer) DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) { - return nil, status.Errorf(codes.Unimplemented, "method DetailSetting not implemented") -} -func (UnimplementedApprovalServer) UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateSetting not implemented") -} -func (UnimplementedApprovalServer) IsExistPayRight(context.Context, *IsExistPayRightRequest) (*IsExistPayRightResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method IsExistPayRight not implemented") -} -func (UnimplementedApprovalServer) ChangeBundlePay(context.Context, *ChangeBundlePayRequest) (*CommonResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeBundlePay not implemented") -} -func (UnimplementedApprovalServer) CreateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateType not implemented") -} -func (UnimplementedApprovalServer) DetailType(context.Context, *TypeResponse) (*CreateTypeRequest, error) { - return nil, status.Errorf(codes.Unimplemented, "method DetailType not implemented") -} -func (UnimplementedApprovalServer) UpdateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateType not implemented") -} -func (UnimplementedApprovalServer) AllType(context.Context, *CommonRequest) (*AllTypeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AllType not implemented") -} -func (UnimplementedApprovalServer) RemoveType(context.Context, *RemoveRequest) (*StatusResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RemoveType not implemented") -} -func (UnimplementedApprovalServer) AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AllGroup not implemented") -} -func (UnimplementedApprovalServer) GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetName not implemented") -} -func (UnimplementedApprovalServer) UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateApprovalOAUUID not implemented") -} -func (s *UnimplementedApprovalServer) XXX_SetProxyImpl(impl protocol.Invoker) { - s.proxyImpl = impl -} - -func (s *UnimplementedApprovalServer) XXX_GetProxyImpl() protocol.Invoker { - return s.proxyImpl -} - -func (s *UnimplementedApprovalServer) XXX_ServiceDesc() *grpc_go.ServiceDesc { - return &Approval_ServiceDesc -} -func (s *UnimplementedApprovalServer) XXX_InterfaceName() string { - return "approval.Approval" -} - -func (UnimplementedApprovalServer) mustEmbedUnimplementedApprovalServer() {} - -// UnsafeApprovalServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to ApprovalServer will -// result in compilation errors. -type UnsafeApprovalServer interface { - mustEmbedUnimplementedApprovalServer() -} - -func RegisterApprovalServer(s grpc_go.ServiceRegistrar, srv ApprovalServer) { - s.RegisterService(&Approval_ServiceDesc, srv) -} - -func _Approval_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("Create", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_UsedNumByUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(UsedNumByUserRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("UsedNumByUser", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_UpdateExhibitionApplyID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateEhApplyIDRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("UpdateExhibitionApplyID", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_Detail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(DetailRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("Detail", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("Update", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_Remove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("Remove", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_MyWork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(ListRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("MyWork", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_MySubmit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(ListRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("MySubmit", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_NowLevelByInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(NowLevelByInfoRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("NowLevelByInfo", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_Information_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(InformationRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("Information", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_Viewed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(ViewedRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("Viewed", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_SetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(StatusRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("SetStatus", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_DetailSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(DetailSettingRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("DetailSetting", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_UpdateSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(SettingRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("UpdateSetting", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_IsExistPayRight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(IsExistPayRightRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("IsExistPayRight", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_ChangeBundlePay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeBundlePayRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("ChangeBundlePay", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_CreateType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateTypeRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("CreateType", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_DetailType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(TypeResponse) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("DetailType", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_UpdateType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateTypeRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("UpdateType", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_AllType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CommonRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("AllType", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_RemoveType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("RemoveType", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_AllGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(CommonRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("AllGroup", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_GetName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(GetNameRequest) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("GetName", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -func _Approval_UpdateApprovalOAUUID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateApprovalOAUUIDReq) - if err := dec(in); err != nil { - return nil, err - } - base := srv.(dubbo3.Dubbo3GrpcService) - args := []interface{}{} - args = append(args, in) - md, _ := metadata.FromIncomingContext(ctx) - invAttachment := make(map[string]interface{}, len(md)) - for k, v := range md { - invAttachment[k] = v - } - invo := invocation.NewRPCInvocation("UpdateApprovalOAUUID", args, invAttachment) - if interceptor == nil { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - info := &grpc_go.UnaryServerInfo{ - Server: srv, - FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - result := base.XXX_GetProxyImpl().Invoke(ctx, invo) - return result, result.Error() - } - return interceptor(ctx, in, info, handler) -} - -// Approval_ServiceDesc is the grpc_go.ServiceDesc for Approval service. -// It's only intended for direct use with grpc_go.RegisterService, -// and not to be introspected or modified (even as a copy) -var Approval_ServiceDesc = grpc_go.ServiceDesc{ - ServiceName: "approval.Approval", - HandlerType: (*ApprovalServer)(nil), - Methods: []grpc_go.MethodDesc{ - { - MethodName: "Create", - Handler: _Approval_Create_Handler, - }, - { - MethodName: "UsedNumByUser", - Handler: _Approval_UsedNumByUser_Handler, - }, - { - MethodName: "UpdateExhibitionApplyID", - Handler: _Approval_UpdateExhibitionApplyID_Handler, - }, - { - MethodName: "Detail", - Handler: _Approval_Detail_Handler, - }, - { - MethodName: "Update", - Handler: _Approval_Update_Handler, - }, - { - MethodName: "Remove", - Handler: _Approval_Remove_Handler, - }, - { - MethodName: "MyWork", - Handler: _Approval_MyWork_Handler, - }, - { - MethodName: "MySubmit", - Handler: _Approval_MySubmit_Handler, - }, - { - MethodName: "NowLevelByInfo", - Handler: _Approval_NowLevelByInfo_Handler, - }, - { - MethodName: "Information", - Handler: _Approval_Information_Handler, - }, - { - MethodName: "Viewed", - Handler: _Approval_Viewed_Handler, - }, - { - MethodName: "SetStatus", - Handler: _Approval_SetStatus_Handler, - }, - { - MethodName: "DetailSetting", - Handler: _Approval_DetailSetting_Handler, - }, - { - MethodName: "UpdateSetting", - Handler: _Approval_UpdateSetting_Handler, - }, - { - MethodName: "IsExistPayRight", - Handler: _Approval_IsExistPayRight_Handler, - }, - { - MethodName: "ChangeBundlePay", - Handler: _Approval_ChangeBundlePay_Handler, - }, - { - MethodName: "CreateType", - Handler: _Approval_CreateType_Handler, - }, - { - MethodName: "DetailType", - Handler: _Approval_DetailType_Handler, - }, - { - MethodName: "UpdateType", - Handler: _Approval_UpdateType_Handler, - }, - { - MethodName: "AllType", - Handler: _Approval_AllType_Handler, - }, - { - MethodName: "RemoveType", - Handler: _Approval_RemoveType_Handler, - }, - { - MethodName: "AllGroup", - Handler: _Approval_AllGroup_Handler, - }, - { - MethodName: "GetName", - Handler: _Approval_GetName_Handler, - }, - { - MethodName: "UpdateApprovalOAUUID", - Handler: _Approval_UpdateApprovalOAUUID_Handler, - }, - }, - Streams: []grpc_go.StreamDesc{}, - Metadata: "api/approval/approval.proto", -} From fdbd0b8680cd03a77e8fba60053d1d649088f8af Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:52:40 +0800 Subject: [PATCH 63/64] =?UTF-8?q?=E5=88=A0=E9=99=A4=20approval=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.proto | 615 ------------------------------------ 1 file changed, 615 deletions(-) delete mode 100644 api/approval/approval.proto diff --git a/api/approval/approval.proto b/api/approval/approval.proto deleted file mode 100644 index 1c363f6..0000000 --- a/api/approval/approval.proto +++ /dev/null @@ -1,615 +0,0 @@ -syntax = "proto3"; -package approval; -import "github.com/mwitkow/go-proto-validators@v0.3.2/validator.proto"; - -option go_package = "./;approval"; - -// The approval service definition. -service Approval { - - rpc Create(CreateRequest) returns (ApprovalResponse) {}; - rpc UsedNumByUser(UsedNumByUserRequest) returns (UsedNumByUserResponse) {};//获取此用户能创建多少个画展包 - rpc UpdateExhibitionApplyID(UpdateEhApplyIDRequest) returns (UpdateEhApplyIDResponse) {};//同步画展包的ID - - rpc Detail(DetailRequest) returns (CreateRequest) {}; - rpc Update(CreateRequest) returns (ApprovalResponse) {}; - rpc Remove(RemoveRequest) returns (RemoveResponse) {}; - rpc MyWork(ListRequest) returns (ListResponse) {};// 我的工作---待处理 - rpc MySubmit(ListRequest) returns (ListResponse) {};// 我的提交 - rpc NowLevelByInfo(NowLevelByInfoRequest) returns (WorkFlowResponse) {}; - rpc Information(InformationRequest) returns (InformationResponse) {}; - rpc Viewed(ViewedRequest) returns (ApprovalResponse) {}; - rpc SetStatus(StatusRequest) returns (StatusResponse) {}; - rpc DetailSetting(DetailSettingRequest) returns (SettingRequest) {}; - rpc UpdateSetting(SettingRequest) returns (SettingResponse) {}; - rpc IsExistPayRight(IsExistPayRightRequest) returns (IsExistPayRightResponse) {};//是否有 - rpc ChangeBundlePay(ChangeBundlePayRequest) returns (CommonResponse) {};//是否有 - - rpc CreateType(CreateTypeRequest) returns (TypeResponse) {}; - rpc DetailType(TypeResponse) returns (CreateTypeRequest) {}; - rpc UpdateType(CreateTypeRequest) returns (TypeResponse) {}; - rpc AllType(CommonRequest) returns (AllTypeResponse) {}; - rpc RemoveType(RemoveRequest) returns (StatusResponse) {}; - rpc AllGroup(CommonRequest) returns (AllGroupResponse) {}; - - // 财务报表审批 - rpc GetName(GetNameRequest) returns (GetNameResponse) {}; - - // OA审批 更新 OA系统的 UUID - rpc UpdateApprovalOAUUID(UpdateApprovalOAUUIDReq) returns (UpdateApprovalOAUUIDResponse) {}; -} - -message CommonResponse { - -} - -message ChangeBundlePayRequest { - string Domain = 1 [json_name = "domain"]; - uint64 ID = 2 [json_name = "ID"]; - uint64 Status = 3 [json_name = "Status"]; -} - -message IsExistPayRightRequest { - string Domain = 1 [json_name = "domain"]; - uint64 UserId = 2 [json_name = "userId"]; - string ShowUid = 3 [json_name = "showUid"]; -} - -message IsExistPayRightResponse { - bool IsPass = 1 [json_name = "isPass"]; -} - -message KeyInfo { - string ApprovalKey = 1 [json_name = "approvalKey"]; - string ApprovalName = 2 [json_name = "approvalName"]; - string ApprovalType = 3 [json_name = "approvalType"]; - string ApprovalValue = 4 [json_name = "approvalValue"]; - bool ApprovalMark = 5 [json_name = "approvalMark"]; -} - -message UpdateEhApplyIDRequest { - string Domain = 1 [json_name = "domain"]; - uint64 ApprovalID = 2 [json_name = "approvalID"]; - string ApplyId = 3 [json_name = "applyId"]; -} - -message UpdateEhApplyIDResponse { -} - -message UsedNumByUserRequest { - string Domain = 1 [json_name = "domain"]; - uint64 SubmitterID = 2 [json_name = "submitterID"]; -} - -message UsedNumByUserResponse { - uint64 total = 1 [json_name = "total"]; -} - -message NowLevelByInfoRequest { - string Domain = 1 [json_name = "domain"]; - uint64 ApprovalID = 2 [json_name = "ApprovalID"]; -} - -message WorkFlowResponse { - uint64 ID = 2 [json_name = "ID"]; - string Reply = 3 [json_name = "Reply"]; - uint64 Status = 5 [json_name = "status"]; - uint64 UserID = 7 [json_name = "userID"]; -} - -message CommonRequest { - string Domain = 1 [json_name = "domain"]; - uint64 Page = 2 [json_name = "Page"]; - uint64 PageSize = 3 [json_name = "pageSize"]; - uint64 GroupId = 4 [json_name = "groupId"]; -} - -message CreateTypeRequest { - string Domain = 1 [json_name = "domain"]; - uint64 ID = 2 [json_name = "ID"]; - string Title = 3 [json_name = "title"]; - string Remark = 5 [json_name = "remark"]; - string KeyWord = 6 [json_name = "keyWord"]; - repeated KeyInfo KeyInfos = 7 [json_name = "keyInfos"]; - uint64 IsCustom = 8 [json_name = "isCustom"]; - uint64 GroupId = 9 [json_name = "groupId"]; - string GroupName = 10 [json_name = "groupName"]; -} - -message TypeResponse { - uint64 ID = 1; - string Domain = 2; - string Keyword = 3; -} - -message AllTypeResponse { - repeated CreateTypeRequest Data = 1; - uint64 Count = 2; -} - -message CreateTypeGroupRequest { - uint64 ID = 1 [json_name = "ID"]; - string Domain = 2 [json_name = "domain"]; - string Title = 3 [json_name = "title"]; - repeated CreateTypeRequest List = 4 [json_name = "list"]; -} - -message AllGroupResponse { - repeated CreateTypeGroupRequest Data = 1; - uint64 Count = 2; -} - -message StatusRequest { - string Domain = 1 [json_name = "domain"]; - uint64 ID = 2 [json_name = "ID"]; - string Reply = 3 [json_name = "Reply"]; - uint64 WorkFlowId = 4 [json_name = "workFlowId"]; - uint64 Status = 5 [json_name = "status",(validator.field) = {int_lt: 4,int_gt: 0,human_error: "70008"}]; - uint64 Level = 6 [json_name = "level"]; - string Title = 7 [json_name = "title"]; - uint64 UserId = 8 [json_name = "userId"]; - string LeaveBalance = 9 [json_name = "leaveBalance"]; -} - -message StatusResponse { - -} - -message ListRequest { - string Domain = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; - uint64 PageSize = 2 [json_name = "PageSize"]; // - uint64 Page = 3 [json_name = "Page"]; // - uint64 Status = 4 [json_name = "status"];//0待审批 1-审批成功 2-拒绝 4-是所有 - string Type = 5 [json_name = "type"]; //类型 - uint64 UserID = 6 [json_name = "userID"]; // - uint64 ApprovedBossId = 7 [json_name = "approvedBossId"]; // -} - -message ListResponse { - uint64 Count = 1 [json_name = "count"]; - repeated CreateRequest data = 2 [json_name = "data"]; -} - -message ViewedRequest { - string Domain = 1 [json_name = "domain"]; - uint64 ID = 2 [json_name = "ID"]; - uint64 UserID = 3 [json_name = "userID"]; -} - -message InformationRequest { - string Domain = 1 [json_name = "domain"]; - uint64 UserID = 2 [json_name = "userID"]; - string Type = 3 [json_name = "type"]; -} - -message Information { - uint64 Total = 1 [json_name = "total"]; // 已提交的审批 (总量) - uint64 DoingTotal = 2 [json_name = "doingTotal"]; // 正在审批数量 - uint64 SuccessTotal = 3 [json_name = "successTotal"]; // 审批完成数量 - uint64 FailTotal = 4 [json_name = "failTotal"]; // 审批未通过 -} - -message InformationResponse { - Information MySubmitInfo = 1 [json_name = "mySubmitInfo"]; // 我提交的; - Information SubmitMeInfo = 2 [json_name = "submitMeInfo"]; // 提交给我的; - Information DomainInfo = 3 [json_name = "domainInfo"]; // 大盘数据; - //Information CopyMeInfo = 4 [json_name = "copyMeInfo"]; // 抄送给我的; -} - -message Bundle { - uint64 ID = 1 [json_name = "ID"]; - string ReturnAt = 2 [json_name = "returnAt"]; - string ReceivedAt = 3 [json_name = "receivedAt"]; - uint64 ApplicationsNum = 4 [json_name = "applicationsNum"]; -} - -message Show { - uint64 ID =1 [json_name = "ID"]; - uint64 ArtistNum =2 [json_name = "artistNum"]; - string ShowAt =3 [json_name = "ShowAt"]; -} - -message ApprovalWork { - uint64 ID =1 [json_name = "ID"]; - uint64 WorkID =2 [json_name = "WorkID"]; - uint64 ApprovalID =3 [json_name = "ApprovalID"]; - uint64 ArtworkID =4 [json_name = "artworkID"]; - string ArtworkName =5 [json_name = "artworkName"]; - string ArtistName =6 [json_name = "artistName"]; - string ArtworkCover =7 [json_name = "artworkCover"]; - uint64 ArtworkNumber =8 [json_name = "artworkNumber"]; - string ArtistUID =9 [json_name = "artistUID"]; - string ShowSeq =10 [json_name = "showSeq"]; -} - -message Work { - uint64 ID = 1 [json_name = "ID"]; - string ReturnAt = 2 [json_name = "returnAt"]; - string ReceivedAt = 3 [json_name = "receivedAt"]; - repeated ApprovalWork ApprovalWorks = 4 [json_name = "approvalWorks"]; - string ArtistUID = 5 [json_name = "artistUID"]; -} - - -message ApprovalExhibition { - uint64 ID =1 [json_name = "ID"]; - uint64 ExhibitionID =2 [json_name = "exhibitionID"]; - uint64 ApprovalID =3 [json_name = "approvalID"]; - string PackageName =4 [json_name = "packageName"]; - string PackageID =5 [json_name = "packageID"]; - uint64 PackageSize =6 [json_name = "packageSize"]; - string PackageNumber =7 [json_name = "packageNumber"]; - string Address =8 [json_name = "address"]; - string ShowDate =9 [json_name = "showDate"]; - repeated Artwork Artworks = 10[json_name = "artworks"]; - ArtExhibitionDetail ArtExhibitionDetail = 11[json_name = "artExhibitionDetail"]; - int64 TotalPrice = 12 [json_name = "totalPrice"]; -} - -message Exhibition { - uint64 ID =1 [json_name = "ID"]; - string ReceivedAt =2 [json_name = "receivedAt"]; - string Address =3 [json_name = "address"]; - uint64 PidApprovalID =4 [json_name = "pidApprovalID"]; - repeated ApprovalExhibition ApprovalExhibitions = 5 [json_name = "approvalExhibitions"]; - uint64 Num = 6 [json_name = "num"]; - string ApplyID = 7 [json_name = "applyID"]; -} - -message Artwork { - string ArtworkPriceUID =1; - string ShowUID =2; - string ArtworkUID =3; - string ArtworkName =4; - string ArtistName =5; - uint64 Length =6; - uint64 Width =7; - uint64 Ruler =8; - string SmallPic =9; - string SaleAddress =10; - string Reward =11; - string Tfnum =12; - string SaleAddressID =13; -} - -message ArtExhibitionDetail { - string ShowUID = 1 ; - string ShowSeq = 2 ; - string ShowName = 3 ; - string ArtistName = 4 ; - string ArtistUID = 5 ; - uint64 ArtworkNum = 6 ; - uint64 Ruler = 7 ; - uint64 Price = 8 ; - uint64 Reward = 9 ; - string CreateTime = 10 ; - string Operator = 11 ; - uint64 IsShow = 12 ; - string ShowTime = 13; - string Address = 14 ; - string Agent = 15 ; -} - -message BundlePayPrice { - string ShowUid = 1 [json_name = "showUid"]; - uint64 ApprovalID = 2 [json_name = "approvalID"]; - string ShowName = 3 [json_name = "showName"]; - string ReceivedAt = 4 [json_name = "receivedAt"]; - string ShowDate = 5 [json_name = "showDate"]; - string ShowLowPrice= 6 [json_name = "showLowPrice"]; - uint64 ArtworkNum = 7 [json_name = "artworkNum"]; - string ArtworkSize = 8 [json_name = "artworkSize"]; - string ShowAddress = 9 [json_name = "showAddress"]; - uint64 ID = 10 [json_name = "ID"]; - uint64 Status = 11 [json_name = "status"]; - string ArtistName = 12 [json_name = "artistName"]; - int32 Rollback = 13 [json_name = "rollback"]; - int32 OperationTimes = 14 [json_name = "operationTimes"]; -} - -message CreateRequest { - uint64 ID = 1 [json_name = "ID"]; - string Domain = 2 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; - uint64 Status = 3 [json_name = "status"]; - string Type = 4 [json_name = "type",(validator.field) = {string_not_empty: true,human_error: "70009"} ]; - uint64 SubmitterID = 7 [json_name = "submitterID"];//审批人 - string SubmitterName = 8 [json_name = "submitterName"]; - repeated CopyUser CopyUsers = 9 [json_name = "copyName"];//抄送人 - string Content = 10 [json_name = "content"];//申请内容 - string Reply = 11 [json_name = "reply"];//回复 - bool CanView = 12 [json_name = "canView"];//是否可以阅读 - Work Work = 13 [json_name = "work"]; - Show Show = 14 [json_name = "show"]; - Exhibition Exhibition = 15 [json_name = "exhibition"]; - Bundle Bundle = 16 [json_name = "bundle"]; - repeated ApprovalUser ApprovalUsers= 17 [json_name = "approvalUsers"];//审批的人 - bool CanApproval = 18 [json_name = "canApproval"];//审批的人 - repeated WorkFlow WorkFlows = 19 [json_name = "workFlows"];//审批的人 - uint64 AllStatus = 20 [json_name = "allStatus"];//状态 0 1 2 3已阅读 4-待阅读 - uint64 NowUserId = 21 [json_name = "nowUserId"]; - string NowUserName = 22 [json_name = "nowUserName"]; - uint64 Level = 23 [json_name = "level"]; - uint64 NowLevel = 24 [json_name = "nowLevel"]; - string CreatedAt = 25 [json_name = "createdAt"]; - repeated KeyInfo CustomizeInfo = 26 [json_name = "customizeInfo"]; - uint64 IsCustom = 27 [json_name = "isCustom"]; - string TypeName = 28 [json_name = "typeName"]; - string GroupName = 29 [json_name = "groupName"]; - BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"]; - ApprovalOA ApprovalOA = 31 [json_name = "approvalOA"]; - FinancialForm FinancialForm = 32 [json_name = "financialForm"]; -} - -message WorkFlow { - uint64 ID = 1 [json_name = "ID"]; - uint64 UserID = 3 [json_name = "userID"]; - string Name = 4 [json_name = "name"]; - uint64 Level = 5 [json_name = "level"]; - uint64 Status = 6 [json_name = "status"]; - string Reply = 7 [json_name = "reply"]; - string OperatedAt = 8 [json_name = "operatedAt"]; -} - -message DetailRequest { - uint64 ID=1 [json_name = "ID"]; - string Domain=2 [json_name = "domain"]; - uint64 UserId=3 [json_name = "userId"]; -} - -message RemoveRequest { - repeated uint64 IDs=1 [json_name = "IDs"]; - string Domain=2 [json_name = "domain"]; -} - - - -message ApprovalResponse { - uint64 ID=1 [json_name = "ID"]; - bool Success=2 [json_name = "success"]; -} - -message RemoveResponse { - bool Success=1 [json_name = "success"]; -} - -message ApprovalExhibitionRemove { - bool Success=1 [json_name = "success"]; -} - -message ApprovalExhibitionRequest { - uint64 ID=1 [json_name = "ID"]; - uint64 DeletedAt=2 [json_name = "deletedAt"]; - string CreatedAt=3 [json_name = "createdAt"]; - string UpdatedAt=4 [json_name = "updatedAt"]; - uint64 ApprovalID=5 [json_name = "approvalID"]; - uint64 ExhibitionID=6 [json_name = "exhibitionID"]; - string ExhibitionName=7 [json_name = "exhibitionName"]; - uint64 ArtworkID=8 [json_name = "artworkID"]; - string ExhibitionSize=9 [json_name = "exhibitionSize"]; - string ExhibitionNumber=10 [json_name = "exhibitionNumber"]; -} - -message ApprovalExhibitionDetail { - uint64 ID=1 [json_name = "ID"]; - string Domain=2 [json_name = "domain"]; -} - -message CopyUser { - uint64 ID =1 [json_name = "ID"]; - string Name =2 [json_name = "name"]; - bool IsViewed =3 [json_name = "isViewed"]; -} - -message ApprovalUser { - uint64 ID =1 [json_name = "ID"]; - string Name =2 [json_name = "name"]; - string Level =3 [json_name = "Level"]; -} - -message SettingRequest { - uint64 ID = 1 [json_name = "ID"]; - uint64 DeletedAt = 2 [json_name = "deletedAt"]; - string CreatedAt = 3 [json_name = "createdAt"]; - string UpdatedAt = 4 [json_name = "updatedAt"]; - string KeyWord = 5 [json_name = "keyWord"]; - repeated CopyUser CopyUsers = 6 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 9 [json_name = "approvalUsers"]; - string Domain = 10 [json_name = "domain"]; - repeated KeyInfo CustomizeInfo = 11 [json_name = "customizeInfo"]; - uint64 IsCustom = 12 [json_name = "isCustom"]; -} - -message DetailSettingRequest { - string KeyWord=1 [json_name = "keyWord"]; - string Domain=2 [json_name = "domain"]; -} - -message SettingResponse { - uint64 ID=1 [json_name = "ID"]; - bool Success=2 [json_name = "success"]; -} - -// oa审批 - -message ApplyTime { - string Date = 1 [json_name = "date"]; - string Hour = 2 [json_name = "hour"]; - string M = 3 [json_name = "m"]; -} - -message ApprovalOA { - uint64 ID=1 [json_name = "ID"]; - uint64 DeletedAt=2 [json_name = "deletedAt"]; - string CreatedAt=3 [json_name = "createdAt"]; - string UpdatedAt=4 [json_name = "updatedAt"]; - uint64 ApprovalID=5 [json_name = "approvalID"]; - LeaveApply LeaveApply = 6 [json_name = "leaveApply"]; - OutWorkApply OutWork = 7 [json_name = "outWork"]; - MakeUpApply MakeUp = 8 [json_name = "makeUp"]; - TurnoverApply Turnover = 9 [json_name = "turnover"]; - OverTimeApply OverTime = 10 [json_name = "overTime"]; - Leave Leave = 11 [json_name = "leave"]; -} - -message LeaveApply { - string UUID = 1 [json_name = "UUID"]; - uint64 StaffUID = 2 [json_name = "staffUID"]; - string StaffNum = 3 [json_name = "staffNum"]; - string StaffName = 4 [json_name = "staffName"]; - string DepartmentUID = 5 [json_name = "departmentUID"]; - string ApplyType = 6 [json_name = "applyType"]; - string ActionTime = 7 [json_name = "actionTime"]; - string ApprovalID = 8 [json_name = "approvalID"]; - int32 Status = 9 [json_name = "status"]; - string Reason = 10 [json_name = "reason"]; - repeated string VerifyFile = 11 [json_name = "verifyFile"]; - repeated CopyUser CopyUsers = 12 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 13 [json_name = "approvalUsers"]; - float LeaveBalance = 14 [json_name = "leaveBalance"]; -} - -message OutWorkApply { - string UUID = 1 [json_name = "UUID"]; - uint64 StaffUID = 2 [json_name = "staffUID"]; - string StaffNum = 3 [json_name = "staffNum"]; - string StaffName = 4 [json_name = "staffName"]; - string DepartmentUID = 5 [json_name = "departmentUID"]; - string ApplyType = 6 [json_name = "applyType"]; - string ActionTime = 7 [json_name = "actionTime"]; - string ApprovalID = 8 [json_name = "approvalID"]; - int32 Status = 9 [json_name = "status"]; - repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; - string Reason = 12 [json_name = "reason"]; - float Hours = 13 [json_name = "hours"]; - string OutWorkAddress = 14 [json_name = "outWorkAddress"]; - string Vehicle = 15 [json_name = "vehicle"]; - repeated CopyUser CopyUsers = 16 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 17 [json_name = "approvalUsers"]; -} - -message MakeUpApply { - string UUID = 1 [json_name = "UUID"]; - uint64 StaffUID = 2 [json_name = "staffUID"]; - string StaffNum = 3 [json_name = "staffNum"]; - string StaffName = 4 [json_name = "staffName"]; - string DepartmentUID = 5 [json_name = "departmentUID"]; - string ApplyType = 6 [json_name = "applyType"]; - string ActionTime = 7 [json_name = "actionTime"]; - string ApprovalID = 8 [json_name = "approvalID"]; - int32 Status = 9 [json_name = "status"]; - repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; - string Reason = 12 [json_name = "reason"]; - repeated CopyUser CopyUsers = 13 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 14 [json_name = "approvalUsers"]; -} - -message TurnoverApply { - string UUID = 1 [json_name = "UUID"]; - uint64 StaffUID = 2 [json_name = "staffUID"]; - string StaffNum = 3 [json_name = "staffNum"]; - string StaffName = 4 [json_name = "staffName"]; - string DepartmentUID = 5 [json_name = "departmentUID"]; - string ApplyType = 6 [json_name = "applyType"]; - string ActionTime = 7 [json_name = "actionTime"]; - string ApprovalID = 8 [json_name = "approvalID"]; - int32 Status = 9 [json_name = "status"]; - uint64 HandoverUID = 10 [json_name = "handoverUID"]; - string HandoverName = 11 [json_name = "handoverName"]; - repeated ApplyTime ApplyTimes = 12 [json_name = "applyTimes"]; - string Reason = 13 [json_name = "reason"]; - repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; -} - -message OverTimeApply { - string UUID = 1 [json_name = "UUID"]; - uint64 StaffUID = 2 [json_name = "staffUID"]; - string StaffNum = 3 [json_name = "staffNum"]; - string StaffName = 4 [json_name = "staffName"]; - string DepartmentUID = 5 [json_name = "departmentUID"]; - string ApplyType = 6 [json_name = "applyType"]; - string ActionTime = 7 [json_name = "actionTime"]; - string ApprovalID = 8 [json_name = "approvalID"]; - int32 Status = 9 [json_name = "status"]; - repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; - string Reason = 12 [json_name = "reason"]; - float Hours = 13 [json_name = "hours"]; - repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; -} - -message Leave { - string UUID = 1 [json_name = "UUID"]; - uint64 StaffUID = 2 [json_name = "staffUID"]; - string StaffNum = 3 [json_name = "staffNum"]; - string StaffName = 4 [json_name = "staffName"]; - string DepartmentUID = 5 [json_name = "departmentUID"]; - string ApplyType = 6 [json_name = "applyType"]; - string ActionTime = 7 [json_name = "actionTime"]; - string ApprovalID = 8 [json_name = "approvalID"]; - int32 Status = 9 [json_name = "status"]; - repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; - string Reason = 12 [json_name = "reason"]; - float Hours = 13 [json_name = "hours"]; - float Days = 14 [json_name = "days"]; - repeated CopyUser CopyUsers = 15 [json_name = "copyUsers"]; - repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"]; -} - -message UpdateApprovalOAUUIDReq { - string UUID = 1 [json_name = "UUID"]; - string ApplyType = 2 [json_name = "applyType"]; - uint64 ApprovalID = 3 [json_name = "approvalID"]; -} - -message UpdateApprovalOAUUIDResponse { - string Msg = 1 [json_name = "msg"]; -} - -// 财务报表审批 -message GetNameRequest { - string SettingType = 1 [json_name = "settingType"]; -} - -message GetNameResponse { - repeated string Name = 1 [json_name = "name"]; -} - -message FinancialForm { - uint64 ID=1 [json_name = "ID"]; - uint64 DeletedAt=2 [json_name = "deletedAt"]; - string CreatedAt=3 [json_name = "createdAt"]; - string UpdatedAt=4 [json_name = "updatedAt"]; - uint64 ApprovalID=5 [json_name = "approvalID"]; - string PaymentCompany = 6 [json_name = "paymentCompany"]; - string TransactionDepartment = 7 [json_name = "transactionDepartment"]; - string Payee = 8 [json_name = "payee"]; - string BeneficiaryBank = 9 [json_name = "beneficiaryBank"]; - string BankNo = 10 [json_name = "bankNo"]; - repeated CostInfo CostInfo = 11 [json_name = "costInfo"]; - string PaymentMethod = 12 [json_name = "paymentMethod"]; - repeated InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"]; -} - - -message CostInfo { - string Description = 1 [json_name = "description"]; - string UnitPrice = 2 [json_name = "unitPrice"]; - string CostUnit = 3 [json_name = "costUnit"]; - int64 CostNum = 4 [json_name = "costNum"]; - string TotalPrice = 5 [json_name = "totalPrice"]; - string UsedDepartment = 6 [json_name = "usedDepartment"]; -} - -message InvoiceInfo { - string InvoiceDate = 1 [json_name = "invoiceDate"]; - string InvoiceNo = 2 [json_name = "invoiceNo"]; - string InvoiceProvider = 3 [json_name = "invoiceProvider"]; - string Amount = 4 [json_name = "amount"]; - string UseTo = 5 [json_name = "useTo"]; - string Applicant = 6 [json_name = "applicant"]; - string PaymentMethod = 7 [json_name = "paymentMethod"]; - string PaymentObj = 8 [json_name = "paymentObj"]; - string InvoiceType = 9 [json_name = "invoiceType"]; - string Notes = 10 [json_name = "notes"]; -} \ No newline at end of file From 0431b6f003bb45ad73249ec23905f453048d3624 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Fri, 2 Jun 2023 11:58:14 +0800 Subject: [PATCH 64/64] =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=94=9F=E6=88=90pb=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 7384 +++++++++++++++++++++++++ api/approval/approval.proto | 615 ++ api/approval/approval.validator.pb.go | 545 ++ api/approval/approval_triple.pb.go | 1186 ++++ 4 files changed, 9730 insertions(+) create mode 100644 api/approval/approval.pb.go create mode 100644 api/approval/approval.proto create mode 100644 api/approval/approval.validator.pb.go create mode 100644 api/approval/approval_triple.pb.go diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go new file mode 100644 index 0000000..57f2281 --- /dev/null +++ b/api/approval/approval.pb.go @@ -0,0 +1,7384 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.10.1 +// source: api/approval/approval.proto + +package approval + +import ( + _ "github.com/mwitkow/go-proto-validators" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CommonResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CommonResponse) Reset() { + *x = CommonResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonResponse) ProtoMessage() {} + +func (x *CommonResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead. +func (*CommonResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{0} +} + +type ChangeBundlePayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` +} + +func (x *ChangeBundlePayRequest) Reset() { + *x = ChangeBundlePayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeBundlePayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeBundlePayRequest) ProtoMessage() {} + +func (x *ChangeBundlePayRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeBundlePayRequest.ProtoReflect.Descriptor instead. +func (*ChangeBundlePayRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{1} +} + +func (x *ChangeBundlePayRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *ChangeBundlePayRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ChangeBundlePayRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +type IsExistPayRightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + UserId uint64 `protobuf:"varint,2,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` + ShowUid string `protobuf:"bytes,3,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` +} + +func (x *IsExistPayRightRequest) Reset() { + *x = IsExistPayRightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsExistPayRightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsExistPayRightRequest) ProtoMessage() {} + +func (x *IsExistPayRightRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsExistPayRightRequest.ProtoReflect.Descriptor instead. +func (*IsExistPayRightRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{2} +} + +func (x *IsExistPayRightRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *IsExistPayRightRequest) GetUserId() uint64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *IsExistPayRightRequest) GetShowUid() string { + if x != nil { + return x.ShowUid + } + return "" +} + +type IsExistPayRightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsPass bool `protobuf:"varint,1,opt,name=IsPass,json=isPass,proto3" json:"IsPass,omitempty"` +} + +func (x *IsExistPayRightResponse) Reset() { + *x = IsExistPayRightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsExistPayRightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsExistPayRightResponse) ProtoMessage() {} + +func (x *IsExistPayRightResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsExistPayRightResponse.ProtoReflect.Descriptor instead. +func (*IsExistPayRightResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{3} +} + +func (x *IsExistPayRightResponse) GetIsPass() bool { + if x != nil { + return x.IsPass + } + return false +} + +type KeyInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ApprovalKey string `protobuf:"bytes,1,opt,name=ApprovalKey,json=approvalKey,proto3" json:"ApprovalKey,omitempty"` + ApprovalName string `protobuf:"bytes,2,opt,name=ApprovalName,json=approvalName,proto3" json:"ApprovalName,omitempty"` + ApprovalType string `protobuf:"bytes,3,opt,name=ApprovalType,json=approvalType,proto3" json:"ApprovalType,omitempty"` + ApprovalValue string `protobuf:"bytes,4,opt,name=ApprovalValue,json=approvalValue,proto3" json:"ApprovalValue,omitempty"` + ApprovalMark bool `protobuf:"varint,5,opt,name=ApprovalMark,json=approvalMark,proto3" json:"ApprovalMark,omitempty"` +} + +func (x *KeyInfo) Reset() { + *x = KeyInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KeyInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KeyInfo) ProtoMessage() {} + +func (x *KeyInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KeyInfo.ProtoReflect.Descriptor instead. +func (*KeyInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{4} +} + +func (x *KeyInfo) GetApprovalKey() string { + if x != nil { + return x.ApprovalKey + } + return "" +} + +func (x *KeyInfo) GetApprovalName() string { + if x != nil { + return x.ApprovalName + } + return "" +} + +func (x *KeyInfo) GetApprovalType() string { + if x != nil { + return x.ApprovalType + } + return "" +} + +func (x *KeyInfo) GetApprovalValue() string { + if x != nil { + return x.ApprovalValue + } + return "" +} + +func (x *KeyInfo) GetApprovalMark() bool { + if x != nil { + return x.ApprovalMark + } + return false +} + +type UpdateEhApplyIDRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ApplyId string `protobuf:"bytes,3,opt,name=ApplyId,json=applyId,proto3" json:"ApplyId,omitempty"` +} + +func (x *UpdateEhApplyIDRequest) Reset() { + *x = UpdateEhApplyIDRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateEhApplyIDRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateEhApplyIDRequest) ProtoMessage() {} + +func (x *UpdateEhApplyIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateEhApplyIDRequest.ProtoReflect.Descriptor instead. +func (*UpdateEhApplyIDRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateEhApplyIDRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *UpdateEhApplyIDRequest) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *UpdateEhApplyIDRequest) GetApplyId() string { + if x != nil { + return x.ApplyId + } + return "" +} + +type UpdateEhApplyIDResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateEhApplyIDResponse) Reset() { + *x = UpdateEhApplyIDResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateEhApplyIDResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateEhApplyIDResponse) ProtoMessage() {} + +func (x *UpdateEhApplyIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateEhApplyIDResponse.ProtoReflect.Descriptor instead. +func (*UpdateEhApplyIDResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{6} +} + +type UsedNumByUserRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + SubmitterID uint64 `protobuf:"varint,2,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` +} + +func (x *UsedNumByUserRequest) Reset() { + *x = UsedNumByUserRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UsedNumByUserRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UsedNumByUserRequest) ProtoMessage() {} + +func (x *UsedNumByUserRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UsedNumByUserRequest.ProtoReflect.Descriptor instead. +func (*UsedNumByUserRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{7} +} + +func (x *UsedNumByUserRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *UsedNumByUserRequest) GetSubmitterID() uint64 { + if x != nil { + return x.SubmitterID + } + return 0 +} + +type UsedNumByUserResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` +} + +func (x *UsedNumByUserResponse) Reset() { + *x = UsedNumByUserResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UsedNumByUserResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UsedNumByUserResponse) ProtoMessage() {} + +func (x *UsedNumByUserResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UsedNumByUserResponse.ProtoReflect.Descriptor instead. +func (*UsedNumByUserResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{8} +} + +func (x *UsedNumByUserResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +type NowLevelByInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` +} + +func (x *NowLevelByInfoRequest) Reset() { + *x = NowLevelByInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NowLevelByInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NowLevelByInfoRequest) ProtoMessage() {} + +func (x *NowLevelByInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NowLevelByInfoRequest.ProtoReflect.Descriptor instead. +func (*NowLevelByInfoRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{9} +} + +func (x *NowLevelByInfoRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *NowLevelByInfoRequest) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +type WorkFlowResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` + Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + UserID uint64 `protobuf:"varint,7,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` +} + +func (x *WorkFlowResponse) Reset() { + *x = WorkFlowResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkFlowResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkFlowResponse) ProtoMessage() {} + +func (x *WorkFlowResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkFlowResponse.ProtoReflect.Descriptor instead. +func (*WorkFlowResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{10} +} + +func (x *WorkFlowResponse) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *WorkFlowResponse) GetReply() string { + if x != nil { + return x.Reply + } + return "" +} + +func (x *WorkFlowResponse) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *WorkFlowResponse) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +type CommonRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + Page uint64 `protobuf:"varint,2,opt,name=Page,proto3" json:"Page,omitempty"` + PageSize uint64 `protobuf:"varint,3,opt,name=PageSize,json=pageSize,proto3" json:"PageSize,omitempty"` + GroupId uint64 `protobuf:"varint,4,opt,name=GroupId,json=groupId,proto3" json:"GroupId,omitempty"` +} + +func (x *CommonRequest) Reset() { + *x = CommonRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonRequest) ProtoMessage() {} + +func (x *CommonRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommonRequest.ProtoReflect.Descriptor instead. +func (*CommonRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{11} +} + +func (x *CommonRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *CommonRequest) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *CommonRequest) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *CommonRequest) GetGroupId() uint64 { + if x != nil { + return x.GroupId + } + return 0 +} + +type CreateTypeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + Title string `protobuf:"bytes,3,opt,name=Title,json=title,proto3" json:"Title,omitempty"` + Remark string `protobuf:"bytes,5,opt,name=Remark,json=remark,proto3" json:"Remark,omitempty"` + KeyWord string `protobuf:"bytes,6,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` + KeyInfos []*KeyInfo `protobuf:"bytes,7,rep,name=KeyInfos,json=keyInfos,proto3" json:"KeyInfos,omitempty"` + IsCustom uint64 `protobuf:"varint,8,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` + GroupId uint64 `protobuf:"varint,9,opt,name=GroupId,json=groupId,proto3" json:"GroupId,omitempty"` + GroupName string `protobuf:"bytes,10,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` +} + +func (x *CreateTypeRequest) Reset() { + *x = CreateTypeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTypeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTypeRequest) ProtoMessage() {} + +func (x *CreateTypeRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateTypeRequest.ProtoReflect.Descriptor instead. +func (*CreateTypeRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{12} +} + +func (x *CreateTypeRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *CreateTypeRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *CreateTypeRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CreateTypeRequest) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *CreateTypeRequest) GetKeyWord() string { + if x != nil { + return x.KeyWord + } + return "" +} + +func (x *CreateTypeRequest) GetKeyInfos() []*KeyInfo { + if x != nil { + return x.KeyInfos + } + return nil +} + +func (x *CreateTypeRequest) GetIsCustom() uint64 { + if x != nil { + return x.IsCustom + } + return 0 +} + +func (x *CreateTypeRequest) GetGroupId() uint64 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *CreateTypeRequest) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +type TypeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,proto3" json:"Domain,omitempty"` + Keyword string `protobuf:"bytes,3,opt,name=Keyword,proto3" json:"Keyword,omitempty"` +} + +func (x *TypeResponse) Reset() { + *x = TypeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TypeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TypeResponse) ProtoMessage() {} + +func (x *TypeResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TypeResponse.ProtoReflect.Descriptor instead. +func (*TypeResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{13} +} + +func (x *TypeResponse) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *TypeResponse) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *TypeResponse) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +type AllTypeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*CreateTypeRequest `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` +} + +func (x *AllTypeResponse) Reset() { + *x = AllTypeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AllTypeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AllTypeResponse) ProtoMessage() {} + +func (x *AllTypeResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AllTypeResponse.ProtoReflect.Descriptor instead. +func (*AllTypeResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{14} +} + +func (x *AllTypeResponse) GetData() []*CreateTypeRequest { + if x != nil { + return x.Data + } + return nil +} + +func (x *AllTypeResponse) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type CreateTypeGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + Title string `protobuf:"bytes,3,opt,name=Title,json=title,proto3" json:"Title,omitempty"` + List []*CreateTypeRequest `protobuf:"bytes,4,rep,name=List,json=list,proto3" json:"List,omitempty"` +} + +func (x *CreateTypeGroupRequest) Reset() { + *x = CreateTypeGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateTypeGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTypeGroupRequest) ProtoMessage() {} + +func (x *CreateTypeGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateTypeGroupRequest.ProtoReflect.Descriptor instead. +func (*CreateTypeGroupRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{15} +} + +func (x *CreateTypeGroupRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *CreateTypeGroupRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *CreateTypeGroupRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CreateTypeGroupRequest) GetList() []*CreateTypeRequest { + if x != nil { + return x.List + } + return nil +} + +type AllGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*CreateTypeGroupRequest `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` +} + +func (x *AllGroupResponse) Reset() { + *x = AllGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AllGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AllGroupResponse) ProtoMessage() {} + +func (x *AllGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AllGroupResponse.ProtoReflect.Descriptor instead. +func (*AllGroupResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{16} +} + +func (x *AllGroupResponse) GetData() []*CreateTypeGroupRequest { + if x != nil { + return x.Data + } + return nil +} + +func (x *AllGroupResponse) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type StatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` + WorkFlowId uint64 `protobuf:"varint,4,opt,name=WorkFlowId,json=workFlowId,proto3" json:"WorkFlowId,omitempty"` + Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Level uint64 `protobuf:"varint,6,opt,name=Level,json=level,proto3" json:"Level,omitempty"` + Title string `protobuf:"bytes,7,opt,name=Title,json=title,proto3" json:"Title,omitempty"` + UserId uint64 `protobuf:"varint,8,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` + LeaveBalance string `protobuf:"bytes,9,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` +} + +func (x *StatusRequest) Reset() { + *x = StatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusRequest) ProtoMessage() {} + +func (x *StatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. +func (*StatusRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{17} +} + +func (x *StatusRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *StatusRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *StatusRequest) GetReply() string { + if x != nil { + return x.Reply + } + return "" +} + +func (x *StatusRequest) GetWorkFlowId() uint64 { + if x != nil { + return x.WorkFlowId + } + return 0 +} + +func (x *StatusRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *StatusRequest) GetLevel() uint64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *StatusRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *StatusRequest) GetUserId() uint64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *StatusRequest) GetLeaveBalance() string { + if x != nil { + return x.LeaveBalance + } + return "" +} + +type StatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StatusResponse) Reset() { + *x = StatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusResponse) ProtoMessage() {} + +func (x *StatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. +func (*StatusResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{18} +} + +type ListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + PageSize uint64 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // + Page uint64 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // + Status uint64 `protobuf:"varint,4,opt,name=Status,json=status,proto3" json:"Status,omitempty"` //0待审批 1-审批成功 2-拒绝 4-是所有 + Type string `protobuf:"bytes,5,opt,name=Type,json=type,proto3" json:"Type,omitempty"` //类型 + UserID uint64 `protobuf:"varint,6,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` // + ApprovedBossId uint64 `protobuf:"varint,7,opt,name=ApprovedBossId,json=approvedBossId,proto3" json:"ApprovedBossId,omitempty"` // +} + +func (x *ListRequest) Reset() { + *x = ListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRequest) ProtoMessage() {} + +func (x *ListRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRequest.ProtoReflect.Descriptor instead. +func (*ListRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{19} +} + +func (x *ListRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *ListRequest) GetPageSize() uint64 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRequest) GetPage() uint64 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ListRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ListRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ListRequest) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +func (x *ListRequest) GetApprovedBossId() uint64 { + if x != nil { + return x.ApprovedBossId + } + return 0 +} + +type ListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint64 `protobuf:"varint,1,opt,name=Count,json=count,proto3" json:"Count,omitempty"` + Data []*CreateRequest `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *ListResponse) Reset() { + *x = ListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListResponse) ProtoMessage() {} + +func (x *ListResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListResponse.ProtoReflect.Descriptor instead. +func (*ListResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{20} +} + +func (x *ListResponse) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *ListResponse) GetData() []*CreateRequest { + if x != nil { + return x.Data + } + return nil +} + +type ViewedRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` + UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` +} + +func (x *ViewedRequest) Reset() { + *x = ViewedRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewedRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewedRequest) ProtoMessage() {} + +func (x *ViewedRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewedRequest.ProtoReflect.Descriptor instead. +func (*ViewedRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{21} +} + +func (x *ViewedRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *ViewedRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ViewedRequest) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +type InformationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + UserID uint64 `protobuf:"varint,2,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` + Type string `protobuf:"bytes,3,opt,name=Type,json=type,proto3" json:"Type,omitempty"` +} + +func (x *InformationRequest) Reset() { + *x = InformationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InformationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InformationRequest) ProtoMessage() {} + +func (x *InformationRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InformationRequest.ProtoReflect.Descriptor instead. +func (*InformationRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{22} +} + +func (x *InformationRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *InformationRequest) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +func (x *InformationRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type Information struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Total uint64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total,omitempty"` // 已提交的审批 (总量) + DoingTotal uint64 `protobuf:"varint,2,opt,name=DoingTotal,json=doingTotal,proto3" json:"DoingTotal,omitempty"` // 正在审批数量 + SuccessTotal uint64 `protobuf:"varint,3,opt,name=SuccessTotal,json=successTotal,proto3" json:"SuccessTotal,omitempty"` // 审批完成数量 + FailTotal uint64 `protobuf:"varint,4,opt,name=FailTotal,json=failTotal,proto3" json:"FailTotal,omitempty"` // 审批未通过 +} + +func (x *Information) Reset() { + *x = Information{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Information) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Information) ProtoMessage() {} + +func (x *Information) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Information.ProtoReflect.Descriptor instead. +func (*Information) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{23} +} + +func (x *Information) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *Information) GetDoingTotal() uint64 { + if x != nil { + return x.DoingTotal + } + return 0 +} + +func (x *Information) GetSuccessTotal() uint64 { + if x != nil { + return x.SuccessTotal + } + return 0 +} + +func (x *Information) GetFailTotal() uint64 { + if x != nil { + return x.FailTotal + } + return 0 +} + +type InformationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MySubmitInfo *Information `protobuf:"bytes,1,opt,name=MySubmitInfo,json=mySubmitInfo,proto3" json:"MySubmitInfo,omitempty"` // 我提交的; + SubmitMeInfo *Information `protobuf:"bytes,2,opt,name=SubmitMeInfo,json=submitMeInfo,proto3" json:"SubmitMeInfo,omitempty"` // 提交给我的; + DomainInfo *Information `protobuf:"bytes,3,opt,name=DomainInfo,json=domainInfo,proto3" json:"DomainInfo,omitempty"` // 大盘数据; +} + +func (x *InformationResponse) Reset() { + *x = InformationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InformationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InformationResponse) ProtoMessage() {} + +func (x *InformationResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InformationResponse.ProtoReflect.Descriptor instead. +func (*InformationResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{24} +} + +func (x *InformationResponse) GetMySubmitInfo() *Information { + if x != nil { + return x.MySubmitInfo + } + return nil +} + +func (x *InformationResponse) GetSubmitMeInfo() *Information { + if x != nil { + return x.SubmitMeInfo + } + return nil +} + +func (x *InformationResponse) GetDomainInfo() *Information { + if x != nil { + return x.DomainInfo + } + return nil +} + +type Bundle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ReturnAt string `protobuf:"bytes,2,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` + ReceivedAt string `protobuf:"bytes,3,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ApplicationsNum uint64 `protobuf:"varint,4,opt,name=ApplicationsNum,json=applicationsNum,proto3" json:"ApplicationsNum,omitempty"` +} + +func (x *Bundle) Reset() { + *x = Bundle{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Bundle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Bundle) ProtoMessage() {} + +func (x *Bundle) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Bundle.ProtoReflect.Descriptor instead. +func (*Bundle) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{25} +} + +func (x *Bundle) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *Bundle) GetReturnAt() string { + if x != nil { + return x.ReturnAt + } + return "" +} + +func (x *Bundle) GetReceivedAt() string { + if x != nil { + return x.ReceivedAt + } + return "" +} + +func (x *Bundle) GetApplicationsNum() uint64 { + if x != nil { + return x.ApplicationsNum + } + return 0 +} + +type Show struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ArtistNum uint64 `protobuf:"varint,2,opt,name=ArtistNum,json=artistNum,proto3" json:"ArtistNum,omitempty"` + ShowAt string `protobuf:"bytes,3,opt,name=ShowAt,proto3" json:"ShowAt,omitempty"` +} + +func (x *Show) Reset() { + *x = Show{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Show) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Show) ProtoMessage() {} + +func (x *Show) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Show.ProtoReflect.Descriptor instead. +func (*Show) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{26} +} + +func (x *Show) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *Show) GetArtistNum() uint64 { + if x != nil { + return x.ArtistNum + } + return 0 +} + +func (x *Show) GetShowAt() string { + if x != nil { + return x.ShowAt + } + return "" +} + +type ApprovalWork struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + WorkID uint64 `protobuf:"varint,2,opt,name=WorkID,proto3" json:"WorkID,omitempty"` + ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` + ArtworkID uint64 `protobuf:"varint,4,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` + ArtworkName string `protobuf:"bytes,5,opt,name=ArtworkName,json=artworkName,proto3" json:"ArtworkName,omitempty"` + ArtistName string `protobuf:"bytes,6,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` + ArtworkCover string `protobuf:"bytes,7,opt,name=ArtworkCover,json=artworkCover,proto3" json:"ArtworkCover,omitempty"` + ArtworkNumber uint64 `protobuf:"varint,8,opt,name=ArtworkNumber,json=artworkNumber,proto3" json:"ArtworkNumber,omitempty"` + ArtistUID string `protobuf:"bytes,9,opt,name=ArtistUID,json=artistUID,proto3" json:"ArtistUID,omitempty"` + ShowSeq string `protobuf:"bytes,10,opt,name=ShowSeq,json=showSeq,proto3" json:"ShowSeq,omitempty"` +} + +func (x *ApprovalWork) Reset() { + *x = ApprovalWork{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalWork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalWork) ProtoMessage() {} + +func (x *ApprovalWork) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalWork.ProtoReflect.Descriptor instead. +func (*ApprovalWork) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{27} +} + +func (x *ApprovalWork) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalWork) GetWorkID() uint64 { + if x != nil { + return x.WorkID + } + return 0 +} + +func (x *ApprovalWork) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *ApprovalWork) GetArtworkID() uint64 { + if x != nil { + return x.ArtworkID + } + return 0 +} + +func (x *ApprovalWork) GetArtworkName() string { + if x != nil { + return x.ArtworkName + } + return "" +} + +func (x *ApprovalWork) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ApprovalWork) GetArtworkCover() string { + if x != nil { + return x.ArtworkCover + } + return "" +} + +func (x *ApprovalWork) GetArtworkNumber() uint64 { + if x != nil { + return x.ArtworkNumber + } + return 0 +} + +func (x *ApprovalWork) GetArtistUID() string { + if x != nil { + return x.ArtistUID + } + return "" +} + +func (x *ApprovalWork) GetShowSeq() string { + if x != nil { + return x.ShowSeq + } + return "" +} + +type Work struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ReturnAt string `protobuf:"bytes,2,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` + ReceivedAt string `protobuf:"bytes,3,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ApprovalWorks []*ApprovalWork `protobuf:"bytes,4,rep,name=ApprovalWorks,json=approvalWorks,proto3" json:"ApprovalWorks,omitempty"` + ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,json=artistUID,proto3" json:"ArtistUID,omitempty"` +} + +func (x *Work) Reset() { + *x = Work{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Work) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Work) ProtoMessage() {} + +func (x *Work) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Work.ProtoReflect.Descriptor instead. +func (*Work) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{28} +} + +func (x *Work) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *Work) GetReturnAt() string { + if x != nil { + return x.ReturnAt + } + return "" +} + +func (x *Work) GetReceivedAt() string { + if x != nil { + return x.ReceivedAt + } + return "" +} + +func (x *Work) GetApprovalWorks() []*ApprovalWork { + if x != nil { + return x.ApprovalWorks + } + return nil +} + +func (x *Work) GetArtistUID() string { + if x != nil { + return x.ArtistUID + } + return "" +} + +type ApprovalExhibition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ExhibitionID uint64 `protobuf:"varint,2,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` + ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + PackageName string `protobuf:"bytes,4,opt,name=PackageName,json=packageName,proto3" json:"PackageName,omitempty"` + PackageID string `protobuf:"bytes,5,opt,name=PackageID,json=packageID,proto3" json:"PackageID,omitempty"` + PackageSize uint64 `protobuf:"varint,6,opt,name=PackageSize,json=packageSize,proto3" json:"PackageSize,omitempty"` + PackageNumber string `protobuf:"bytes,7,opt,name=PackageNumber,json=packageNumber,proto3" json:"PackageNumber,omitempty"` + Address string `protobuf:"bytes,8,opt,name=Address,json=address,proto3" json:"Address,omitempty"` + ShowDate string `protobuf:"bytes,9,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` + Artworks []*Artwork `protobuf:"bytes,10,rep,name=Artworks,json=artworks,proto3" json:"Artworks,omitempty"` + ArtExhibitionDetail *ArtExhibitionDetail `protobuf:"bytes,11,opt,name=ArtExhibitionDetail,json=artExhibitionDetail,proto3" json:"ArtExhibitionDetail,omitempty"` + TotalPrice int64 `protobuf:"varint,12,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` +} + +func (x *ApprovalExhibition) Reset() { + *x = ApprovalExhibition{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalExhibition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalExhibition) ProtoMessage() {} + +func (x *ApprovalExhibition) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalExhibition.ProtoReflect.Descriptor instead. +func (*ApprovalExhibition) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{29} +} + +func (x *ApprovalExhibition) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalExhibition) GetExhibitionID() uint64 { + if x != nil { + return x.ExhibitionID + } + return 0 +} + +func (x *ApprovalExhibition) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *ApprovalExhibition) GetPackageName() string { + if x != nil { + return x.PackageName + } + return "" +} + +func (x *ApprovalExhibition) GetPackageID() string { + if x != nil { + return x.PackageID + } + return "" +} + +func (x *ApprovalExhibition) GetPackageSize() uint64 { + if x != nil { + return x.PackageSize + } + return 0 +} + +func (x *ApprovalExhibition) GetPackageNumber() string { + if x != nil { + return x.PackageNumber + } + return "" +} + +func (x *ApprovalExhibition) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ApprovalExhibition) GetShowDate() string { + if x != nil { + return x.ShowDate + } + return "" +} + +func (x *ApprovalExhibition) GetArtworks() []*Artwork { + if x != nil { + return x.Artworks + } + return nil +} + +func (x *ApprovalExhibition) GetArtExhibitionDetail() *ArtExhibitionDetail { + if x != nil { + return x.ArtExhibitionDetail + } + return nil +} + +func (x *ApprovalExhibition) GetTotalPrice() int64 { + if x != nil { + return x.TotalPrice + } + return 0 +} + +type Exhibition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + ReceivedAt string `protobuf:"bytes,2,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + Address string `protobuf:"bytes,3,opt,name=Address,json=address,proto3" json:"Address,omitempty"` + PidApprovalID uint64 `protobuf:"varint,4,opt,name=PidApprovalID,json=pidApprovalID,proto3" json:"PidApprovalID,omitempty"` + ApprovalExhibitions []*ApprovalExhibition `protobuf:"bytes,5,rep,name=ApprovalExhibitions,json=approvalExhibitions,proto3" json:"ApprovalExhibitions,omitempty"` + Num uint64 `protobuf:"varint,6,opt,name=Num,json=num,proto3" json:"Num,omitempty"` + ApplyID string `protobuf:"bytes,7,opt,name=ApplyID,json=applyID,proto3" json:"ApplyID,omitempty"` +} + +func (x *Exhibition) Reset() { + *x = Exhibition{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Exhibition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Exhibition) ProtoMessage() {} + +func (x *Exhibition) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Exhibition.ProtoReflect.Descriptor instead. +func (*Exhibition) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{30} +} + +func (x *Exhibition) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *Exhibition) GetReceivedAt() string { + if x != nil { + return x.ReceivedAt + } + return "" +} + +func (x *Exhibition) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *Exhibition) GetPidApprovalID() uint64 { + if x != nil { + return x.PidApprovalID + } + return 0 +} + +func (x *Exhibition) GetApprovalExhibitions() []*ApprovalExhibition { + if x != nil { + return x.ApprovalExhibitions + } + return nil +} + +func (x *Exhibition) GetNum() uint64 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *Exhibition) GetApplyID() string { + if x != nil { + return x.ApplyID + } + return "" +} + +type Artwork struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,proto3" json:"ArtworkPriceUID,omitempty"` + ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,proto3" json:"ShowUID,omitempty"` + ArtworkUID string `protobuf:"bytes,3,opt,name=ArtworkUID,proto3" json:"ArtworkUID,omitempty"` + ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,proto3" json:"ArtworkName,omitempty"` + ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` + Length uint64 `protobuf:"varint,6,opt,name=Length,proto3" json:"Length,omitempty"` + Width uint64 `protobuf:"varint,7,opt,name=Width,proto3" json:"Width,omitempty"` + Ruler uint64 `protobuf:"varint,8,opt,name=Ruler,proto3" json:"Ruler,omitempty"` + SmallPic string `protobuf:"bytes,9,opt,name=SmallPic,proto3" json:"SmallPic,omitempty"` + SaleAddress string `protobuf:"bytes,10,opt,name=SaleAddress,proto3" json:"SaleAddress,omitempty"` + Reward string `protobuf:"bytes,11,opt,name=Reward,proto3" json:"Reward,omitempty"` + Tfnum string `protobuf:"bytes,12,opt,name=Tfnum,proto3" json:"Tfnum,omitempty"` + SaleAddressID string `protobuf:"bytes,13,opt,name=SaleAddressID,proto3" json:"SaleAddressID,omitempty"` +} + +func (x *Artwork) Reset() { + *x = Artwork{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Artwork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Artwork) ProtoMessage() {} + +func (x *Artwork) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Artwork.ProtoReflect.Descriptor instead. +func (*Artwork) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{31} +} + +func (x *Artwork) GetArtworkPriceUID() string { + if x != nil { + return x.ArtworkPriceUID + } + return "" +} + +func (x *Artwork) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" +} + +func (x *Artwork) GetArtworkUID() string { + if x != nil { + return x.ArtworkUID + } + return "" +} + +func (x *Artwork) GetArtworkName() string { + if x != nil { + return x.ArtworkName + } + return "" +} + +func (x *Artwork) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *Artwork) GetLength() uint64 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *Artwork) GetWidth() uint64 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *Artwork) GetRuler() uint64 { + if x != nil { + return x.Ruler + } + return 0 +} + +func (x *Artwork) GetSmallPic() string { + if x != nil { + return x.SmallPic + } + return "" +} + +func (x *Artwork) GetSaleAddress() string { + if x != nil { + return x.SaleAddress + } + return "" +} + +func (x *Artwork) GetReward() string { + if x != nil { + return x.Reward + } + return "" +} + +func (x *Artwork) GetTfnum() string { + if x != nil { + return x.Tfnum + } + return "" +} + +func (x *Artwork) GetSaleAddressID() string { + if x != nil { + return x.SaleAddressID + } + return "" +} + +type ArtExhibitionDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShowUID string `protobuf:"bytes,1,opt,name=ShowUID,proto3" json:"ShowUID,omitempty"` + ShowSeq string `protobuf:"bytes,2,opt,name=ShowSeq,proto3" json:"ShowSeq,omitempty"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,proto3" json:"ShowName,omitempty"` + ArtistName string `protobuf:"bytes,4,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` + ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,proto3" json:"ArtistUID,omitempty"` + ArtworkNum uint64 `protobuf:"varint,6,opt,name=ArtworkNum,proto3" json:"ArtworkNum,omitempty"` + Ruler uint64 `protobuf:"varint,7,opt,name=Ruler,proto3" json:"Ruler,omitempty"` + Price uint64 `protobuf:"varint,8,opt,name=Price,proto3" json:"Price,omitempty"` + Reward uint64 `protobuf:"varint,9,opt,name=Reward,proto3" json:"Reward,omitempty"` + CreateTime string `protobuf:"bytes,10,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` + Operator string `protobuf:"bytes,11,opt,name=Operator,proto3" json:"Operator,omitempty"` + IsShow uint64 `protobuf:"varint,12,opt,name=IsShow,proto3" json:"IsShow,omitempty"` + ShowTime string `protobuf:"bytes,13,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` + Address string `protobuf:"bytes,14,opt,name=Address,proto3" json:"Address,omitempty"` + Agent string `protobuf:"bytes,15,opt,name=Agent,proto3" json:"Agent,omitempty"` +} + +func (x *ArtExhibitionDetail) Reset() { + *x = ArtExhibitionDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArtExhibitionDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArtExhibitionDetail) ProtoMessage() {} + +func (x *ArtExhibitionDetail) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArtExhibitionDetail.ProtoReflect.Descriptor instead. +func (*ArtExhibitionDetail) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{32} +} + +func (x *ArtExhibitionDetail) GetShowUID() string { + if x != nil { + return x.ShowUID + } + return "" +} + +func (x *ArtExhibitionDetail) GetShowSeq() string { + if x != nil { + return x.ShowSeq + } + return "" +} + +func (x *ArtExhibitionDetail) GetShowName() string { + if x != nil { + return x.ShowName + } + return "" +} + +func (x *ArtExhibitionDetail) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *ArtExhibitionDetail) GetArtistUID() string { + if x != nil { + return x.ArtistUID + } + return "" +} + +func (x *ArtExhibitionDetail) GetArtworkNum() uint64 { + if x != nil { + return x.ArtworkNum + } + return 0 +} + +func (x *ArtExhibitionDetail) GetRuler() uint64 { + if x != nil { + return x.Ruler + } + return 0 +} + +func (x *ArtExhibitionDetail) GetPrice() uint64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *ArtExhibitionDetail) GetReward() uint64 { + if x != nil { + return x.Reward + } + return 0 +} + +func (x *ArtExhibitionDetail) GetCreateTime() string { + if x != nil { + return x.CreateTime + } + return "" +} + +func (x *ArtExhibitionDetail) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *ArtExhibitionDetail) GetIsShow() uint64 { + if x != nil { + return x.IsShow + } + return 0 +} + +func (x *ArtExhibitionDetail) GetShowTime() string { + if x != nil { + return x.ShowTime + } + return "" +} + +func (x *ArtExhibitionDetail) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ArtExhibitionDetail) GetAgent() string { + if x != nil { + return x.Agent + } + return "" +} + +type BundlePayPrice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` + ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` + ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` + ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` + ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` + ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` + ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` + ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` + ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` + Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` + Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` + OperationTimes int32 `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,omitempty"` +} + +func (x *BundlePayPrice) Reset() { + *x = BundlePayPrice{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundlePayPrice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundlePayPrice) ProtoMessage() {} + +func (x *BundlePayPrice) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundlePayPrice.ProtoReflect.Descriptor instead. +func (*BundlePayPrice) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{33} +} + +func (x *BundlePayPrice) GetShowUid() string { + if x != nil { + return x.ShowUid + } + return "" +} + +func (x *BundlePayPrice) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *BundlePayPrice) GetShowName() string { + if x != nil { + return x.ShowName + } + return "" +} + +func (x *BundlePayPrice) GetReceivedAt() string { + if x != nil { + return x.ReceivedAt + } + return "" +} + +func (x *BundlePayPrice) GetShowDate() string { + if x != nil { + return x.ShowDate + } + return "" +} + +func (x *BundlePayPrice) GetShowLowPrice() string { + if x != nil { + return x.ShowLowPrice + } + return "" +} + +func (x *BundlePayPrice) GetArtworkNum() uint64 { + if x != nil { + return x.ArtworkNum + } + return 0 +} + +func (x *BundlePayPrice) GetArtworkSize() string { + if x != nil { + return x.ArtworkSize + } + return "" +} + +func (x *BundlePayPrice) GetShowAddress() string { + if x != nil { + return x.ShowAddress + } + return "" +} + +func (x *BundlePayPrice) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *BundlePayPrice) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *BundlePayPrice) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *BundlePayPrice) GetRollback() int32 { + if x != nil { + return x.Rollback + } + return 0 +} + +func (x *BundlePayPrice) GetOperationTimes() int32 { + if x != nil { + return x.OperationTimes + } + return 0 +} + +type CreateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + Status uint64 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Type string `protobuf:"bytes,4,opt,name=Type,json=type,proto3" json:"Type,omitempty"` + SubmitterID uint64 `protobuf:"varint,7,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` //审批人 + SubmitterName string `protobuf:"bytes,8,opt,name=SubmitterName,json=submitterName,proto3" json:"SubmitterName,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,9,rep,name=CopyUsers,json=copyName,proto3" json:"CopyUsers,omitempty"` //抄送人 + Content string `protobuf:"bytes,10,opt,name=Content,json=content,proto3" json:"Content,omitempty"` //申请内容 + Reply string `protobuf:"bytes,11,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` //回复 + CanView bool `protobuf:"varint,12,opt,name=CanView,json=canView,proto3" json:"CanView,omitempty"` //是否可以阅读 + Work *Work `protobuf:"bytes,13,opt,name=Work,json=work,proto3" json:"Work,omitempty"` + Show *Show `protobuf:"bytes,14,opt,name=Show,json=show,proto3" json:"Show,omitempty"` + Exhibition *Exhibition `protobuf:"bytes,15,opt,name=Exhibition,json=exhibition,proto3" json:"Exhibition,omitempty"` + Bundle *Bundle `protobuf:"bytes,16,opt,name=Bundle,json=bundle,proto3" json:"Bundle,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` //审批的人 + CanApproval bool `protobuf:"varint,18,opt,name=CanApproval,json=canApproval,proto3" json:"CanApproval,omitempty"` //审批的人 + WorkFlows []*WorkFlow `protobuf:"bytes,19,rep,name=WorkFlows,json=workFlows,proto3" json:"WorkFlows,omitempty"` //审批的人 + AllStatus uint64 `protobuf:"varint,20,opt,name=AllStatus,json=allStatus,proto3" json:"AllStatus,omitempty"` //状态 0 1 2 3已阅读 4-待阅读 + NowUserId uint64 `protobuf:"varint,21,opt,name=NowUserId,json=nowUserId,proto3" json:"NowUserId,omitempty"` + NowUserName string `protobuf:"bytes,22,opt,name=NowUserName,json=nowUserName,proto3" json:"NowUserName,omitempty"` + Level uint64 `protobuf:"varint,23,opt,name=Level,json=level,proto3" json:"Level,omitempty"` + NowLevel uint64 `protobuf:"varint,24,opt,name=NowLevel,json=nowLevel,proto3" json:"NowLevel,omitempty"` + CreatedAt string `protobuf:"bytes,25,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + CustomizeInfo []*KeyInfo `protobuf:"bytes,26,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` + IsCustom uint64 `protobuf:"varint,27,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` + TypeName string `protobuf:"bytes,28,opt,name=TypeName,json=typeName,proto3" json:"TypeName,omitempty"` + GroupName string `protobuf:"bytes,29,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` + BundlePayPrice *BundlePayPrice `protobuf:"bytes,30,opt,name=BundlePayPrice,json=bundlePayPrice,proto3" json:"BundlePayPrice,omitempty"` + ApprovalOA *ApprovalOA `protobuf:"bytes,31,opt,name=ApprovalOA,json=approvalOA,proto3" json:"ApprovalOA,omitempty"` + FinancialForm *FinancialForm `protobuf:"bytes,32,opt,name=FinancialForm,json=financialForm,proto3" json:"FinancialForm,omitempty"` +} + +func (x *CreateRequest) Reset() { + *x = CreateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRequest) ProtoMessage() {} + +func (x *CreateRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. +func (*CreateRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{34} +} + +func (x *CreateRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *CreateRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *CreateRequest) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *CreateRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CreateRequest) GetSubmitterID() uint64 { + if x != nil { + return x.SubmitterID + } + return 0 +} + +func (x *CreateRequest) GetSubmitterName() string { + if x != nil { + return x.SubmitterName + } + return "" +} + +func (x *CreateRequest) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *CreateRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *CreateRequest) GetReply() string { + if x != nil { + return x.Reply + } + return "" +} + +func (x *CreateRequest) GetCanView() bool { + if x != nil { + return x.CanView + } + return false +} + +func (x *CreateRequest) GetWork() *Work { + if x != nil { + return x.Work + } + return nil +} + +func (x *CreateRequest) GetShow() *Show { + if x != nil { + return x.Show + } + return nil +} + +func (x *CreateRequest) GetExhibition() *Exhibition { + if x != nil { + return x.Exhibition + } + return nil +} + +func (x *CreateRequest) GetBundle() *Bundle { + if x != nil { + return x.Bundle + } + return nil +} + +func (x *CreateRequest) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +func (x *CreateRequest) GetCanApproval() bool { + if x != nil { + return x.CanApproval + } + return false +} + +func (x *CreateRequest) GetWorkFlows() []*WorkFlow { + if x != nil { + return x.WorkFlows + } + return nil +} + +func (x *CreateRequest) GetAllStatus() uint64 { + if x != nil { + return x.AllStatus + } + return 0 +} + +func (x *CreateRequest) GetNowUserId() uint64 { + if x != nil { + return x.NowUserId + } + return 0 +} + +func (x *CreateRequest) GetNowUserName() string { + if x != nil { + return x.NowUserName + } + return "" +} + +func (x *CreateRequest) GetLevel() uint64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *CreateRequest) GetNowLevel() uint64 { + if x != nil { + return x.NowLevel + } + return 0 +} + +func (x *CreateRequest) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *CreateRequest) GetCustomizeInfo() []*KeyInfo { + if x != nil { + return x.CustomizeInfo + } + return nil +} + +func (x *CreateRequest) GetIsCustom() uint64 { + if x != nil { + return x.IsCustom + } + return 0 +} + +func (x *CreateRequest) GetTypeName() string { + if x != nil { + return x.TypeName + } + return "" +} + +func (x *CreateRequest) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *CreateRequest) GetBundlePayPrice() *BundlePayPrice { + if x != nil { + return x.BundlePayPrice + } + return nil +} + +func (x *CreateRequest) GetApprovalOA() *ApprovalOA { + if x != nil { + return x.ApprovalOA + } + return nil +} + +func (x *CreateRequest) GetFinancialForm() *FinancialForm { + if x != nil { + return x.FinancialForm + } + return nil +} + +type WorkFlow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=Name,json=name,proto3" json:"Name,omitempty"` + Level uint64 `protobuf:"varint,5,opt,name=Level,json=level,proto3" json:"Level,omitempty"` + Status uint64 `protobuf:"varint,6,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Reply string `protobuf:"bytes,7,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` + OperatedAt string `protobuf:"bytes,8,opt,name=OperatedAt,json=operatedAt,proto3" json:"OperatedAt,omitempty"` +} + +func (x *WorkFlow) Reset() { + *x = WorkFlow{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkFlow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkFlow) ProtoMessage() {} + +func (x *WorkFlow) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkFlow.ProtoReflect.Descriptor instead. +func (*WorkFlow) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{35} +} + +func (x *WorkFlow) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *WorkFlow) GetUserID() uint64 { + if x != nil { + return x.UserID + } + return 0 +} + +func (x *WorkFlow) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WorkFlow) GetLevel() uint64 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *WorkFlow) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *WorkFlow) GetReply() string { + if x != nil { + return x.Reply + } + return "" +} + +func (x *WorkFlow) GetOperatedAt() string { + if x != nil { + return x.OperatedAt + } + return "" +} + +type DetailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + UserId uint64 `protobuf:"varint,3,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` +} + +func (x *DetailRequest) Reset() { + *x = DetailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DetailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetailRequest) ProtoMessage() {} + +func (x *DetailRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetailRequest.ProtoReflect.Descriptor instead. +func (*DetailRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{36} +} + +func (x *DetailRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *DetailRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *DetailRequest) GetUserId() uint64 { + if x != nil { + return x.UserId + } + return 0 +} + +type RemoveRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IDs []uint64 `protobuf:"varint,1,rep,packed,name=IDs,proto3" json:"IDs,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` +} + +func (x *RemoveRequest) Reset() { + *x = RemoveRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveRequest) ProtoMessage() {} + +func (x *RemoveRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead. +func (*RemoveRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{37} +} + +func (x *RemoveRequest) GetIDs() []uint64 { + if x != nil { + return x.IDs + } + return nil +} + +func (x *RemoveRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +type ApprovalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` +} + +func (x *ApprovalResponse) Reset() { + *x = ApprovalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalResponse) ProtoMessage() {} + +func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalResponse.ProtoReflect.Descriptor instead. +func (*ApprovalResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{38} +} + +func (x *ApprovalResponse) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type RemoveResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` +} + +func (x *RemoveResponse) Reset() { + *x = RemoveResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveResponse) ProtoMessage() {} + +func (x *RemoveResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead. +func (*RemoveResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{39} +} + +func (x *RemoveResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type ApprovalExhibitionRemove struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` +} + +func (x *ApprovalExhibitionRemove) Reset() { + *x = ApprovalExhibitionRemove{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalExhibitionRemove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalExhibitionRemove) ProtoMessage() {} + +func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalExhibitionRemove.ProtoReflect.Descriptor instead. +func (*ApprovalExhibitionRemove) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{40} +} + +func (x *ApprovalExhibitionRemove) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type ApprovalExhibitionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + ExhibitionID uint64 `protobuf:"varint,6,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` + ExhibitionName string `protobuf:"bytes,7,opt,name=ExhibitionName,json=exhibitionName,proto3" json:"ExhibitionName,omitempty"` + ArtworkID uint64 `protobuf:"varint,8,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` + ExhibitionSize string `protobuf:"bytes,9,opt,name=ExhibitionSize,json=exhibitionSize,proto3" json:"ExhibitionSize,omitempty"` + ExhibitionNumber string `protobuf:"bytes,10,opt,name=ExhibitionNumber,json=exhibitionNumber,proto3" json:"ExhibitionNumber,omitempty"` +} + +func (x *ApprovalExhibitionRequest) Reset() { + *x = ApprovalExhibitionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalExhibitionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalExhibitionRequest) ProtoMessage() {} + +func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalExhibitionRequest.ProtoReflect.Descriptor instead. +func (*ApprovalExhibitionRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{41} +} + +func (x *ApprovalExhibitionRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalExhibitionRequest) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *ApprovalExhibitionRequest) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *ApprovalExhibitionRequest) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *ApprovalExhibitionRequest) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *ApprovalExhibitionRequest) GetExhibitionID() uint64 { + if x != nil { + return x.ExhibitionID + } + return 0 +} + +func (x *ApprovalExhibitionRequest) GetExhibitionName() string { + if x != nil { + return x.ExhibitionName + } + return "" +} + +func (x *ApprovalExhibitionRequest) GetArtworkID() uint64 { + if x != nil { + return x.ArtworkID + } + return 0 +} + +func (x *ApprovalExhibitionRequest) GetExhibitionSize() string { + if x != nil { + return x.ExhibitionSize + } + return "" +} + +func (x *ApprovalExhibitionRequest) GetExhibitionNumber() string { + if x != nil { + return x.ExhibitionNumber + } + return "" +} + +type ApprovalExhibitionDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` +} + +func (x *ApprovalExhibitionDetail) Reset() { + *x = ApprovalExhibitionDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalExhibitionDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalExhibitionDetail) ProtoMessage() {} + +func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalExhibitionDetail.ProtoReflect.Descriptor instead. +func (*ApprovalExhibitionDetail) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{42} +} + +func (x *ApprovalExhibitionDetail) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalExhibitionDetail) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +type CopyUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` + IsViewed bool `protobuf:"varint,3,opt,name=IsViewed,json=isViewed,proto3" json:"IsViewed,omitempty"` +} + +func (x *CopyUser) Reset() { + *x = CopyUser{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CopyUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CopyUser) ProtoMessage() {} + +func (x *CopyUser) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CopyUser.ProtoReflect.Descriptor instead. +func (*CopyUser) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{43} +} + +func (x *CopyUser) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *CopyUser) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CopyUser) GetIsViewed() bool { + if x != nil { + return x.IsViewed + } + return false +} + +type ApprovalUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` + Level string `protobuf:"bytes,3,opt,name=Level,proto3" json:"Level,omitempty"` +} + +func (x *ApprovalUser) Reset() { + *x = ApprovalUser{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalUser) ProtoMessage() {} + +func (x *ApprovalUser) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalUser.ProtoReflect.Descriptor instead. +func (*ApprovalUser) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{44} +} + +func (x *ApprovalUser) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalUser) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ApprovalUser) GetLevel() string { + if x != nil { + return x.Level + } + return "" +} + +type SettingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + KeyWord string `protobuf:"bytes,5,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,6,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,9,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` + Domain string `protobuf:"bytes,10,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` + CustomizeInfo []*KeyInfo `protobuf:"bytes,11,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` + IsCustom uint64 `protobuf:"varint,12,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` +} + +func (x *SettingRequest) Reset() { + *x = SettingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingRequest) ProtoMessage() {} + +func (x *SettingRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SettingRequest.ProtoReflect.Descriptor instead. +func (*SettingRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{45} +} + +func (x *SettingRequest) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *SettingRequest) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *SettingRequest) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *SettingRequest) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *SettingRequest) GetKeyWord() string { + if x != nil { + return x.KeyWord + } + return "" +} + +func (x *SettingRequest) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *SettingRequest) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +func (x *SettingRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *SettingRequest) GetCustomizeInfo() []*KeyInfo { + if x != nil { + return x.CustomizeInfo + } + return nil +} + +func (x *SettingRequest) GetIsCustom() uint64 { + if x != nil { + return x.IsCustom + } + return 0 +} + +type DetailSettingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyWord string `protobuf:"bytes,1,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` + Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` +} + +func (x *DetailSettingRequest) Reset() { + *x = DetailSettingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DetailSettingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetailSettingRequest) ProtoMessage() {} + +func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. +func (*DetailSettingRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{46} +} + +func (x *DetailSettingRequest) GetKeyWord() string { + if x != nil { + return x.KeyWord + } + return "" +} + +func (x *DetailSettingRequest) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +type SettingResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` +} + +func (x *SettingResponse) Reset() { + *x = SettingResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingResponse) ProtoMessage() {} + +func (x *SettingResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. +func (*SettingResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{47} +} + +func (x *SettingResponse) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *SettingResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type ApplyTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Date string `protobuf:"bytes,1,opt,name=Date,json=date,proto3" json:"Date,omitempty"` + Hour string `protobuf:"bytes,2,opt,name=Hour,json=hour,proto3" json:"Hour,omitempty"` + M string `protobuf:"bytes,3,opt,name=M,json=m,proto3" json:"M,omitempty"` +} + +func (x *ApplyTime) Reset() { + *x = ApplyTime{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplyTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyTime) ProtoMessage() {} + +func (x *ApplyTime) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplyTime.ProtoReflect.Descriptor instead. +func (*ApplyTime) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{48} +} + +func (x *ApplyTime) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *ApplyTime) GetHour() string { + if x != nil { + return x.Hour + } + return "" +} + +func (x *ApplyTime) GetM() string { + if x != nil { + return x.M + } + return "" +} + +type ApprovalOA struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + LeaveApply *LeaveApply `protobuf:"bytes,6,opt,name=LeaveApply,json=leaveApply,proto3" json:"LeaveApply,omitempty"` + OutWork *OutWorkApply `protobuf:"bytes,7,opt,name=OutWork,json=outWork,proto3" json:"OutWork,omitempty"` + MakeUp *MakeUpApply `protobuf:"bytes,8,opt,name=MakeUp,json=makeUp,proto3" json:"MakeUp,omitempty"` + Turnover *TurnoverApply `protobuf:"bytes,9,opt,name=Turnover,json=turnover,proto3" json:"Turnover,omitempty"` + OverTime *OverTimeApply `protobuf:"bytes,10,opt,name=OverTime,json=overTime,proto3" json:"OverTime,omitempty"` + Leave *Leave `protobuf:"bytes,11,opt,name=Leave,json=leave,proto3" json:"Leave,omitempty"` +} + +func (x *ApprovalOA) Reset() { + *x = ApprovalOA{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApprovalOA) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApprovalOA) ProtoMessage() {} + +func (x *ApprovalOA) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApprovalOA.ProtoReflect.Descriptor instead. +func (*ApprovalOA) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{49} +} + +func (x *ApprovalOA) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *ApprovalOA) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *ApprovalOA) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *ApprovalOA) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *ApprovalOA) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *ApprovalOA) GetLeaveApply() *LeaveApply { + if x != nil { + return x.LeaveApply + } + return nil +} + +func (x *ApprovalOA) GetOutWork() *OutWorkApply { + if x != nil { + return x.OutWork + } + return nil +} + +func (x *ApprovalOA) GetMakeUp() *MakeUpApply { + if x != nil { + return x.MakeUp + } + return nil +} + +func (x *ApprovalOA) GetTurnover() *TurnoverApply { + if x != nil { + return x.Turnover + } + return nil +} + +func (x *ApprovalOA) GetOverTime() *OverTimeApply { + if x != nil { + return x.OverTime + } + return nil +} + +func (x *ApprovalOA) GetLeave() *Leave { + if x != nil { + return x.Leave + } + return nil +} + +type LeaveApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + Reason string `protobuf:"bytes,10,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + VerifyFile []string `protobuf:"bytes,11,rep,name=VerifyFile,json=verifyFile,proto3" json:"VerifyFile,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,12,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,13,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` + LeaveBalance float32 `protobuf:"fixed32,14,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` +} + +func (x *LeaveApply) Reset() { + *x = LeaveApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveApply) ProtoMessage() {} + +func (x *LeaveApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeaveApply.ProtoReflect.Descriptor instead. +func (*LeaveApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{50} +} + +func (x *LeaveApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *LeaveApply) GetStaffUID() uint64 { + if x != nil { + return x.StaffUID + } + return 0 +} + +func (x *LeaveApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *LeaveApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *LeaveApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *LeaveApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *LeaveApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *LeaveApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *LeaveApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *LeaveApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *LeaveApply) GetVerifyFile() []string { + if x != nil { + return x.VerifyFile + } + return nil +} + +func (x *LeaveApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *LeaveApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +func (x *LeaveApply) GetLeaveBalance() float32 { + if x != nil { + return x.LeaveBalance + } + return 0 +} + +type OutWorkApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` + OutWorkAddress string `protobuf:"bytes,14,opt,name=OutWorkAddress,json=outWorkAddress,proto3" json:"OutWorkAddress,omitempty"` + Vehicle string `protobuf:"bytes,15,opt,name=Vehicle,json=vehicle,proto3" json:"Vehicle,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,16,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *OutWorkApply) Reset() { + *x = OutWorkApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutWorkApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutWorkApply) ProtoMessage() {} + +func (x *OutWorkApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutWorkApply.ProtoReflect.Descriptor instead. +func (*OutWorkApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{51} +} + +func (x *OutWorkApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *OutWorkApply) GetStaffUID() uint64 { + if x != nil { + return x.StaffUID + } + return 0 +} + +func (x *OutWorkApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *OutWorkApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *OutWorkApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *OutWorkApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *OutWorkApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *OutWorkApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *OutWorkApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OutWorkApply) GetApplyTimes() []*ApplyTime { + if x != nil { + return x.ApplyTimes + } + return nil +} + +func (x *OutWorkApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *OutWorkApply) GetHours() float32 { + if x != nil { + return x.Hours + } + return 0 +} + +func (x *OutWorkApply) GetOutWorkAddress() string { + if x != nil { + return x.OutWorkAddress + } + return "" +} + +func (x *OutWorkApply) GetVehicle() string { + if x != nil { + return x.Vehicle + } + return "" +} + +func (x *OutWorkApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *OutWorkApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type MakeUpApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,13,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,14,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *MakeUpApply) Reset() { + *x = MakeUpApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MakeUpApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MakeUpApply) ProtoMessage() {} + +func (x *MakeUpApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MakeUpApply.ProtoReflect.Descriptor instead. +func (*MakeUpApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{52} +} + +func (x *MakeUpApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *MakeUpApply) GetStaffUID() uint64 { + if x != nil { + return x.StaffUID + } + return 0 +} + +func (x *MakeUpApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *MakeUpApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *MakeUpApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *MakeUpApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *MakeUpApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *MakeUpApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *MakeUpApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *MakeUpApply) GetApplyTimes() []*ApplyTime { + if x != nil { + return x.ApplyTimes + } + return nil +} + +func (x *MakeUpApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *MakeUpApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *MakeUpApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type TurnoverApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + HandoverUID uint64 `protobuf:"varint,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` + HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` + Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *TurnoverApply) Reset() { + *x = TurnoverApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TurnoverApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TurnoverApply) ProtoMessage() {} + +func (x *TurnoverApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TurnoverApply.ProtoReflect.Descriptor instead. +func (*TurnoverApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{53} +} + +func (x *TurnoverApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *TurnoverApply) GetStaffUID() uint64 { + if x != nil { + return x.StaffUID + } + return 0 +} + +func (x *TurnoverApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *TurnoverApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *TurnoverApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *TurnoverApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *TurnoverApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *TurnoverApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *TurnoverApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *TurnoverApply) GetHandoverUID() uint64 { + if x != nil { + return x.HandoverUID + } + return 0 +} + +func (x *TurnoverApply) GetHandoverName() string { + if x != nil { + return x.HandoverName + } + return "" +} + +func (x *TurnoverApply) GetApplyTimes() []*ApplyTime { + if x != nil { + return x.ApplyTimes + } + return nil +} + +func (x *TurnoverApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *TurnoverApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *TurnoverApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type OverTimeApply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *OverTimeApply) Reset() { + *x = OverTimeApply{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OverTimeApply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OverTimeApply) ProtoMessage() {} + +func (x *OverTimeApply) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OverTimeApply.ProtoReflect.Descriptor instead. +func (*OverTimeApply) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{54} +} + +func (x *OverTimeApply) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *OverTimeApply) GetStaffUID() uint64 { + if x != nil { + return x.StaffUID + } + return 0 +} + +func (x *OverTimeApply) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *OverTimeApply) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *OverTimeApply) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *OverTimeApply) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *OverTimeApply) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *OverTimeApply) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *OverTimeApply) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OverTimeApply) GetApplyTimes() []*ApplyTime { + if x != nil { + return x.ApplyTimes + } + return nil +} + +func (x *OverTimeApply) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *OverTimeApply) GetHours() float32 { + if x != nil { + return x.Hours + } + return 0 +} + +func (x *OverTimeApply) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *OverTimeApply) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type Leave struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` + StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` + DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` + ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` + ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` + ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` + Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` + Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` + Days float32 `protobuf:"fixed32,14,opt,name=Days,json=days,proto3" json:"Days,omitempty"` + CopyUsers []*CopyUser `protobuf:"bytes,15,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` + ApprovalUsers []*ApprovalUser `protobuf:"bytes,16,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` +} + +func (x *Leave) Reset() { + *x = Leave{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Leave) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Leave) ProtoMessage() {} + +func (x *Leave) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Leave.ProtoReflect.Descriptor instead. +func (*Leave) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{55} +} + +func (x *Leave) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *Leave) GetStaffUID() uint64 { + if x != nil { + return x.StaffUID + } + return 0 +} + +func (x *Leave) GetStaffNum() string { + if x != nil { + return x.StaffNum + } + return "" +} + +func (x *Leave) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *Leave) GetDepartmentUID() string { + if x != nil { + return x.DepartmentUID + } + return "" +} + +func (x *Leave) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *Leave) GetActionTime() string { + if x != nil { + return x.ActionTime + } + return "" +} + +func (x *Leave) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *Leave) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *Leave) GetApplyTimes() []*ApplyTime { + if x != nil { + return x.ApplyTimes + } + return nil +} + +func (x *Leave) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *Leave) GetHours() float32 { + if x != nil { + return x.Hours + } + return 0 +} + +func (x *Leave) GetDays() float32 { + if x != nil { + return x.Days + } + return 0 +} + +func (x *Leave) GetCopyUsers() []*CopyUser { + if x != nil { + return x.CopyUsers + } + return nil +} + +func (x *Leave) GetApprovalUsers() []*ApprovalUser { + if x != nil { + return x.ApprovalUsers + } + return nil +} + +type UpdateApprovalOAUUIDReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + ApplyType string `protobuf:"bytes,2,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` + ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` +} + +func (x *UpdateApprovalOAUUIDReq) Reset() { + *x = UpdateApprovalOAUUIDReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApprovalOAUUIDReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApprovalOAUUIDReq) ProtoMessage() {} + +func (x *UpdateApprovalOAUUIDReq) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateApprovalOAUUIDReq.ProtoReflect.Descriptor instead. +func (*UpdateApprovalOAUUIDReq) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{56} +} + +func (x *UpdateApprovalOAUUIDReq) GetUUID() string { + if x != nil { + return x.UUID + } + return "" +} + +func (x *UpdateApprovalOAUUIDReq) GetApplyType() string { + if x != nil { + return x.ApplyType + } + return "" +} + +func (x *UpdateApprovalOAUUIDReq) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +type UpdateApprovalOAUUIDResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` +} + +func (x *UpdateApprovalOAUUIDResponse) Reset() { + *x = UpdateApprovalOAUUIDResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApprovalOAUUIDResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApprovalOAUUIDResponse) ProtoMessage() {} + +func (x *UpdateApprovalOAUUIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateApprovalOAUUIDResponse.ProtoReflect.Descriptor instead. +func (*UpdateApprovalOAUUIDResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{57} +} + +func (x *UpdateApprovalOAUUIDResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +// 财务报表审批 +type GetNameRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SettingType string `protobuf:"bytes,1,opt,name=SettingType,json=settingType,proto3" json:"SettingType,omitempty"` +} + +func (x *GetNameRequest) Reset() { + *x = GetNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNameRequest) ProtoMessage() {} + +func (x *GetNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. +func (*GetNameRequest) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{58} +} + +func (x *GetNameRequest) GetSettingType() string { + if x != nil { + return x.SettingType + } + return "" +} + +type GetNameResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name []string `protobuf:"bytes,1,rep,name=Name,json=name,proto3" json:"Name,omitempty"` +} + +func (x *GetNameResponse) Reset() { + *x = GetNameResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNameResponse) ProtoMessage() {} + +func (x *GetNameResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. +func (*GetNameResponse) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{59} +} + +func (x *GetNameResponse) GetName() []string { + if x != nil { + return x.Name + } + return nil +} + +type FinancialForm struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` + UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` + ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` + PaymentCompany string `protobuf:"bytes,6,opt,name=PaymentCompany,json=paymentCompany,proto3" json:"PaymentCompany,omitempty"` + TransactionDepartment string `protobuf:"bytes,7,opt,name=TransactionDepartment,json=transactionDepartment,proto3" json:"TransactionDepartment,omitempty"` + Payee string `protobuf:"bytes,8,opt,name=Payee,json=payee,proto3" json:"Payee,omitempty"` + BeneficiaryBank string `protobuf:"bytes,9,opt,name=BeneficiaryBank,json=beneficiaryBank,proto3" json:"BeneficiaryBank,omitempty"` + BankNo string `protobuf:"bytes,10,opt,name=BankNo,json=bankNo,proto3" json:"BankNo,omitempty"` + CostInfo []*CostInfo `protobuf:"bytes,11,rep,name=CostInfo,json=costInfo,proto3" json:"CostInfo,omitempty"` + PaymentMethod string `protobuf:"bytes,12,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` + InvoiceInfo []*InvoiceInfo `protobuf:"bytes,13,rep,name=InvoiceInfo,json=invoiceInfo,proto3" json:"InvoiceInfo,omitempty"` +} + +func (x *FinancialForm) Reset() { + *x = FinancialForm{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinancialForm) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinancialForm) ProtoMessage() {} + +func (x *FinancialForm) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. +func (*FinancialForm) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{60} +} + +func (x *FinancialForm) GetID() uint64 { + if x != nil { + return x.ID + } + return 0 +} + +func (x *FinancialForm) GetDeletedAt() uint64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *FinancialForm) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *FinancialForm) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +func (x *FinancialForm) GetApprovalID() uint64 { + if x != nil { + return x.ApprovalID + } + return 0 +} + +func (x *FinancialForm) GetPaymentCompany() string { + if x != nil { + return x.PaymentCompany + } + return "" +} + +func (x *FinancialForm) GetTransactionDepartment() string { + if x != nil { + return x.TransactionDepartment + } + return "" +} + +func (x *FinancialForm) GetPayee() string { + if x != nil { + return x.Payee + } + return "" +} + +func (x *FinancialForm) GetBeneficiaryBank() string { + if x != nil { + return x.BeneficiaryBank + } + return "" +} + +func (x *FinancialForm) GetBankNo() string { + if x != nil { + return x.BankNo + } + return "" +} + +func (x *FinancialForm) GetCostInfo() []*CostInfo { + if x != nil { + return x.CostInfo + } + return nil +} + +func (x *FinancialForm) GetPaymentMethod() string { + if x != nil { + return x.PaymentMethod + } + return "" +} + +func (x *FinancialForm) GetInvoiceInfo() []*InvoiceInfo { + if x != nil { + return x.InvoiceInfo + } + return nil +} + +type CostInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` + UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` + CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` + CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` + TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` + UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` +} + +func (x *CostInfo) Reset() { + *x = CostInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CostInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CostInfo) ProtoMessage() {} + +func (x *CostInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CostInfo.ProtoReflect.Descriptor instead. +func (*CostInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{61} +} + +func (x *CostInfo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CostInfo) GetUnitPrice() string { + if x != nil { + return x.UnitPrice + } + return "" +} + +func (x *CostInfo) GetCostUnit() string { + if x != nil { + return x.CostUnit + } + return "" +} + +func (x *CostInfo) GetCostNum() int64 { + if x != nil { + return x.CostNum + } + return 0 +} + +func (x *CostInfo) GetTotalPrice() string { + if x != nil { + return x.TotalPrice + } + return "" +} + +func (x *CostInfo) GetUsedDepartment() string { + if x != nil { + return x.UsedDepartment + } + return "" +} + +type InvoiceInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` + InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` + InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` + Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` + UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` + Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` + PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` + PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` + InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` + Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` +} + +func (x *InvoiceInfo) Reset() { + *x = InvoiceInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_api_approval_approval_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InvoiceInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvoiceInfo) ProtoMessage() {} + +func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_approval_approval_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvoiceInfo.ProtoReflect.Descriptor instead. +func (*InvoiceInfo) Descriptor() ([]byte, []int) { + return file_api_approval_approval_proto_rawDescGZIP(), []int{62} +} + +func (x *InvoiceInfo) GetInvoiceDate() string { + if x != nil { + return x.InvoiceDate + } + return "" +} + +func (x *InvoiceInfo) GetInvoiceNo() string { + if x != nil { + return x.InvoiceNo + } + return "" +} + +func (x *InvoiceInfo) GetInvoiceProvider() string { + if x != nil { + return x.InvoiceProvider + } + return "" +} + +func (x *InvoiceInfo) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *InvoiceInfo) GetUseTo() string { + if x != nil { + return x.UseTo + } + return "" +} + +func (x *InvoiceInfo) GetApplicant() string { + if x != nil { + return x.Applicant + } + return "" +} + +func (x *InvoiceInfo) GetPaymentMethod() string { + if x != nil { + return x.PaymentMethod + } + return "" +} + +func (x *InvoiceInfo) GetPaymentObj() string { + if x != nil { + return x.PaymentObj + } + return "" +} + +func (x *InvoiceInfo) GetInvoiceType() string { + if x != nil { + return x.InvoiceType + } + return "" +} + +func (x *InvoiceInfo) GetNotes() string { + if x != nil { + return x.Notes + } + return "" +} + +var File_api_approval_approval_proto protoreflect.FileDescriptor + +var file_api_approval_approval_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x1a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x77, 0x69, 0x74, 0x6b, 0x6f, 0x77, 0x2f, 0x67, 0x6f, 0x2d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x40, + 0x76, 0x30, 0x2e, 0x33, 0x2e, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x62, 0x0a, 0x16, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x17, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x50, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4b, 0x65, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x22, 0x6a, 0x0a, 0x16, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x50, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0x4f, 0x0a, 0x15, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x22, 0x68, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x0d, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, + 0x86, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4b, + 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, + 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x58, 0x0a, 0x0f, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2f, 0x0a, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x5e, + 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, + 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, + 0xe2, 0xdf, 0x1f, 0x0b, 0x10, 0x00, 0x18, 0x04, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x38, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, + 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, + 0x73, 0x73, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6f, 0x69, 0x6e, + 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x6f, + 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x46, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0c, 0x6d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, + 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x7e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, + 0x4c, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, + 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, + 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, + 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, + 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x61, + 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, + 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x12, 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0x85, 0x03, + 0x0a, 0x07, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x72, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, + 0x6c, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x12, + 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x6e, + 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x12, + 0x24, 0x0a, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x44, 0x22, 0xa7, 0x03, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, + 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, + 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, + 0x75, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, + 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x73, 0x53, + 0x68, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, + 0xb6, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, + 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, + 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0xf2, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, + 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, + 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, + 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, + 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, + 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, + 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, + 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, + 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x3d, + 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, + 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, + 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, + 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, + 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, + 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, + 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, + 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, + 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, + 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, + 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, + 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, + 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, + 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, + 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, + 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, + 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, + 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, + 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, + 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, + 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, + 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, + 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, + 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, + 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, + 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, + 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, + 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, + 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, + 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, + 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, + 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xd6, 0x0d, 0x0a, + 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, + 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, + 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, + 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, + 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, + 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, + 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, + 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, + 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x61, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_api_approval_approval_proto_rawDescOnce sync.Once + file_api_approval_approval_proto_rawDescData = file_api_approval_approval_proto_rawDesc +) + +func file_api_approval_approval_proto_rawDescGZIP() []byte { + file_api_approval_approval_proto_rawDescOnce.Do(func() { + file_api_approval_approval_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_approval_approval_proto_rawDescData) + }) + return file_api_approval_approval_proto_rawDescData +} + +var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_api_approval_approval_proto_goTypes = []interface{}{ + (*CommonResponse)(nil), // 0: approval.CommonResponse + (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest + (*IsExistPayRightRequest)(nil), // 2: approval.IsExistPayRightRequest + (*IsExistPayRightResponse)(nil), // 3: approval.IsExistPayRightResponse + (*KeyInfo)(nil), // 4: approval.KeyInfo + (*UpdateEhApplyIDRequest)(nil), // 5: approval.UpdateEhApplyIDRequest + (*UpdateEhApplyIDResponse)(nil), // 6: approval.UpdateEhApplyIDResponse + (*UsedNumByUserRequest)(nil), // 7: approval.UsedNumByUserRequest + (*UsedNumByUserResponse)(nil), // 8: approval.UsedNumByUserResponse + (*NowLevelByInfoRequest)(nil), // 9: approval.NowLevelByInfoRequest + (*WorkFlowResponse)(nil), // 10: approval.WorkFlowResponse + (*CommonRequest)(nil), // 11: approval.CommonRequest + (*CreateTypeRequest)(nil), // 12: approval.CreateTypeRequest + (*TypeResponse)(nil), // 13: approval.TypeResponse + (*AllTypeResponse)(nil), // 14: approval.AllTypeResponse + (*CreateTypeGroupRequest)(nil), // 15: approval.CreateTypeGroupRequest + (*AllGroupResponse)(nil), // 16: approval.AllGroupResponse + (*StatusRequest)(nil), // 17: approval.StatusRequest + (*StatusResponse)(nil), // 18: approval.StatusResponse + (*ListRequest)(nil), // 19: approval.ListRequest + (*ListResponse)(nil), // 20: approval.ListResponse + (*ViewedRequest)(nil), // 21: approval.ViewedRequest + (*InformationRequest)(nil), // 22: approval.InformationRequest + (*Information)(nil), // 23: approval.Information + (*InformationResponse)(nil), // 24: approval.InformationResponse + (*Bundle)(nil), // 25: approval.Bundle + (*Show)(nil), // 26: approval.Show + (*ApprovalWork)(nil), // 27: approval.ApprovalWork + (*Work)(nil), // 28: approval.Work + (*ApprovalExhibition)(nil), // 29: approval.ApprovalExhibition + (*Exhibition)(nil), // 30: approval.Exhibition + (*Artwork)(nil), // 31: approval.Artwork + (*ArtExhibitionDetail)(nil), // 32: approval.ArtExhibitionDetail + (*BundlePayPrice)(nil), // 33: approval.BundlePayPrice + (*CreateRequest)(nil), // 34: approval.CreateRequest + (*WorkFlow)(nil), // 35: approval.WorkFlow + (*DetailRequest)(nil), // 36: approval.DetailRequest + (*RemoveRequest)(nil), // 37: approval.RemoveRequest + (*ApprovalResponse)(nil), // 38: approval.ApprovalResponse + (*RemoveResponse)(nil), // 39: approval.RemoveResponse + (*ApprovalExhibitionRemove)(nil), // 40: approval.ApprovalExhibitionRemove + (*ApprovalExhibitionRequest)(nil), // 41: approval.ApprovalExhibitionRequest + (*ApprovalExhibitionDetail)(nil), // 42: approval.ApprovalExhibitionDetail + (*CopyUser)(nil), // 43: approval.CopyUser + (*ApprovalUser)(nil), // 44: approval.ApprovalUser + (*SettingRequest)(nil), // 45: approval.SettingRequest + (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest + (*SettingResponse)(nil), // 47: approval.SettingResponse + (*ApplyTime)(nil), // 48: approval.ApplyTime + (*ApprovalOA)(nil), // 49: approval.ApprovalOA + (*LeaveApply)(nil), // 50: approval.LeaveApply + (*OutWorkApply)(nil), // 51: approval.OutWorkApply + (*MakeUpApply)(nil), // 52: approval.MakeUpApply + (*TurnoverApply)(nil), // 53: approval.TurnoverApply + (*OverTimeApply)(nil), // 54: approval.OverTimeApply + (*Leave)(nil), // 55: approval.Leave + (*UpdateApprovalOAUUIDReq)(nil), // 56: approval.UpdateApprovalOAUUIDReq + (*UpdateApprovalOAUUIDResponse)(nil), // 57: approval.UpdateApprovalOAUUIDResponse + (*GetNameRequest)(nil), // 58: approval.GetNameRequest + (*GetNameResponse)(nil), // 59: approval.GetNameResponse + (*FinancialForm)(nil), // 60: approval.FinancialForm + (*CostInfo)(nil), // 61: approval.CostInfo + (*InvoiceInfo)(nil), // 62: approval.InvoiceInfo +} +var file_api_approval_approval_proto_depIdxs = []int32{ + 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo + 12, // 1: approval.AllTypeResponse.Data:type_name -> approval.CreateTypeRequest + 12, // 2: approval.CreateTypeGroupRequest.List:type_name -> approval.CreateTypeRequest + 15, // 3: approval.AllGroupResponse.Data:type_name -> approval.CreateTypeGroupRequest + 34, // 4: approval.ListResponse.data:type_name -> approval.CreateRequest + 23, // 5: approval.InformationResponse.MySubmitInfo:type_name -> approval.Information + 23, // 6: approval.InformationResponse.SubmitMeInfo:type_name -> approval.Information + 23, // 7: approval.InformationResponse.DomainInfo:type_name -> approval.Information + 27, // 8: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork + 31, // 9: approval.ApprovalExhibition.Artworks:type_name -> approval.Artwork + 32, // 10: approval.ApprovalExhibition.ArtExhibitionDetail:type_name -> approval.ArtExhibitionDetail + 29, // 11: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition + 43, // 12: approval.CreateRequest.CopyUsers:type_name -> approval.CopyUser + 28, // 13: approval.CreateRequest.Work:type_name -> approval.Work + 26, // 14: approval.CreateRequest.Show:type_name -> approval.Show + 30, // 15: approval.CreateRequest.Exhibition:type_name -> approval.Exhibition + 25, // 16: approval.CreateRequest.Bundle:type_name -> approval.Bundle + 44, // 17: approval.CreateRequest.ApprovalUsers:type_name -> approval.ApprovalUser + 35, // 18: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow + 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo + 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice + 49, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA + 60, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm + 43, // 23: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser + 44, // 24: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser + 4, // 25: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo + 50, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply + 51, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply + 52, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply + 53, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply + 54, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply + 55, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave + 43, // 32: approval.LeaveApply.CopyUsers:type_name -> approval.CopyUser + 44, // 33: approval.LeaveApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 34: approval.OutWorkApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 35: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser + 44, // 36: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 37: approval.MakeUpApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 38: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser + 44, // 39: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 40: approval.TurnoverApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 41: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser + 44, // 42: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 43: approval.OverTimeApply.ApplyTimes:type_name -> approval.ApplyTime + 43, // 44: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser + 44, // 45: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser + 48, // 46: approval.Leave.ApplyTimes:type_name -> approval.ApplyTime + 43, // 47: approval.Leave.CopyUsers:type_name -> approval.CopyUser + 44, // 48: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser + 61, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo + 62, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo + 34, // 51: approval.Approval.Create:input_type -> approval.CreateRequest + 7, // 52: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest + 5, // 53: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest + 36, // 54: approval.Approval.Detail:input_type -> approval.DetailRequest + 34, // 55: approval.Approval.Update:input_type -> approval.CreateRequest + 37, // 56: approval.Approval.Remove:input_type -> approval.RemoveRequest + 19, // 57: approval.Approval.MyWork:input_type -> approval.ListRequest + 19, // 58: approval.Approval.MySubmit:input_type -> approval.ListRequest + 9, // 59: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest + 22, // 60: approval.Approval.Information:input_type -> approval.InformationRequest + 21, // 61: approval.Approval.Viewed:input_type -> approval.ViewedRequest + 17, // 62: approval.Approval.SetStatus:input_type -> approval.StatusRequest + 46, // 63: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest + 45, // 64: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest + 2, // 65: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest + 1, // 66: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest + 12, // 67: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest + 13, // 68: approval.Approval.DetailType:input_type -> approval.TypeResponse + 12, // 69: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest + 11, // 70: approval.Approval.AllType:input_type -> approval.CommonRequest + 37, // 71: approval.Approval.RemoveType:input_type -> approval.RemoveRequest + 11, // 72: approval.Approval.AllGroup:input_type -> approval.CommonRequest + 58, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest + 56, // 74: approval.Approval.UpdateApprovalOAUUID:input_type -> approval.UpdateApprovalOAUUIDReq + 38, // 75: approval.Approval.Create:output_type -> approval.ApprovalResponse + 8, // 76: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse + 6, // 77: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse + 34, // 78: approval.Approval.Detail:output_type -> approval.CreateRequest + 38, // 79: approval.Approval.Update:output_type -> approval.ApprovalResponse + 39, // 80: approval.Approval.Remove:output_type -> approval.RemoveResponse + 20, // 81: approval.Approval.MyWork:output_type -> approval.ListResponse + 20, // 82: approval.Approval.MySubmit:output_type -> approval.ListResponse + 10, // 83: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse + 24, // 84: approval.Approval.Information:output_type -> approval.InformationResponse + 38, // 85: approval.Approval.Viewed:output_type -> approval.ApprovalResponse + 18, // 86: approval.Approval.SetStatus:output_type -> approval.StatusResponse + 45, // 87: approval.Approval.DetailSetting:output_type -> approval.SettingRequest + 47, // 88: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse + 3, // 89: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse + 0, // 90: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse + 13, // 91: approval.Approval.CreateType:output_type -> approval.TypeResponse + 12, // 92: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest + 13, // 93: approval.Approval.UpdateType:output_type -> approval.TypeResponse + 14, // 94: approval.Approval.AllType:output_type -> approval.AllTypeResponse + 18, // 95: approval.Approval.RemoveType:output_type -> approval.StatusResponse + 16, // 96: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse + 59, // 97: approval.Approval.GetName:output_type -> approval.GetNameResponse + 57, // 98: approval.Approval.UpdateApprovalOAUUID:output_type -> approval.UpdateApprovalOAUUIDResponse + 75, // [75:99] is the sub-list for method output_type + 51, // [51:75] is the sub-list for method input_type + 51, // [51:51] is the sub-list for extension type_name + 51, // [51:51] is the sub-list for extension extendee + 0, // [0:51] is the sub-list for field type_name +} + +func init() { file_api_approval_approval_proto_init() } +func file_api_approval_approval_proto_init() { + if File_api_approval_approval_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_api_approval_approval_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeBundlePayRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsExistPayRightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsExistPayRightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KeyInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateEhApplyIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateEhApplyIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UsedNumByUserRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UsedNumByUserResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NowLevelByInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkFlowResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTypeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TypeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AllTypeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTypeGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AllGroupResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewedRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InformationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Information); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InformationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bundle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Show); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalWork); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Work); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalExhibition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Exhibition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Artwork); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArtExhibitionDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BundlePayPrice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkFlow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalExhibitionRemove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalExhibitionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalExhibitionDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CopyUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SettingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DetailSettingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SettingResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplyTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApprovalOA); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutWorkApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MakeUpApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TurnoverApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OverTimeApply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Leave); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApprovalOAUUIDReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApprovalOAUUIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinancialForm); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CostInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_approval_approval_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvoiceInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_api_approval_approval_proto_rawDesc, + NumEnums: 0, + NumMessages: 63, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_approval_approval_proto_goTypes, + DependencyIndexes: file_api_approval_approval_proto_depIdxs, + MessageInfos: file_api_approval_approval_proto_msgTypes, + }.Build() + File_api_approval_approval_proto = out.File + file_api_approval_approval_proto_rawDesc = nil + file_api_approval_approval_proto_goTypes = nil + file_api_approval_approval_proto_depIdxs = nil +} diff --git a/api/approval/approval.proto b/api/approval/approval.proto new file mode 100644 index 0000000..1c363f6 --- /dev/null +++ b/api/approval/approval.proto @@ -0,0 +1,615 @@ +syntax = "proto3"; +package approval; +import "github.com/mwitkow/go-proto-validators@v0.3.2/validator.proto"; + +option go_package = "./;approval"; + +// The approval service definition. +service Approval { + + rpc Create(CreateRequest) returns (ApprovalResponse) {}; + rpc UsedNumByUser(UsedNumByUserRequest) returns (UsedNumByUserResponse) {};//获取此用户能创建多少个画展包 + rpc UpdateExhibitionApplyID(UpdateEhApplyIDRequest) returns (UpdateEhApplyIDResponse) {};//同步画展包的ID + + rpc Detail(DetailRequest) returns (CreateRequest) {}; + rpc Update(CreateRequest) returns (ApprovalResponse) {}; + rpc Remove(RemoveRequest) returns (RemoveResponse) {}; + rpc MyWork(ListRequest) returns (ListResponse) {};// 我的工作---待处理 + rpc MySubmit(ListRequest) returns (ListResponse) {};// 我的提交 + rpc NowLevelByInfo(NowLevelByInfoRequest) returns (WorkFlowResponse) {}; + rpc Information(InformationRequest) returns (InformationResponse) {}; + rpc Viewed(ViewedRequest) returns (ApprovalResponse) {}; + rpc SetStatus(StatusRequest) returns (StatusResponse) {}; + rpc DetailSetting(DetailSettingRequest) returns (SettingRequest) {}; + rpc UpdateSetting(SettingRequest) returns (SettingResponse) {}; + rpc IsExistPayRight(IsExistPayRightRequest) returns (IsExistPayRightResponse) {};//是否有 + rpc ChangeBundlePay(ChangeBundlePayRequest) returns (CommonResponse) {};//是否有 + + rpc CreateType(CreateTypeRequest) returns (TypeResponse) {}; + rpc DetailType(TypeResponse) returns (CreateTypeRequest) {}; + rpc UpdateType(CreateTypeRequest) returns (TypeResponse) {}; + rpc AllType(CommonRequest) returns (AllTypeResponse) {}; + rpc RemoveType(RemoveRequest) returns (StatusResponse) {}; + rpc AllGroup(CommonRequest) returns (AllGroupResponse) {}; + + // 财务报表审批 + rpc GetName(GetNameRequest) returns (GetNameResponse) {}; + + // OA审批 更新 OA系统的 UUID + rpc UpdateApprovalOAUUID(UpdateApprovalOAUUIDReq) returns (UpdateApprovalOAUUIDResponse) {}; +} + +message CommonResponse { + +} + +message ChangeBundlePayRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ID = 2 [json_name = "ID"]; + uint64 Status = 3 [json_name = "Status"]; +} + +message IsExistPayRightRequest { + string Domain = 1 [json_name = "domain"]; + uint64 UserId = 2 [json_name = "userId"]; + string ShowUid = 3 [json_name = "showUid"]; +} + +message IsExistPayRightResponse { + bool IsPass = 1 [json_name = "isPass"]; +} + +message KeyInfo { + string ApprovalKey = 1 [json_name = "approvalKey"]; + string ApprovalName = 2 [json_name = "approvalName"]; + string ApprovalType = 3 [json_name = "approvalType"]; + string ApprovalValue = 4 [json_name = "approvalValue"]; + bool ApprovalMark = 5 [json_name = "approvalMark"]; +} + +message UpdateEhApplyIDRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ApprovalID = 2 [json_name = "approvalID"]; + string ApplyId = 3 [json_name = "applyId"]; +} + +message UpdateEhApplyIDResponse { +} + +message UsedNumByUserRequest { + string Domain = 1 [json_name = "domain"]; + uint64 SubmitterID = 2 [json_name = "submitterID"]; +} + +message UsedNumByUserResponse { + uint64 total = 1 [json_name = "total"]; +} + +message NowLevelByInfoRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ApprovalID = 2 [json_name = "ApprovalID"]; +} + +message WorkFlowResponse { + uint64 ID = 2 [json_name = "ID"]; + string Reply = 3 [json_name = "Reply"]; + uint64 Status = 5 [json_name = "status"]; + uint64 UserID = 7 [json_name = "userID"]; +} + +message CommonRequest { + string Domain = 1 [json_name = "domain"]; + uint64 Page = 2 [json_name = "Page"]; + uint64 PageSize = 3 [json_name = "pageSize"]; + uint64 GroupId = 4 [json_name = "groupId"]; +} + +message CreateTypeRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ID = 2 [json_name = "ID"]; + string Title = 3 [json_name = "title"]; + string Remark = 5 [json_name = "remark"]; + string KeyWord = 6 [json_name = "keyWord"]; + repeated KeyInfo KeyInfos = 7 [json_name = "keyInfos"]; + uint64 IsCustom = 8 [json_name = "isCustom"]; + uint64 GroupId = 9 [json_name = "groupId"]; + string GroupName = 10 [json_name = "groupName"]; +} + +message TypeResponse { + uint64 ID = 1; + string Domain = 2; + string Keyword = 3; +} + +message AllTypeResponse { + repeated CreateTypeRequest Data = 1; + uint64 Count = 2; +} + +message CreateTypeGroupRequest { + uint64 ID = 1 [json_name = "ID"]; + string Domain = 2 [json_name = "domain"]; + string Title = 3 [json_name = "title"]; + repeated CreateTypeRequest List = 4 [json_name = "list"]; +} + +message AllGroupResponse { + repeated CreateTypeGroupRequest Data = 1; + uint64 Count = 2; +} + +message StatusRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ID = 2 [json_name = "ID"]; + string Reply = 3 [json_name = "Reply"]; + uint64 WorkFlowId = 4 [json_name = "workFlowId"]; + uint64 Status = 5 [json_name = "status",(validator.field) = {int_lt: 4,int_gt: 0,human_error: "70008"}]; + uint64 Level = 6 [json_name = "level"]; + string Title = 7 [json_name = "title"]; + uint64 UserId = 8 [json_name = "userId"]; + string LeaveBalance = 9 [json_name = "leaveBalance"]; +} + +message StatusResponse { + +} + +message ListRequest { + string Domain = 1 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; + uint64 PageSize = 2 [json_name = "PageSize"]; // + uint64 Page = 3 [json_name = "Page"]; // + uint64 Status = 4 [json_name = "status"];//0待审批 1-审批成功 2-拒绝 4-是所有 + string Type = 5 [json_name = "type"]; //类型 + uint64 UserID = 6 [json_name = "userID"]; // + uint64 ApprovedBossId = 7 [json_name = "approvedBossId"]; // +} + +message ListResponse { + uint64 Count = 1 [json_name = "count"]; + repeated CreateRequest data = 2 [json_name = "data"]; +} + +message ViewedRequest { + string Domain = 1 [json_name = "domain"]; + uint64 ID = 2 [json_name = "ID"]; + uint64 UserID = 3 [json_name = "userID"]; +} + +message InformationRequest { + string Domain = 1 [json_name = "domain"]; + uint64 UserID = 2 [json_name = "userID"]; + string Type = 3 [json_name = "type"]; +} + +message Information { + uint64 Total = 1 [json_name = "total"]; // 已提交的审批 (总量) + uint64 DoingTotal = 2 [json_name = "doingTotal"]; // 正在审批数量 + uint64 SuccessTotal = 3 [json_name = "successTotal"]; // 审批完成数量 + uint64 FailTotal = 4 [json_name = "failTotal"]; // 审批未通过 +} + +message InformationResponse { + Information MySubmitInfo = 1 [json_name = "mySubmitInfo"]; // 我提交的; + Information SubmitMeInfo = 2 [json_name = "submitMeInfo"]; // 提交给我的; + Information DomainInfo = 3 [json_name = "domainInfo"]; // 大盘数据; + //Information CopyMeInfo = 4 [json_name = "copyMeInfo"]; // 抄送给我的; +} + +message Bundle { + uint64 ID = 1 [json_name = "ID"]; + string ReturnAt = 2 [json_name = "returnAt"]; + string ReceivedAt = 3 [json_name = "receivedAt"]; + uint64 ApplicationsNum = 4 [json_name = "applicationsNum"]; +} + +message Show { + uint64 ID =1 [json_name = "ID"]; + uint64 ArtistNum =2 [json_name = "artistNum"]; + string ShowAt =3 [json_name = "ShowAt"]; +} + +message ApprovalWork { + uint64 ID =1 [json_name = "ID"]; + uint64 WorkID =2 [json_name = "WorkID"]; + uint64 ApprovalID =3 [json_name = "ApprovalID"]; + uint64 ArtworkID =4 [json_name = "artworkID"]; + string ArtworkName =5 [json_name = "artworkName"]; + string ArtistName =6 [json_name = "artistName"]; + string ArtworkCover =7 [json_name = "artworkCover"]; + uint64 ArtworkNumber =8 [json_name = "artworkNumber"]; + string ArtistUID =9 [json_name = "artistUID"]; + string ShowSeq =10 [json_name = "showSeq"]; +} + +message Work { + uint64 ID = 1 [json_name = "ID"]; + string ReturnAt = 2 [json_name = "returnAt"]; + string ReceivedAt = 3 [json_name = "receivedAt"]; + repeated ApprovalWork ApprovalWorks = 4 [json_name = "approvalWorks"]; + string ArtistUID = 5 [json_name = "artistUID"]; +} + + +message ApprovalExhibition { + uint64 ID =1 [json_name = "ID"]; + uint64 ExhibitionID =2 [json_name = "exhibitionID"]; + uint64 ApprovalID =3 [json_name = "approvalID"]; + string PackageName =4 [json_name = "packageName"]; + string PackageID =5 [json_name = "packageID"]; + uint64 PackageSize =6 [json_name = "packageSize"]; + string PackageNumber =7 [json_name = "packageNumber"]; + string Address =8 [json_name = "address"]; + string ShowDate =9 [json_name = "showDate"]; + repeated Artwork Artworks = 10[json_name = "artworks"]; + ArtExhibitionDetail ArtExhibitionDetail = 11[json_name = "artExhibitionDetail"]; + int64 TotalPrice = 12 [json_name = "totalPrice"]; +} + +message Exhibition { + uint64 ID =1 [json_name = "ID"]; + string ReceivedAt =2 [json_name = "receivedAt"]; + string Address =3 [json_name = "address"]; + uint64 PidApprovalID =4 [json_name = "pidApprovalID"]; + repeated ApprovalExhibition ApprovalExhibitions = 5 [json_name = "approvalExhibitions"]; + uint64 Num = 6 [json_name = "num"]; + string ApplyID = 7 [json_name = "applyID"]; +} + +message Artwork { + string ArtworkPriceUID =1; + string ShowUID =2; + string ArtworkUID =3; + string ArtworkName =4; + string ArtistName =5; + uint64 Length =6; + uint64 Width =7; + uint64 Ruler =8; + string SmallPic =9; + string SaleAddress =10; + string Reward =11; + string Tfnum =12; + string SaleAddressID =13; +} + +message ArtExhibitionDetail { + string ShowUID = 1 ; + string ShowSeq = 2 ; + string ShowName = 3 ; + string ArtistName = 4 ; + string ArtistUID = 5 ; + uint64 ArtworkNum = 6 ; + uint64 Ruler = 7 ; + uint64 Price = 8 ; + uint64 Reward = 9 ; + string CreateTime = 10 ; + string Operator = 11 ; + uint64 IsShow = 12 ; + string ShowTime = 13; + string Address = 14 ; + string Agent = 15 ; +} + +message BundlePayPrice { + string ShowUid = 1 [json_name = "showUid"]; + uint64 ApprovalID = 2 [json_name = "approvalID"]; + string ShowName = 3 [json_name = "showName"]; + string ReceivedAt = 4 [json_name = "receivedAt"]; + string ShowDate = 5 [json_name = "showDate"]; + string ShowLowPrice= 6 [json_name = "showLowPrice"]; + uint64 ArtworkNum = 7 [json_name = "artworkNum"]; + string ArtworkSize = 8 [json_name = "artworkSize"]; + string ShowAddress = 9 [json_name = "showAddress"]; + uint64 ID = 10 [json_name = "ID"]; + uint64 Status = 11 [json_name = "status"]; + string ArtistName = 12 [json_name = "artistName"]; + int32 Rollback = 13 [json_name = "rollback"]; + int32 OperationTimes = 14 [json_name = "operationTimes"]; +} + +message CreateRequest { + uint64 ID = 1 [json_name = "ID"]; + string Domain = 2 [json_name = "domain",(validator.field) = {string_not_empty: true,human_error: "70001"} ]; + uint64 Status = 3 [json_name = "status"]; + string Type = 4 [json_name = "type",(validator.field) = {string_not_empty: true,human_error: "70009"} ]; + uint64 SubmitterID = 7 [json_name = "submitterID"];//审批人 + string SubmitterName = 8 [json_name = "submitterName"]; + repeated CopyUser CopyUsers = 9 [json_name = "copyName"];//抄送人 + string Content = 10 [json_name = "content"];//申请内容 + string Reply = 11 [json_name = "reply"];//回复 + bool CanView = 12 [json_name = "canView"];//是否可以阅读 + Work Work = 13 [json_name = "work"]; + Show Show = 14 [json_name = "show"]; + Exhibition Exhibition = 15 [json_name = "exhibition"]; + Bundle Bundle = 16 [json_name = "bundle"]; + repeated ApprovalUser ApprovalUsers= 17 [json_name = "approvalUsers"];//审批的人 + bool CanApproval = 18 [json_name = "canApproval"];//审批的人 + repeated WorkFlow WorkFlows = 19 [json_name = "workFlows"];//审批的人 + uint64 AllStatus = 20 [json_name = "allStatus"];//状态 0 1 2 3已阅读 4-待阅读 + uint64 NowUserId = 21 [json_name = "nowUserId"]; + string NowUserName = 22 [json_name = "nowUserName"]; + uint64 Level = 23 [json_name = "level"]; + uint64 NowLevel = 24 [json_name = "nowLevel"]; + string CreatedAt = 25 [json_name = "createdAt"]; + repeated KeyInfo CustomizeInfo = 26 [json_name = "customizeInfo"]; + uint64 IsCustom = 27 [json_name = "isCustom"]; + string TypeName = 28 [json_name = "typeName"]; + string GroupName = 29 [json_name = "groupName"]; + BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"]; + ApprovalOA ApprovalOA = 31 [json_name = "approvalOA"]; + FinancialForm FinancialForm = 32 [json_name = "financialForm"]; +} + +message WorkFlow { + uint64 ID = 1 [json_name = "ID"]; + uint64 UserID = 3 [json_name = "userID"]; + string Name = 4 [json_name = "name"]; + uint64 Level = 5 [json_name = "level"]; + uint64 Status = 6 [json_name = "status"]; + string Reply = 7 [json_name = "reply"]; + string OperatedAt = 8 [json_name = "operatedAt"]; +} + +message DetailRequest { + uint64 ID=1 [json_name = "ID"]; + string Domain=2 [json_name = "domain"]; + uint64 UserId=3 [json_name = "userId"]; +} + +message RemoveRequest { + repeated uint64 IDs=1 [json_name = "IDs"]; + string Domain=2 [json_name = "domain"]; +} + + + +message ApprovalResponse { + uint64 ID=1 [json_name = "ID"]; + bool Success=2 [json_name = "success"]; +} + +message RemoveResponse { + bool Success=1 [json_name = "success"]; +} + +message ApprovalExhibitionRemove { + bool Success=1 [json_name = "success"]; +} + +message ApprovalExhibitionRequest { + uint64 ID=1 [json_name = "ID"]; + uint64 DeletedAt=2 [json_name = "deletedAt"]; + string CreatedAt=3 [json_name = "createdAt"]; + string UpdatedAt=4 [json_name = "updatedAt"]; + uint64 ApprovalID=5 [json_name = "approvalID"]; + uint64 ExhibitionID=6 [json_name = "exhibitionID"]; + string ExhibitionName=7 [json_name = "exhibitionName"]; + uint64 ArtworkID=8 [json_name = "artworkID"]; + string ExhibitionSize=9 [json_name = "exhibitionSize"]; + string ExhibitionNumber=10 [json_name = "exhibitionNumber"]; +} + +message ApprovalExhibitionDetail { + uint64 ID=1 [json_name = "ID"]; + string Domain=2 [json_name = "domain"]; +} + +message CopyUser { + uint64 ID =1 [json_name = "ID"]; + string Name =2 [json_name = "name"]; + bool IsViewed =3 [json_name = "isViewed"]; +} + +message ApprovalUser { + uint64 ID =1 [json_name = "ID"]; + string Name =2 [json_name = "name"]; + string Level =3 [json_name = "Level"]; +} + +message SettingRequest { + uint64 ID = 1 [json_name = "ID"]; + uint64 DeletedAt = 2 [json_name = "deletedAt"]; + string CreatedAt = 3 [json_name = "createdAt"]; + string UpdatedAt = 4 [json_name = "updatedAt"]; + string KeyWord = 5 [json_name = "keyWord"]; + repeated CopyUser CopyUsers = 6 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 9 [json_name = "approvalUsers"]; + string Domain = 10 [json_name = "domain"]; + repeated KeyInfo CustomizeInfo = 11 [json_name = "customizeInfo"]; + uint64 IsCustom = 12 [json_name = "isCustom"]; +} + +message DetailSettingRequest { + string KeyWord=1 [json_name = "keyWord"]; + string Domain=2 [json_name = "domain"]; +} + +message SettingResponse { + uint64 ID=1 [json_name = "ID"]; + bool Success=2 [json_name = "success"]; +} + +// oa审批 + +message ApplyTime { + string Date = 1 [json_name = "date"]; + string Hour = 2 [json_name = "hour"]; + string M = 3 [json_name = "m"]; +} + +message ApprovalOA { + uint64 ID=1 [json_name = "ID"]; + uint64 DeletedAt=2 [json_name = "deletedAt"]; + string CreatedAt=3 [json_name = "createdAt"]; + string UpdatedAt=4 [json_name = "updatedAt"]; + uint64 ApprovalID=5 [json_name = "approvalID"]; + LeaveApply LeaveApply = 6 [json_name = "leaveApply"]; + OutWorkApply OutWork = 7 [json_name = "outWork"]; + MakeUpApply MakeUp = 8 [json_name = "makeUp"]; + TurnoverApply Turnover = 9 [json_name = "turnover"]; + OverTimeApply OverTime = 10 [json_name = "overTime"]; + Leave Leave = 11 [json_name = "leave"]; +} + +message LeaveApply { + string UUID = 1 [json_name = "UUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + string Reason = 10 [json_name = "reason"]; + repeated string VerifyFile = 11 [json_name = "verifyFile"]; + repeated CopyUser CopyUsers = 12 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 13 [json_name = "approvalUsers"]; + float LeaveBalance = 14 [json_name = "leaveBalance"]; +} + +message OutWorkApply { + string UUID = 1 [json_name = "UUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; + string Reason = 12 [json_name = "reason"]; + float Hours = 13 [json_name = "hours"]; + string OutWorkAddress = 14 [json_name = "outWorkAddress"]; + string Vehicle = 15 [json_name = "vehicle"]; + repeated CopyUser CopyUsers = 16 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 17 [json_name = "approvalUsers"]; +} + +message MakeUpApply { + string UUID = 1 [json_name = "UUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; + string Reason = 12 [json_name = "reason"]; + repeated CopyUser CopyUsers = 13 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 14 [json_name = "approvalUsers"]; +} + +message TurnoverApply { + string UUID = 1 [json_name = "UUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + uint64 HandoverUID = 10 [json_name = "handoverUID"]; + string HandoverName = 11 [json_name = "handoverName"]; + repeated ApplyTime ApplyTimes = 12 [json_name = "applyTimes"]; + string Reason = 13 [json_name = "reason"]; + repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; +} + +message OverTimeApply { + string UUID = 1 [json_name = "UUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; + string Reason = 12 [json_name = "reason"]; + float Hours = 13 [json_name = "hours"]; + repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"]; +} + +message Leave { + string UUID = 1 [json_name = "UUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; + string StaffNum = 3 [json_name = "staffNum"]; + string StaffName = 4 [json_name = "staffName"]; + string DepartmentUID = 5 [json_name = "departmentUID"]; + string ApplyType = 6 [json_name = "applyType"]; + string ActionTime = 7 [json_name = "actionTime"]; + string ApprovalID = 8 [json_name = "approvalID"]; + int32 Status = 9 [json_name = "status"]; + repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"]; + string Reason = 12 [json_name = "reason"]; + float Hours = 13 [json_name = "hours"]; + float Days = 14 [json_name = "days"]; + repeated CopyUser CopyUsers = 15 [json_name = "copyUsers"]; + repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"]; +} + +message UpdateApprovalOAUUIDReq { + string UUID = 1 [json_name = "UUID"]; + string ApplyType = 2 [json_name = "applyType"]; + uint64 ApprovalID = 3 [json_name = "approvalID"]; +} + +message UpdateApprovalOAUUIDResponse { + string Msg = 1 [json_name = "msg"]; +} + +// 财务报表审批 +message GetNameRequest { + string SettingType = 1 [json_name = "settingType"]; +} + +message GetNameResponse { + repeated string Name = 1 [json_name = "name"]; +} + +message FinancialForm { + uint64 ID=1 [json_name = "ID"]; + uint64 DeletedAt=2 [json_name = "deletedAt"]; + string CreatedAt=3 [json_name = "createdAt"]; + string UpdatedAt=4 [json_name = "updatedAt"]; + uint64 ApprovalID=5 [json_name = "approvalID"]; + string PaymentCompany = 6 [json_name = "paymentCompany"]; + string TransactionDepartment = 7 [json_name = "transactionDepartment"]; + string Payee = 8 [json_name = "payee"]; + string BeneficiaryBank = 9 [json_name = "beneficiaryBank"]; + string BankNo = 10 [json_name = "bankNo"]; + repeated CostInfo CostInfo = 11 [json_name = "costInfo"]; + string PaymentMethod = 12 [json_name = "paymentMethod"]; + repeated InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"]; +} + + +message CostInfo { + string Description = 1 [json_name = "description"]; + string UnitPrice = 2 [json_name = "unitPrice"]; + string CostUnit = 3 [json_name = "costUnit"]; + int64 CostNum = 4 [json_name = "costNum"]; + string TotalPrice = 5 [json_name = "totalPrice"]; + string UsedDepartment = 6 [json_name = "usedDepartment"]; +} + +message InvoiceInfo { + string InvoiceDate = 1 [json_name = "invoiceDate"]; + string InvoiceNo = 2 [json_name = "invoiceNo"]; + string InvoiceProvider = 3 [json_name = "invoiceProvider"]; + string Amount = 4 [json_name = "amount"]; + string UseTo = 5 [json_name = "useTo"]; + string Applicant = 6 [json_name = "applicant"]; + string PaymentMethod = 7 [json_name = "paymentMethod"]; + string PaymentObj = 8 [json_name = "paymentObj"]; + string InvoiceType = 9 [json_name = "invoiceType"]; + string Notes = 10 [json_name = "notes"]; +} \ No newline at end of file diff --git a/api/approval/approval.validator.pb.go b/api/approval/approval.validator.pb.go new file mode 100644 index 0000000..27bf287 --- /dev/null +++ b/api/approval/approval.validator.pb.go @@ -0,0 +1,545 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: api/approval/approval.proto + +package approval + +import ( + fmt "fmt" + math "math" + proto "github.com/golang/protobuf/proto" + _ "github.com/mwitkow/go-proto-validators" + github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func (this *CommonResponse) Validate() error { + return nil +} +func (this *ChangeBundlePayRequest) Validate() error { + return nil +} +func (this *IsExistPayRightRequest) Validate() error { + return nil +} +func (this *IsExistPayRightResponse) Validate() error { + return nil +} +func (this *KeyInfo) Validate() error { + return nil +} +func (this *UpdateEhApplyIDRequest) Validate() error { + return nil +} +func (this *UpdateEhApplyIDResponse) Validate() error { + return nil +} +func (this *UsedNumByUserRequest) Validate() error { + return nil +} +func (this *UsedNumByUserResponse) Validate() error { + return nil +} +func (this *NowLevelByInfoRequest) Validate() error { + return nil +} +func (this *WorkFlowResponse) Validate() error { + return nil +} +func (this *CommonRequest) Validate() error { + return nil +} +func (this *CreateTypeRequest) Validate() error { + for _, item := range this.KeyInfos { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("KeyInfos", err) + } + } + } + return nil +} +func (this *TypeResponse) Validate() error { + return nil +} +func (this *AllTypeResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *CreateTypeGroupRequest) Validate() error { + for _, item := range this.List { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("List", err) + } + } + } + return nil +} +func (this *AllGroupResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *StatusRequest) Validate() error { + if !(this.Status > 0) { + return github_com_mwitkow_go_proto_validators.FieldError("Status", fmt.Errorf(`70008`)) + } + if !(this.Status < 4) { + return github_com_mwitkow_go_proto_validators.FieldError("Status", fmt.Errorf(`70008`)) + } + return nil +} +func (this *StatusResponse) Validate() error { + return nil +} +func (this *ListRequest) Validate() error { + if this.Domain == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) + } + return nil +} +func (this *ListResponse) Validate() error { + for _, item := range this.Data { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Data", err) + } + } + } + return nil +} +func (this *ViewedRequest) Validate() error { + return nil +} +func (this *InformationRequest) Validate() error { + return nil +} +func (this *Information) Validate() error { + return nil +} +func (this *InformationResponse) Validate() error { + if this.MySubmitInfo != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MySubmitInfo); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("MySubmitInfo", err) + } + } + if this.SubmitMeInfo != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.SubmitMeInfo); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SubmitMeInfo", err) + } + } + if this.DomainInfo != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.DomainInfo); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("DomainInfo", err) + } + } + return nil +} +func (this *Bundle) Validate() error { + return nil +} +func (this *Show) Validate() error { + return nil +} +func (this *ApprovalWork) Validate() error { + return nil +} +func (this *Work) Validate() error { + for _, item := range this.ApprovalWorks { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalWorks", err) + } + } + } + return nil +} +func (this *ApprovalExhibition) Validate() error { + for _, item := range this.Artworks { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Artworks", err) + } + } + } + if this.ArtExhibitionDetail != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ArtExhibitionDetail); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ArtExhibitionDetail", err) + } + } + return nil +} +func (this *Exhibition) Validate() error { + for _, item := range this.ApprovalExhibitions { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalExhibitions", err) + } + } + } + return nil +} +func (this *Artwork) Validate() error { + return nil +} +func (this *ArtExhibitionDetail) Validate() error { + return nil +} +func (this *BundlePayPrice) Validate() error { + return nil +} +func (this *CreateRequest) Validate() error { + if this.Domain == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Domain", fmt.Errorf(`70001`)) + } + if this.Type == "" { + return github_com_mwitkow_go_proto_validators.FieldError("Type", fmt.Errorf(`70009`)) + } + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + if this.Work != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Work); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Work", err) + } + } + if this.Show != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Show); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Show", err) + } + } + if this.Exhibition != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Exhibition); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Exhibition", err) + } + } + if this.Bundle != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Bundle); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Bundle", err) + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + for _, item := range this.WorkFlows { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("WorkFlows", err) + } + } + } + for _, item := range this.CustomizeInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CustomizeInfo", err) + } + } + } + if this.BundlePayPrice != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.BundlePayPrice); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err) + } + } + if this.ApprovalOA != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ApprovalOA); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalOA", err) + } + } + if this.FinancialForm != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.FinancialForm); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("FinancialForm", err) + } + } + return nil +} +func (this *WorkFlow) Validate() error { + return nil +} +func (this *DetailRequest) Validate() error { + return nil +} +func (this *RemoveRequest) Validate() error { + return nil +} +func (this *ApprovalResponse) Validate() error { + return nil +} +func (this *RemoveResponse) Validate() error { + return nil +} +func (this *ApprovalExhibitionRemove) Validate() error { + return nil +} +func (this *ApprovalExhibitionRequest) Validate() error { + return nil +} +func (this *ApprovalExhibitionDetail) Validate() error { + return nil +} +func (this *CopyUser) Validate() error { + return nil +} +func (this *ApprovalUser) Validate() error { + return nil +} +func (this *SettingRequest) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + for _, item := range this.CustomizeInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CustomizeInfo", err) + } + } + } + return nil +} +func (this *DetailSettingRequest) Validate() error { + return nil +} +func (this *SettingResponse) Validate() error { + return nil +} +func (this *ApplyTime) Validate() error { + return nil +} +func (this *ApprovalOA) Validate() error { + if this.LeaveApply != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.LeaveApply); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("LeaveApply", err) + } + } + if this.OutWork != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OutWork); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("OutWork", err) + } + } + if this.MakeUp != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MakeUp); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("MakeUp", err) + } + } + if this.Turnover != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Turnover); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Turnover", err) + } + } + if this.OverTime != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OverTime); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("OverTime", err) + } + } + if this.Leave != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Leave); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Leave", err) + } + } + return nil +} +func (this *LeaveApply) Validate() error { + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *OutWorkApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *MakeUpApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *TurnoverApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *OverTimeApply) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *Leave) Validate() error { + for _, item := range this.ApplyTimes { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err) + } + } + } + for _, item := range this.CopyUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err) + } + } + } + for _, item := range this.ApprovalUsers { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err) + } + } + } + return nil +} +func (this *UpdateApprovalOAUUIDReq) Validate() error { + return nil +} +func (this *UpdateApprovalOAUUIDResponse) Validate() error { + return nil +} +func (this *GetNameRequest) Validate() error { + return nil +} +func (this *GetNameResponse) Validate() error { + return nil +} +func (this *FinancialForm) Validate() error { + for _, item := range this.CostInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("CostInfo", err) + } + } + } + for _, item := range this.InvoiceInfo { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("InvoiceInfo", err) + } + } + } + return nil +} +func (this *CostInfo) Validate() error { + return nil +} +func (this *InvoiceInfo) Validate() error { + return nil +} diff --git a/api/approval/approval_triple.pb.go b/api/approval/approval_triple.pb.go new file mode 100644 index 0000000..eb011f4 --- /dev/null +++ b/api/approval/approval_triple.pb.go @@ -0,0 +1,1186 @@ +// Code generated by protoc-gen-go-triple. DO NOT EDIT. +// versions: +// - protoc-gen-go-triple v1.0.8 +// - protoc v3.10.1 +// source: api/approval/approval.proto + +package approval + +import ( + context "context" + protocol "dubbo.apache.org/dubbo-go/v3/protocol" + dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3" + invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation" + grpc_go "github.com/dubbogo/grpc-go" + codes "github.com/dubbogo/grpc-go/codes" + metadata "github.com/dubbogo/grpc-go/metadata" + status "github.com/dubbogo/grpc-go/status" + common "github.com/dubbogo/triple/pkg/common" + constant "github.com/dubbogo/triple/pkg/common/constant" + triple "github.com/dubbogo/triple/pkg/triple" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc_go.SupportPackageIsVersion7 + +// ApprovalClient is the client API for Approval service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ApprovalClient interface { + Create(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) + UsedNumByUser(ctx context.Context, in *UsedNumByUserRequest, opts ...grpc_go.CallOption) (*UsedNumByUserResponse, common.ErrorWithAttachment) + UpdateExhibitionApplyID(ctx context.Context, in *UpdateEhApplyIDRequest, opts ...grpc_go.CallOption) (*UpdateEhApplyIDResponse, common.ErrorWithAttachment) + Detail(ctx context.Context, in *DetailRequest, opts ...grpc_go.CallOption) (*CreateRequest, common.ErrorWithAttachment) + Update(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) + Remove(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*RemoveResponse, common.ErrorWithAttachment) + MyWork(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) + MySubmit(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) + NowLevelByInfo(ctx context.Context, in *NowLevelByInfoRequest, opts ...grpc_go.CallOption) (*WorkFlowResponse, common.ErrorWithAttachment) + Information(ctx context.Context, in *InformationRequest, opts ...grpc_go.CallOption) (*InformationResponse, common.ErrorWithAttachment) + Viewed(ctx context.Context, in *ViewedRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) + SetStatus(ctx context.Context, in *StatusRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) + DetailSetting(ctx context.Context, in *DetailSettingRequest, opts ...grpc_go.CallOption) (*SettingRequest, common.ErrorWithAttachment) + UpdateSetting(ctx context.Context, in *SettingRequest, opts ...grpc_go.CallOption) (*SettingResponse, common.ErrorWithAttachment) + IsExistPayRight(ctx context.Context, in *IsExistPayRightRequest, opts ...grpc_go.CallOption) (*IsExistPayRightResponse, common.ErrorWithAttachment) + ChangeBundlePay(ctx context.Context, in *ChangeBundlePayRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) + CreateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) + DetailType(ctx context.Context, in *TypeResponse, opts ...grpc_go.CallOption) (*CreateTypeRequest, common.ErrorWithAttachment) + UpdateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) + AllType(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllTypeResponse, common.ErrorWithAttachment) + RemoveType(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) + AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment) + // 财务报表审批 + GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment) + // OA审批 更新 OA系统的 UUID + UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) +} + +type approvalClient struct { + cc *triple.TripleConn +} + +type ApprovalClientImpl struct { + Create func(ctx context.Context, in *CreateRequest) (*ApprovalResponse, error) + UsedNumByUser func(ctx context.Context, in *UsedNumByUserRequest) (*UsedNumByUserResponse, error) + UpdateExhibitionApplyID func(ctx context.Context, in *UpdateEhApplyIDRequest) (*UpdateEhApplyIDResponse, error) + Detail func(ctx context.Context, in *DetailRequest) (*CreateRequest, error) + Update func(ctx context.Context, in *CreateRequest) (*ApprovalResponse, error) + Remove func(ctx context.Context, in *RemoveRequest) (*RemoveResponse, error) + MyWork func(ctx context.Context, in *ListRequest) (*ListResponse, error) + MySubmit func(ctx context.Context, in *ListRequest) (*ListResponse, error) + NowLevelByInfo func(ctx context.Context, in *NowLevelByInfoRequest) (*WorkFlowResponse, error) + Information func(ctx context.Context, in *InformationRequest) (*InformationResponse, error) + Viewed func(ctx context.Context, in *ViewedRequest) (*ApprovalResponse, error) + SetStatus func(ctx context.Context, in *StatusRequest) (*StatusResponse, error) + DetailSetting func(ctx context.Context, in *DetailSettingRequest) (*SettingRequest, error) + UpdateSetting func(ctx context.Context, in *SettingRequest) (*SettingResponse, error) + IsExistPayRight func(ctx context.Context, in *IsExistPayRightRequest) (*IsExistPayRightResponse, error) + ChangeBundlePay func(ctx context.Context, in *ChangeBundlePayRequest) (*CommonResponse, error) + CreateType func(ctx context.Context, in *CreateTypeRequest) (*TypeResponse, error) + DetailType func(ctx context.Context, in *TypeResponse) (*CreateTypeRequest, error) + UpdateType func(ctx context.Context, in *CreateTypeRequest) (*TypeResponse, error) + AllType func(ctx context.Context, in *CommonRequest) (*AllTypeResponse, error) + RemoveType func(ctx context.Context, in *RemoveRequest) (*StatusResponse, error) + AllGroup func(ctx context.Context, in *CommonRequest) (*AllGroupResponse, error) + GetName func(ctx context.Context, in *GetNameRequest) (*GetNameResponse, error) + UpdateApprovalOAUUID func(ctx context.Context, in *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) +} + +func (c *ApprovalClientImpl) GetDubboStub(cc *triple.TripleConn) ApprovalClient { + return NewApprovalClient(cc) +} + +func (c *ApprovalClientImpl) XXX_InterfaceName() string { + return "approval.Approval" +} + +func NewApprovalClient(cc *triple.TripleConn) ApprovalClient { + return &approvalClient{cc} +} + +func (c *approvalClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { + out := new(ApprovalResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Create", in, out) +} + +func (c *approvalClient) UsedNumByUser(ctx context.Context, in *UsedNumByUserRequest, opts ...grpc_go.CallOption) (*UsedNumByUserResponse, common.ErrorWithAttachment) { + out := new(UsedNumByUserResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UsedNumByUser", in, out) +} + +func (c *approvalClient) UpdateExhibitionApplyID(ctx context.Context, in *UpdateEhApplyIDRequest, opts ...grpc_go.CallOption) (*UpdateEhApplyIDResponse, common.ErrorWithAttachment) { + out := new(UpdateEhApplyIDResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateExhibitionApplyID", in, out) +} + +func (c *approvalClient) Detail(ctx context.Context, in *DetailRequest, opts ...grpc_go.CallOption) (*CreateRequest, common.ErrorWithAttachment) { + out := new(CreateRequest) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Detail", in, out) +} + +func (c *approvalClient) Update(ctx context.Context, in *CreateRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { + out := new(ApprovalResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Update", in, out) +} + +func (c *approvalClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*RemoveResponse, common.ErrorWithAttachment) { + out := new(RemoveResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Remove", in, out) +} + +func (c *approvalClient) MyWork(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) { + out := new(ListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MyWork", in, out) +} + +func (c *approvalClient) MySubmit(ctx context.Context, in *ListRequest, opts ...grpc_go.CallOption) (*ListResponse, common.ErrorWithAttachment) { + out := new(ListResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/MySubmit", in, out) +} + +func (c *approvalClient) NowLevelByInfo(ctx context.Context, in *NowLevelByInfoRequest, opts ...grpc_go.CallOption) (*WorkFlowResponse, common.ErrorWithAttachment) { + out := new(WorkFlowResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/NowLevelByInfo", in, out) +} + +func (c *approvalClient) Information(ctx context.Context, in *InformationRequest, opts ...grpc_go.CallOption) (*InformationResponse, common.ErrorWithAttachment) { + out := new(InformationResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Information", in, out) +} + +func (c *approvalClient) Viewed(ctx context.Context, in *ViewedRequest, opts ...grpc_go.CallOption) (*ApprovalResponse, common.ErrorWithAttachment) { + out := new(ApprovalResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Viewed", in, out) +} + +func (c *approvalClient) SetStatus(ctx context.Context, in *StatusRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) { + out := new(StatusResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SetStatus", in, out) +} + +func (c *approvalClient) DetailSetting(ctx context.Context, in *DetailSettingRequest, opts ...grpc_go.CallOption) (*SettingRequest, common.ErrorWithAttachment) { + out := new(SettingRequest) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DetailSetting", in, out) +} + +func (c *approvalClient) UpdateSetting(ctx context.Context, in *SettingRequest, opts ...grpc_go.CallOption) (*SettingResponse, common.ErrorWithAttachment) { + out := new(SettingResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateSetting", in, out) +} + +func (c *approvalClient) IsExistPayRight(ctx context.Context, in *IsExistPayRightRequest, opts ...grpc_go.CallOption) (*IsExistPayRightResponse, common.ErrorWithAttachment) { + out := new(IsExistPayRightResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/IsExistPayRight", in, out) +} + +func (c *approvalClient) ChangeBundlePay(ctx context.Context, in *ChangeBundlePayRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment) { + out := new(CommonResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ChangeBundlePay", in, out) +} + +func (c *approvalClient) CreateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) { + out := new(TypeResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateType", in, out) +} + +func (c *approvalClient) DetailType(ctx context.Context, in *TypeResponse, opts ...grpc_go.CallOption) (*CreateTypeRequest, common.ErrorWithAttachment) { + out := new(CreateTypeRequest) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DetailType", in, out) +} + +func (c *approvalClient) UpdateType(ctx context.Context, in *CreateTypeRequest, opts ...grpc_go.CallOption) (*TypeResponse, common.ErrorWithAttachment) { + out := new(TypeResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateType", in, out) +} + +func (c *approvalClient) AllType(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllTypeResponse, common.ErrorWithAttachment) { + out := new(AllTypeResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AllType", in, out) +} + +func (c *approvalClient) RemoveType(ctx context.Context, in *RemoveRequest, opts ...grpc_go.CallOption) (*StatusResponse, common.ErrorWithAttachment) { + out := new(StatusResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RemoveType", in, out) +} + +func (c *approvalClient) AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment) { + out := new(AllGroupResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AllGroup", in, out) +} + +func (c *approvalClient) GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment) { + out := new(GetNameResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetName", in, out) +} + +func (c *approvalClient) UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) { + out := new(UpdateApprovalOAUUIDResponse) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateApprovalOAUUID", in, out) +} + +// ApprovalServer is the server API for Approval service. +// All implementations must embed UnimplementedApprovalServer +// for forward compatibility +type ApprovalServer interface { + Create(context.Context, *CreateRequest) (*ApprovalResponse, error) + UsedNumByUser(context.Context, *UsedNumByUserRequest) (*UsedNumByUserResponse, error) + UpdateExhibitionApplyID(context.Context, *UpdateEhApplyIDRequest) (*UpdateEhApplyIDResponse, error) + Detail(context.Context, *DetailRequest) (*CreateRequest, error) + Update(context.Context, *CreateRequest) (*ApprovalResponse, error) + Remove(context.Context, *RemoveRequest) (*RemoveResponse, error) + MyWork(context.Context, *ListRequest) (*ListResponse, error) + MySubmit(context.Context, *ListRequest) (*ListResponse, error) + NowLevelByInfo(context.Context, *NowLevelByInfoRequest) (*WorkFlowResponse, error) + Information(context.Context, *InformationRequest) (*InformationResponse, error) + Viewed(context.Context, *ViewedRequest) (*ApprovalResponse, error) + SetStatus(context.Context, *StatusRequest) (*StatusResponse, error) + DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) + UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) + IsExistPayRight(context.Context, *IsExistPayRightRequest) (*IsExistPayRightResponse, error) + ChangeBundlePay(context.Context, *ChangeBundlePayRequest) (*CommonResponse, error) + CreateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) + DetailType(context.Context, *TypeResponse) (*CreateTypeRequest, error) + UpdateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) + AllType(context.Context, *CommonRequest) (*AllTypeResponse, error) + RemoveType(context.Context, *RemoveRequest) (*StatusResponse, error) + AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error) + // 财务报表审批 + GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) + // OA审批 更新 OA系统的 UUID + UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) + mustEmbedUnimplementedApprovalServer() +} + +// UnimplementedApprovalServer must be embedded to have forward compatible implementations. +type UnimplementedApprovalServer struct { + proxyImpl protocol.Invoker +} + +func (UnimplementedApprovalServer) Create(context.Context, *CreateRequest) (*ApprovalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Create not implemented") +} +func (UnimplementedApprovalServer) UsedNumByUser(context.Context, *UsedNumByUserRequest) (*UsedNumByUserResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UsedNumByUser not implemented") +} +func (UnimplementedApprovalServer) UpdateExhibitionApplyID(context.Context, *UpdateEhApplyIDRequest) (*UpdateEhApplyIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateExhibitionApplyID not implemented") +} +func (UnimplementedApprovalServer) Detail(context.Context, *DetailRequest) (*CreateRequest, error) { + return nil, status.Errorf(codes.Unimplemented, "method Detail not implemented") +} +func (UnimplementedApprovalServer) Update(context.Context, *CreateRequest) (*ApprovalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Update not implemented") +} +func (UnimplementedApprovalServer) Remove(context.Context, *RemoveRequest) (*RemoveResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Remove not implemented") +} +func (UnimplementedApprovalServer) MyWork(context.Context, *ListRequest) (*ListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MyWork not implemented") +} +func (UnimplementedApprovalServer) MySubmit(context.Context, *ListRequest) (*ListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MySubmit not implemented") +} +func (UnimplementedApprovalServer) NowLevelByInfo(context.Context, *NowLevelByInfoRequest) (*WorkFlowResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NowLevelByInfo not implemented") +} +func (UnimplementedApprovalServer) Information(context.Context, *InformationRequest) (*InformationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Information not implemented") +} +func (UnimplementedApprovalServer) Viewed(context.Context, *ViewedRequest) (*ApprovalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Viewed not implemented") +} +func (UnimplementedApprovalServer) SetStatus(context.Context, *StatusRequest) (*StatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetStatus not implemented") +} +func (UnimplementedApprovalServer) DetailSetting(context.Context, *DetailSettingRequest) (*SettingRequest, error) { + return nil, status.Errorf(codes.Unimplemented, "method DetailSetting not implemented") +} +func (UnimplementedApprovalServer) UpdateSetting(context.Context, *SettingRequest) (*SettingResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSetting not implemented") +} +func (UnimplementedApprovalServer) IsExistPayRight(context.Context, *IsExistPayRightRequest) (*IsExistPayRightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsExistPayRight not implemented") +} +func (UnimplementedApprovalServer) ChangeBundlePay(context.Context, *ChangeBundlePayRequest) (*CommonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangeBundlePay not implemented") +} +func (UnimplementedApprovalServer) CreateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateType not implemented") +} +func (UnimplementedApprovalServer) DetailType(context.Context, *TypeResponse) (*CreateTypeRequest, error) { + return nil, status.Errorf(codes.Unimplemented, "method DetailType not implemented") +} +func (UnimplementedApprovalServer) UpdateType(context.Context, *CreateTypeRequest) (*TypeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateType not implemented") +} +func (UnimplementedApprovalServer) AllType(context.Context, *CommonRequest) (*AllTypeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AllType not implemented") +} +func (UnimplementedApprovalServer) RemoveType(context.Context, *RemoveRequest) (*StatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveType not implemented") +} +func (UnimplementedApprovalServer) AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AllGroup not implemented") +} +func (UnimplementedApprovalServer) GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetName not implemented") +} +func (UnimplementedApprovalServer) UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApprovalOAUUID not implemented") +} +func (s *UnimplementedApprovalServer) XXX_SetProxyImpl(impl protocol.Invoker) { + s.proxyImpl = impl +} + +func (s *UnimplementedApprovalServer) XXX_GetProxyImpl() protocol.Invoker { + return s.proxyImpl +} + +func (s *UnimplementedApprovalServer) XXX_ServiceDesc() *grpc_go.ServiceDesc { + return &Approval_ServiceDesc +} +func (s *UnimplementedApprovalServer) XXX_InterfaceName() string { + return "approval.Approval" +} + +func (UnimplementedApprovalServer) mustEmbedUnimplementedApprovalServer() {} + +// UnsafeApprovalServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ApprovalServer will +// result in compilation errors. +type UnsafeApprovalServer interface { + mustEmbedUnimplementedApprovalServer() +} + +func RegisterApprovalServer(s grpc_go.ServiceRegistrar, srv ApprovalServer) { + s.RegisterService(&Approval_ServiceDesc, srv) +} + +func _Approval_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("Create", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_UsedNumByUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UsedNumByUserRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UsedNumByUser", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_UpdateExhibitionApplyID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateEhApplyIDRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateExhibitionApplyID", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_Detail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DetailRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("Detail", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("Update", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_Remove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("Remove", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_MyWork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("MyWork", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_MySubmit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("MySubmit", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_NowLevelByInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(NowLevelByInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("NowLevelByInfo", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_Information_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(InformationRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("Information", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_Viewed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ViewedRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("Viewed", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_SetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("SetStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_DetailSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DetailSettingRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("DetailSetting", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_UpdateSetting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(SettingRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateSetting", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_IsExistPayRight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(IsExistPayRightRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("IsExistPayRight", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_ChangeBundlePay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangeBundlePayRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ChangeBundlePay", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_CreateType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTypeRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("CreateType", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_DetailType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(TypeResponse) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("DetailType", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_UpdateType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTypeRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateType", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_AllType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CommonRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("AllType", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_RemoveType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("RemoveType", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_AllGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CommonRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("AllGroup", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_GetName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetNameRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetName", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _Approval_UpdateApprovalOAUUID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApprovalOAUUIDReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateApprovalOAUUID", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +// Approval_ServiceDesc is the grpc_go.ServiceDesc for Approval service. +// It's only intended for direct use with grpc_go.RegisterService, +// and not to be introspected or modified (even as a copy) +var Approval_ServiceDesc = grpc_go.ServiceDesc{ + ServiceName: "approval.Approval", + HandlerType: (*ApprovalServer)(nil), + Methods: []grpc_go.MethodDesc{ + { + MethodName: "Create", + Handler: _Approval_Create_Handler, + }, + { + MethodName: "UsedNumByUser", + Handler: _Approval_UsedNumByUser_Handler, + }, + { + MethodName: "UpdateExhibitionApplyID", + Handler: _Approval_UpdateExhibitionApplyID_Handler, + }, + { + MethodName: "Detail", + Handler: _Approval_Detail_Handler, + }, + { + MethodName: "Update", + Handler: _Approval_Update_Handler, + }, + { + MethodName: "Remove", + Handler: _Approval_Remove_Handler, + }, + { + MethodName: "MyWork", + Handler: _Approval_MyWork_Handler, + }, + { + MethodName: "MySubmit", + Handler: _Approval_MySubmit_Handler, + }, + { + MethodName: "NowLevelByInfo", + Handler: _Approval_NowLevelByInfo_Handler, + }, + { + MethodName: "Information", + Handler: _Approval_Information_Handler, + }, + { + MethodName: "Viewed", + Handler: _Approval_Viewed_Handler, + }, + { + MethodName: "SetStatus", + Handler: _Approval_SetStatus_Handler, + }, + { + MethodName: "DetailSetting", + Handler: _Approval_DetailSetting_Handler, + }, + { + MethodName: "UpdateSetting", + Handler: _Approval_UpdateSetting_Handler, + }, + { + MethodName: "IsExistPayRight", + Handler: _Approval_IsExistPayRight_Handler, + }, + { + MethodName: "ChangeBundlePay", + Handler: _Approval_ChangeBundlePay_Handler, + }, + { + MethodName: "CreateType", + Handler: _Approval_CreateType_Handler, + }, + { + MethodName: "DetailType", + Handler: _Approval_DetailType_Handler, + }, + { + MethodName: "UpdateType", + Handler: _Approval_UpdateType_Handler, + }, + { + MethodName: "AllType", + Handler: _Approval_AllType_Handler, + }, + { + MethodName: "RemoveType", + Handler: _Approval_RemoveType_Handler, + }, + { + MethodName: "AllGroup", + Handler: _Approval_AllGroup_Handler, + }, + { + MethodName: "GetName", + Handler: _Approval_GetName_Handler, + }, + { + MethodName: "UpdateApprovalOAUUID", + Handler: _Approval_UpdateApprovalOAUUID_Handler, + }, + }, + Streams: []grpc_go.StreamDesc{}, + Metadata: "api/approval/approval.proto", +}